使用apt的Linux软件包管理
在Linux上,软件包管理器帮助你处理计算机上软件的更新、卸载、故障排除等。Seth Kenlon写了关于dnf
,这个命令行软件包管理工具用于在RHEL、CentOS、Fedora、Mageia、OpenMandriva和其他Linux发行版中安装软件。
蝶变和基于蝶变的发行版,如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软件,与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
Original-Maintainer: Utopia Maintenance Team
Bugs: http://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: http://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,以防你需要更多信息。
什么软件包提供了一个文件?
有时你不知道软件包的名称,但你知道一个文件必须在一个软件包中。赛斯提供了一个例子,即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
的手册页,它是一个叫做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
,当你在安装或删除软件包时需要在命令行下工作时,了解它也是很有用的(例如,在远程服务器上或在遵循一些有帮助的人发布的方法时)。你可能还需要了解一下Dkpg(上面提到的);例如,一些软件创建者提供了一个裸露的.pkg
文件。
我发现Synaptic软件包管理器在我的桌面上是一个非常有用的工具,但我也在我为各种目的维护的少数服务器上使用apt
。
下载我们的apt
小抄,以习惯这个命令并尝试一些新的技巧。一旦你这样做了,你可能会发现很难再使用其他东西了。
- 将机器学习带入每个开发者的工具箱中
- 介绍一下TensorFlow图谱神经网络
- 介绍一下TensorFlow图谱神经网络
- 目的驱动的微服务设计
- 目的驱动的微服务设计
- 目的驱动的微服务设计(附代码示例)
- 在Cadence音频数字信号处理器上加速TensorFlow Lite Micro
- 将机器学习带入每个开发者的工具箱中
- 如何用Kubernetes进行容器编排的超详细指南
- 使用apt的Linux软件包管理
- 如何使用持续测试云加速应用程序的测试
- 如何用Selenium获取JavaScript中的属性数据
- 如何使用python为多处理器系统建立一个基于DAG的任务调度工具
- 【译】常见的架构要素笔记(附用例)
- 【译】如何现在就从GitOps中获得最大收益
- 将Go API部署到AWS Lambda和API上
- 如何在应用平台上部署预先训练好的问题和答案TensorFlow.js模型
- 如何用Laravel Sail和Tailwind CSS创建一个新的Laravel应用程序
- MongoDB shell使用指南
- 如何在Ubuntu 20.04上使用PyMongo在MongoDB中执行CRUD操作