在 Linux 上,软件包管理器可以帮助您处理计算机上软件的更新、卸载、故障排除等。Seth Kenlon 撰写了关于 dnf
的文章,dnf
是用于在 RHEL、CentOS、Fedora、Mageia、OpenMandriva 和其他 Linux 发行版中安装软件的命令行软件包管理工具。
Debian 和基于 Debian 的发行版(如 MX Linux、Deepin、Ubuntu)以及基于 Ubuntu 的发行版(如 Linux Mint 和 Pop!_OS)都具有 apt
,这是一个“类似但不同”的工具。在本文中,我将效仿 Seth 的示例,但使用 apt
,向您展示如何使用它。
在开始之前,我想提及四种与 apt
相关的软件安装工具
- Synaptic 是一个基于 GTK+ 的图形用户界面 (GUI) 前端,用于
apt
。 - Aptitude 是一个基于 Ncurses 的全屏命令行前端,用于
apt
。 - 还有
apt-get
、apt-cache
和其他apt
的前身。 - Dpkg 是
apt
用于执行繁重工作的“幕后”软件包管理器。
还有其他打包系统,例如 Flatpak 和 Snap,您可能会在 Debian 和基于 Debian 的系统上遇到它们,但在此我不打算讨论它们。还有一些应用程序“商店”,例如 GNOME Software,它们与 apt
和其他打包技术重叠;同样,在此我不打算讨论它们。最后,还有其他 Linux 发行版,例如 Arch 和 Gentoo,它们既不使用 dnf
也不使用 apt
,我也不打算在此讨论这些!
考虑到所有我在此不打算讨论的内容,您可能会想知道 apt
处理的软件子集有多小。好吧,在我的 Ubuntu 20.04 上,apt
让我可以访问 69,371 个软件包,从古代战争的 0ad
实时战略游戏到 zzuf
透明应用程序模糊器。一点也不差。
使用 apt 查找软件
使用软件包管理器(如 apt
)的第一步是找到感兴趣的软件包。Seth 的 dnf
文章使用了 Cockpit 服务器管理应用程序作为示例,因此我也会这样做
$ apt search cockpit
Sorting... Done
Full Text Search... Done
389-ds/hirsute,hirsute 1.4.4.11-1 all
389 Directory Server suite - metapackage
cockpit/hirsute,hirsute 238-1 all
Web Console for Linux servers
...
$
上面的第二个软件包是您想要的(它是以 cockpit/hirsute
开头的行)。如果您决定要安装它,请输入
$ sudo apt install cockpit
apt
将负责安装 Cockpit 以及使其工作所需的所有组件或依赖项。有时,这已足够;有时则不然。可能拥有更多信息可能有助于您决定是否真的要安装此应用程序。
软件包元数据
要了解有关软件包的更多信息,请使用 apt show
命令
$ apt show cockpit
Package: cockpit
Version: 238-1
Priority: optional
Section: universe/admin
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Utopia Maintenance Team <pkg-utopia-maintainers@lists.alioth.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 88.1 kB
Depends: cockpit-bridge (>= 238-1), cockpit-ws (>= 238-1), cockpit-system (>= 238-1)
Recommends: cockpit-storaged (>= 238-1), cockpit-networkmanager (>= 238-1), cockpit-packagekit (>= 238-1)
Suggests: cockpit-doc (>= 238-1), cockpit-pcp (>= 238-1), cockpit-machines (>= 238-1), xdg-utils
Homepage: https://cockpit-project.org/
Download-Size: 21.3 kB
APT-Sources: http://ca.archive.ubuntu.com/ubuntu hirsute/universe amd64 Packages
Description: Web Console for Linux servers
The Cockpit Web Console enables users to administer GNU/Linux servers using a
web browser.
.
It offers network configuration, log inspection, diagnostic reports, SELinux
troubleshooting, interactive command-line sessions, and more.
$
特别注意 Description
字段,其中介绍了有关应用程序的更多信息。Depends
字段说明了还必须安装哪些内容,而 Recommends
显示了建议与之一起使用的其他(如果有)协作组件。Homepage
字段提供了一个 URL,以防您需要更多信息。
哪个软件包提供了文件?
有时您不知道软件包名称,但您知道一个文件必须在软件包中。Seth 以 qmake-qt5
实用程序为例。使用 apt search
找不到它
$ apt search qmake-qt5
Sorting... Done
Full Text Search... Done
$
但是,相关的命令 apt-file
将在软件包内部进行搜索
$ apt-file search qmake-qt5
qt5-qmake-bin: /usr/share/man/man1/qmake-qt5.1.gz
$
这找到了 qmake-qt5
的 man 手册,它是名为 qt5-qmake-bin
的软件包的一部分。请注意,此软件包名称颠倒了 qmake
和 qt5
部分。
软件包中包含哪些文件?
方便的 apt-file
命令还可以告诉您给定软件包中包含哪些文件。例如
$ apt-file list cockpit
cockpit: /usr/share/doc/cockpit/TODO.Debian
cockpit: /usr/share/doc/cockpit/changelog.Debian.gz
cockpit: /usr/share/doc/cockpit/copyright
cockpit: /usr/share/man/man1/cockpit.1.gz
cockpit: /usr/share/metainfo/cockpit.appdata.xml
cockpit: /usr/share/pixmaps/cockpit.png
$
请注意,这与 apt show
命令提供的信息不同,后者列出了软件包的依赖项(必须安装的其他软件包)。
删除应用程序
您还可以使用 apt
删除软件包。例如,要删除 apt-file
应用程序
$ sudo apt purge apt-file
请注意,超级用户必须运行 apt
才能安装或删除应用程序。
删除软件包不会自动删除 apt
沿途安装的所有依赖项。但是,很容易执行一些清理工作
$ sudo apt autoremove
了解 apt
正如 Seth 所写,“您对软件包管理器的工作方式了解得越多,在必要时安装和查询应用程序就越容易。”
即使您不是 apt
的常用用户,当您需要在命令行中工作以安装或删除软件包时(例如,在远程服务器上或在遵循一些热心人士发布的指南时),了解它也可能很有用。您可能还需要了解一些关于 Dpkg(如上所述)的知识;例如,一些软件创建者提供裸 .pkg
文件。
我发现 Synaptic 软件包管理器是我桌面上非常有用的工具,但我也在我为各种目的维护的少量服务器上使用 apt
。
下载我们的 apt
速查表,以习惯该命令并尝试一些新技巧。一旦你这样做了,你可能会发现很难再使用其他任何东西。
1 条评论