包管理器提供大致相同的功能:安装、管理和删除应用程序,但它们之间存在一些差异。有几种方法可以在Linux系统上获取应用程序。例如,有新的Flatpak和容器方法,还有久经考验的DEB和RPM方法。没有适用于所有操作系统的通用应用程序安装程序。今天,由于无数开发人员发布软件,大多数操作系统都使用应用程序商店(第一方和第三方)、拖放安装和设置向导。不同的开发者对其发布的代码有不同的要求,这直接导致了他们选择的安装方式的差异。Linux开创了包管理器的概念,用于从命令行安装、管理和删除应用程序。Apt和dnf是两个比较常见的包管理器。apt命令用于管理DEB格式的包,dnf命令用于管理RPM格式的包。这两个包管理器在理论上并不完全相互排斥,尽管在实际操作中,Linux发行版通常只使用其中之一。理论上这两个命令可以在同一个系统上运行,但是会造成安装包重叠,版本控制比较困难,命令冗余。但是,如果您在混合Linux环境中工作,您的工作站运行一个发行版,而您需要与运行另一个发行版的服务器进行交互,那么您最好掌握这两个包设备。搜索应用程序当您通过包管理器安装应用程序时,您首先需要知道包名。通常,应用程序的名称与包的名称相同。dnf和apt验证要安装的包名的过程是完全一样的。$sudodnfsearchzsh======NameExactlyMatched:zsh======zsh.x86_64:强大的交互式shell[...]使用apt:$sudoaptsearchzshSorting...DoneFullTextSearch...Donecsh/stable20110502-4+deb10u1amd64ShellwithC-likesyntaxddgr/stable1.6-1allDuckDuckGofromtheterminaldirenv/stable2.18.2-2amd64Utilitytosetdirectoryspecificenvironmentvariablesdraai/stable20180521-1allCommand-linemusicplayerforMPD[...]如果你想通过apt更快的得到相关的搜索结果,你可以使用正则表达式:aptsearch^zshSorting...DoneFullTextSearch。.Donezsh/stable5.7.1-1amd64shellwithlotsoffeatures[…]查找应用程序包一些命令与其他命令捆绑在一起,全部在一个包中。在这种情况下,您可以使用包管理器找出哪个包提供了您需要的命令。dnf和apt命令在搜索此类元数据的方式上有所不同。使用dnf:$sudodnfprovidespgrepprocps-ng-3.3.15-6.el8.x86_64:SystemandprocessmonitoringutilitiesRepo:baseosMatchedfrom:Filename:/usr/bin/pgrepapt命令使用子命令apt-file。要使用apt-file,您必须先安装它,然后提示它更新缓存:$sudoaptinstallapt-fileReadingpackagelists...DoneBuildingdependencytreeReadingstateinformation...DoneThefollowingadditionalpackageswillbeinstalled:libapt-pkg-perllibexporter-tiny-perlliblist-moreutils-perllibregexp-assemble-perl以下安装包将:-filelibapt-pkg-perllibexporter-tiny-perlliblist-moreutils-perllibregexp-assemble-perl0upgraded,5个新安装,0个删除和14个未升级。需要获取297kBofarchives。在此操作后,825kBofadditionaldiskspacewillbeusedcommand.Doyouwanttocontinueupdateby[y-Yatenfile/Yatenfile/Searchapt].您可以使用此命令进行广泛的全局搜索,但如果您知道命令的执行路径,它会更准确:$sudoapt-filesearch/usr/bin/pgreppgreplay:/usr/bin/pgreplayprocps:/usr/bin/pgrepinstall应用程序使用apt和dnf安装应用程序基本相同:$sudoaptinstallzsh使用dnf,您可以通过相同的方式安装一个包:$sudodnfinstallzsh许多基于RPM的发行版具有组包安装功能,这将有时与表面相关的应用程序被收集到一个易于安装的目标中。例如,Fedora中的DesignSuite包包含流行的创意应用程序。想要某个创意应用程序的艺术家可能想要类似的东西,选择安装整个捆绑包是一种以合理的方式开始构建数字工作室的简单快捷的方法。可以通过组列表查看可用的组包(使用-v查看组名不带空格):(design-suite)DevelopmentTools(development)[...]使用组安装子命令安装RPM组包:$sudodnfgroupinstalldesign-suite您可以使用@符号来减少输入:$sudodnfinstall@design-suite使用包管理更新应用程序一安装程序的优点是它知道所有已安装的应用程序。这样您就不必寻找更新版本的应用程序。相反,您可以通过包管理器获取更新的版本。dnf和apt使用的子命令略有不同。因为apt保留了一个需要定期更新的信息的缓存,所以它使用upgrade子命令来更新应用程序:$sudoaptupgrade相比之下,dnf命令每次使用它都会更新元信息,所以update和upgrade子命令是可以的可互换:$sudodnfupgrade这等同于:$sudodnfupdate删除应用程序如果您曾经尝试过在任何平台上手动删除应用程序,您就会知道删除应用程序后,硬盘上会留下各种文件。例如首选项文件、数据或图标。所以包管理器的另一个好处是,包管理器管理着包中安装的每一个文件,并且可以很容易地删除:$sudodnfremovezshremove子命令也适用于apt:$sudoaptremovezsh使用apt命令删除包不会删除修改的用户配置文件以防您不小心删除了包裹。如果你想通过apt命令删除一个应用程序及其配置文件,在你之前删除的应用程序上使用purge子命令:$sudoaptpurgezshaptanddnf不会删除home目录下的数据和配置文件(即使使用purge子命令命令).如果你想从你的主目录中删除数据,你必须手动执行(通常你可以在~/.config和~/.local文件中找到它)。了解包管理无论您选择的发行版支持apt还是dnf,这些命令的作用都大致相同。它们帮助您安装、更新和删除软件包。这两个包管理器是迄今为止最通用的包管理器。它们的语法元素基本相同,因此在两者之间切换非常容易。apt和dnf也有一些高级功能,例如存储库管理,但这些功能不像您使用搜索和安装那样经常使用。无论您更经常使用哪个包管理器,您都可以下载我们的apt备忘单和dnf备忘单,这样您就可以在最需要的时候查找使用语法。
