包管理器的Linux包管理可帮助您在基于Linux的计算机上处??理软件更新、卸载、故障排除等。SethKenlon编写了LinuxPackageManagementwithdnf,其中描述了如何使用命令行包管理工具dnf在RHEL、CentOS、Fedora、Mageia、OpenMandriva等Linux发行版中安装软件。Debian和基于Debian的发行版(例如MXLinux、Deepin、Ubuntu)和基于Ubuntu的发行版(例如LinuxMint和Pop!_OS)都有apt,一个“相似但不同”的工具。在本文中,我将按照Seth的示例(但使用apt)向您展示如何使用它。首先,我想提一下四个与apt相关的软件安装工具:Synaptic是apt工具的基于GTK+的图形用户界面(GUI)前端。Aptitude是一款基于Ncurses的apt全屏命令行前端工具。apt的前身有apt-get、apt-cache等工具,dpkg是apt包管理器背后的“幕后工作者”。还有其他包管理系统,例如Flatpak和Snap,您可能会在Debian和基于Debian的系统上遇到它们,但我不打算在这里讨论它们。还有应用程序“商店”,例如GNOME“软件”,与apt和其他打包技术重叠;我也不打算在这里讨论它们。最后,还有其他Linux发行版,例如Arch和Gentoo,既不使用dnf也不使用apt,我不打算在这里讨论它们!上面说了那么多不想说了,大家可能想知道apt到底能搞定多少软件。这么说吧,在我的Ubuntu20.04上,apt允许我访问69,371个包,从0ad(一种古老的战争RTS游戏)到zzuf(一种透明的应用程序模糊测试工具),一点都不差。使用apt搜索软件使用apt包管理器的第一步是找到感兴趣的包。Seth的dnf文章以Cockpit服务器管理应用程序为例。使用apt我将输入以下命令:$aptsearchcockpitSorting...DoneFullTextSearch...Done389-ds/hirsute,hirsute1.4.4.11-1all389DirectoryServersuite-metapackagecockpit/hirsute,hirsute238-1allWebLinux服务器的控制台...$上面的第二个包是你想要的(以cockpit/hirsute开头的行)。如果您决定安装它,请键入:$sudoaptinstallcockpitapt将负责安装Cockpit以及使其工作所需的任何组件或依赖项。有时我们不太确定这就是我们所需要的。了解更多信息可能有助于您决定是否真的要安装此应用程序。包元数据要了解有关包的更多信息,请使用aptshow命令:$aptshowcockpitPackage:cockpitVersion:238-1Priority:optionalSection:universe/adminOrigin:UbuntuMaintainer:UbuntuDevelopersOriginal-维护者:Utopia维护团队错误:https://bugs.launchpad.net/ubuntu/+filebugInstalled-Size:88.1kBDepends:cockpit-bridge(>=238-1),cockpit-ws(>=238-1),cockpit-system(>=238-1)推荐:cockpit-storaged(>=238-1),cockpit-networkmanager(>=238-1),cockpit-packagekit(>=238-1)建议:cockpit-doc(>=238-1),cockpit-pcp(>=238-1),cockpit-machines(>=238-1),xdg-utilsHomepage:https://cockpit-project.org/Download-Size:21.3kBAPT-Sources:http://ca.archive.ubuntu.com/ubuntuhirsute/universeamd64PackagesDescription:WebConsoleforLinuxserversCockpitWebConsole使用户能够管理GNU/Linux服务器使用网络浏览器。.它提供网络配置、日志检查、诊断报告、SELinux故障排除、交互式命令行会话等。特别值得注意的是Description字段,它将告诉您有关该应用程序的更多信息。信息Depends字段说明还有什么必须被安装,而Recommends显示建议安装的其他(如果有)协作组件。主页字段将提供一个URL,您可以在其中了解更多信息。哪个包提供了这个文件?有时您不知道包名,但知道包中必须包含某个文件。Seth以qmake-qt5程序为例。无法通过apt搜索找到它:$aptsearchqmake-qt5Sorting...DoneFullTextSearch...Done$但是,另一个相关命令apt-file可用于探索包内部结构:$apt-filesearchqmake-qt5qt5-qmake-bin:/usr/share/man/man1/qmake-qt5.1.gz$这将显示qmake-qt5的手册页。它是名为qt5-qmake-bin的包的一部分。请注意,此包名称颠倒了字符串qmake和qt5的顺序。包中包含哪些文件?方便的apt-file命令列出了给定包中包含的文件。例如:$apt-filelistcockpitcockpit:/usr/share/doc/cockpit/TODO.Debiancockpit:/usr/share/doc/cockpit/changelog.Debian.gzcockpit:/usr/share/doc/cockpit/copyrightcockpit:/usr/share/man/man1/cockpit.1.gzcockpit:/usr/share/metainfo/cockpit.appdata.xmlcockpit:/usr/share/pixmaps/cockpit.png$请注意,这与提供的相同aptshow命令的信息不同,后者列出了包的依赖项(其他必须安装的包)。删除应用程序您还可以使用apt来删除包。例如,要删除apt-file应用程序:$sudoaptpurgeapt-file请注意,apt必须由超级用户运行才能安装或删除应用程序。删除包不会自动删除apt在此过程中安装的所有依赖项。不过,只要稍加努力,这些残留物就可以轻松删除:$sudoaptautoremove更容易了解apt。”即使您不是apt的重度用户,当您需要从命令行安装或删除软件包时(例如,在远程服务器上或遵循一些贴心的how-to),一些apt知识也会很有用。对于一些只提供裸.pkg文件的软件作者,可能还需要了解一点关于dpkg(如上所述)。我发现Synaptic包管理器在我的桌面上是一个非常有用的工具,但我也在少数维护的服务器上出于各种目的使用apt。下载我们的apt备忘单以使用命令并尝试一些新技巧。一旦你这样做,你可能会发现很难使用其他任何东西。