介绍
包装格式和包装管理工具因分布而异,但大多数分布使用两种核心工具之一。
对于基于 Red Hat Enterprise Linux 的发行版(如 RHEL 本身和 Rocky Linux),RPM 包装格式和包装工具如rpm
和yum
是常见的。
近年来,有更多的辅助包管理器被设计为与核心apt
和dpkg
工具并行运行:例如, snap提供了更多的可移植性和沙盒,而 Homebrew从macOS移植,提供了指令行工具,可以由个别用户安装,以避免与系统包的冲突。
在本指南中,您将了解系统管理员在 Debian 和 Ubuntu 系统上使用的一些最常见的包管理工具,这些工具可以用作快速参考,当您需要知道如何在这些系统中完成包管理任务时。
前提条件
- Ubuntu 20.04 或 Debian 服务器和具有 sudo 特权的非 root 用户. 您可以在我们的 Ubuntu 20.04 初始服务器设置 指南中了解有关如何设置具有这些特权的用户的更多信息.
步骤 1 – Debian 包管理工具概述
Debian/Ubuntu 生态系统使用几种不同的包管理工具来管理系统上的软件。
大多数这些工具是相互关联的,并在相同的包数据库上工作,其中一些工具试图为包装系统提供高级接口,而其他实用程序则专注于提供低级功能。
适合
命令apt
可能是apt
包装工具套件中最常用的成员,其主要目的是与分布的包装团队维护的远程存储库进行接口,并对可用的包装执行操作。
该apt
套件通常通过将来自远程存储库的信息拖入在本地系统中维护的缓存中进行功能。apt
命令用于更新本地缓存。
一般来说,apt
将用于更新本地缓存,并对现场系统进行更改。
<$>[注]
**注:**在Ubuntu的早期版本中,核心apt
命令被称为apt-get
。
可用性
apt
套件的另一个重要成员是apt-cache
,该实用程序使用本地缓存来查询有关可用的包及其属性的信息。
例如,任何时候你想搜索一个特定的包或工具,这将执行一个特定的功能,apt-cache
是一个很好的开始的地方。它也可以提供有关具体的包版本将被一个程序瞄准的信息。
虽然以前的工具专注于管理存储库中维护的包,但dpkg
命令也可以用于单个.deb
包操作。
与apt
命令不同,dpkg
没有自动解决依赖的能力,其主要功能是能够直接与.deb
包一起工作,并能够分解包并了解其结构的更多信息,尽管它可以收集有关系统上安装的包的某些信息,但您不应该将其用作主要的包管理器。
步骤 2 – 更新包缓存和系统
Debian 和 Ubuntu 包管理工具有助于保持您系统的可用包列表的最新状态,它们还提供了您目前在服务器上安装的各种更新包的方法。
更新本地包缓存
您的包装工具所依赖的远程存储库不断更新,但大多数Linux包管理工具的设计,由于历史原因,可以直接与本地缓存这些信息。
通常,在执行其他包命令之前每次更新本地包缓存是一个好主意,这将确保您使用最新的有关可用的软件的信息。
若要更新本地缓存,请使用apt
命令与update
子命令:
1sudo apt update
这将下载您正在跟踪的存储库中可用的包的最新列表。
更新包裹
apt
命令区分两种不同的更新程序。第一个更新程序(本节涵盖)可用于升级不需要删除组件的任何组件。
当您不希望在任何情况下删除任何已安装的软件包时,这可能非常重要,但是,一些更新包括更换系统组件或删除相矛盾的文件。
1sudo apt upgrade
第二个程序会更新所有包,甚至需要删除包的包。
通常,正在删除的软件包在升级过程中会被功能相应的软件包所取代,所以这通常是安全的。但是,如果某些必不可少的组件被标记为删除,请注意删除的软件包。
1sudo apt full-upgrade
这将更新您的系统上的所有包. 在下一步,您将了解如何下载和安装新包。
步骤 3 – 下载和安装包
搜尋包裹
在下载和安装包时,第一个步骤往往是搜索您正在寻找的包的发行版存储库。
搜索包是针对包缓存信息的操作之一. 要做到这一点,请使用apt-cache search
。 请记住,在搜索包之前,您应该使用sudo apt update
确保本地缓存处于最新状态:
1apt-cache search package
由于此过程仅仅是查询信息,因此不需要sudo
特权,任何进行的搜索都将查看包的名称,以及包的完整描述。
例如,如果你搜索Hop
,你会看到这样的结果:
1apt-cache search htop
1[secondary_label Output]
2aha - ANSI color to HTML converter
3htop - interactive processes viewer
4libauthen-oath-perl - Perl module for OATH One Time Passwords
正如你所看到的,你有一个名为hop
的包,但你也可以看到另外两个程序,每个程序都在包的完整描述字段中提到hop
(输出旁边的描述只是一个简短的摘要)。
安装一个包从休息
要从存储库中安装一个包,以及所有必要的依赖,您可以使用apt
命令与install
参数。
此命令的参数应该是包名称或名称,如它们在存储库中标记:
1sudo apt install package
您可以同时安装多个包,分隔一个空间:
1sudo apt install package1 package2
如果您的要求包需要额外的依赖,这些将打印到标准输出,并要求您确认程序。
1sudo apt install apache2
1[secondary_label Output]
2Reading package lists... Done
3Building dependency tree
4Reading state information... Done
5The following extra packages will be installed:
6 apache2-data
7Suggested packages:
8 apache2-doc apache2-suexec-pristine apache2-suexec-custom
9 apache2-utils
10The following NEW packages will be installed:
11 apache2 apache2-data
120 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
13Need to get 236 kB of archives.
14After this operation, 1,163 kB of additional disk space will be used.
15Do you want to continue [Y/n]?
正如你所看到的,即使我们的安装目标是apache2
包,则需要apache2-data
包作为依赖性,在这种情况下,您可以继续按Enter
或Y
,或者通过键入n
取消。
从 Repos 安装特定包版本
如果您需要安装特定版本的软件包,您可以提供您想要针对的版本的 =
,如下:
1sudo apt install package=version
在这种情况下,版本必须与存储库中可用的软件包版本号之一相匹配,这意味着使用您的分布所使用的版本编程方案。
1apt-cache policy nginx
1[secondary_label Output]
2nginx:
3 Installed: (none)
4 Candidate: 1.18.0-0ubuntu1.2
5 Version table:
6 1.18.0-0ubuntu1.2 500
7 500 http://mirrors.digitalocean.com/ubuntu focal-updates/main amd64 Packages
8 500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
9 1.17.10-0ubuntu1 500
10 500 http://mirrors.digitalocean.com/ubuntu focal/main amd64 Packages
重组包装
许多包包括安装后配置脚本,这些脚本在安装完成后会自动运行,这些程序通常包括提示管理员做出配置选择。
如果您需要在稍后执行这些(以及其他)配置步骤,您可以使用dpkg-reconfigure
命令。
1sudo dpkg-reconfigure package
这将允许您访问您在安装时运行的相同(而且往往更多)提示。
执行包操作的干燥运行
很多时候,你会想看到一个程序的副作用之前没有实际承诺执行命令。 apt
允许你添加 s
旗帜来模拟
一个程序。
例如,要查看如果您选择安装软件包会发生什么,您可以键入:
1apt install -s package
这将让你看到所有依赖和系统的变化,如果你删除s
旗帜,你可以看到一个通常需要根特权的过程的结果,而不使用sudo
。
例如,如果你想评估什么将被安装在apache2
包中,你可以输入:
1apt install -s apache2
1[secondary_label Output]
2NOTE: This is only a simulation!
3 apt needs root privileges for real execution.
4 Keep also in mind that locking is deactivated,
5 so don't depend on the relevance to the real current situation!
6Reading package lists... Done
7Building dependency tree
8Reading state information... Done
9The following extra packages will be installed:
10 apache2-data
11Suggested packages:
12 apache2-doc apache2-suexec-pristine apache2-suexec-custom
13 apache2-utils
14The following NEW packages will be installed:
15 apache2 apache2-data
160 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
17Inst apache2-data (2.4.6-2ubuntu2.2 Ubuntu:13.10/saucy-updates [all])
18Inst apache2 (2.4.6-2ubuntu2.2 Ubuntu:13.10/saucy-updates [amd64])
19Conf apache2-data (2.4.6-2ubuntu2.2 Ubuntu:13.10/saucy-updates [all])
20Conf apache2 (2.4.6-2ubuntu2.2 Ubuntu:13.10/saucy-updates [amd64])
您可以获得有关安装的软件包和版本的所有信息,而无需完成实际过程。
这也适用于其他程序,例如进行系统升级:
1apt -s dist-upgrade
默认情况下,apt
会提示用户对许多流程进行确认,包括需要额外依赖的安装和包升级。
为了绕过这些升级,并默认接受任何这些提示,您可以在执行这些操作时通过-y
旗:
1sudo apt install -y package
这将安装包和任何依赖程序,而不会进一步提示用户,这也可以用于升级程序:
1sudo apt dist-upgrade -y
修复破碎的依赖和包裹
有时,由于依赖性或其他问题,安装可能无法成功完成,其中一个常见的情况是安装具有dpkg
的 .deb
包时,这不会解决依赖性。
apt
命令可以通过-f
命令来尝试解决这种情况。
1sudo apt install -f
这将搜索未满足的任何依赖性,并尝试安装它们以修复依赖性树. 如果您的安装抱怨存在依赖性问题,那么这应该是尝试解决问题的第一步。
下载从休息的包裹
有主要情况下,从存储库中下载一个包,而不实际安装它可能有帮助,您可以通过运行apt
和download
参数来做到这一点。
由于这只是下载一个文件而不会影响实际系统,因此不需要任何sudo
特权:
1apt download package
这将下载指定的包(s)到当前目录。
安装一个.deb 包
虽然大多数发行版建议从其维护的存储库安装软件,但一些供应商提供原始.deb 文件,您可以在系统上安装。
要做到这一点,你使用 dpkg
. dpkg
主要用于与单个包一起工作. 它不尝试从存储库执行安装,而是在当前目录中寻找 .deb
包,或者提供的路径:
1sudo dpkg --install debfile.deb
重要的是要注意,dpkg
工具不执行任何依赖处理,这意味着如果有任何未满足的依赖,安装将失败,但它会标记所需的依赖,所以如果所有依赖在存储库中可用,您可以通过输入以下内容来满足它们:
1sudo apt install -f
这将安装任何未满足的依赖,包括那些标记为dpkg
。在下一步,您将了解如何删除您已安装的一些软件包。
步骤 4 – 删除包和删除文件
本节将讨论如何卸载包并清理可能被包操作留下的文件。
删除一个包
若要移除已安装的软件包,您可以使用apt remove
,这将删除该软件包安装在系统上的大部分文件,但有一个显著的例外。
此命令将保留配置文件,以便您的配置仍然可用,如果您需要在稍后重新安装应用程序,这是有用的,因为这意味着您自定义的任何配置文件不会被删除,如果您意外删除一个包。
要完成此操作,您需要提供您想要卸载的软件包的名称:
1sudo apt remove package
该包将被卸载,除了您的配置文件。
删除一个包和所有相关的配置文件
如果您想从系统中删除一个包和所有相关文件,包括配置文件,您可以使用apt purge
。
与上面提到的删除
命令不同,清除
命令会删除所有内容,如果您不希望保存配置文件,或者您遇到问题并希望从清洁的板块开始,则非常有用。
请记住,一旦您的配置文件被删除,您将无法恢复它们:
1sudo apt purge package
现在,如果您需要重新安装该包,将使用默认配置。
删除不再需要的任何自动依赖
当您使用apt remove
或apt purge
从系统中删除软件包时,将删除软件包的目标。
为了自动删除已安装为依赖程序的任何包,这些包不再需要,您可以使用autoremove
命令:
1sudo apt autoremove
如果您想从正在删除的依赖中删除所有相关配置文件,您将想要将--purge
选项添加到autoremove
命令中。
1sudo apt --purge autoremove
清理过时的文件包
随着分布的包维护者添加和从存储库中删除包,一些包将变得过时。
该apt
工具可以使用autoclean
命令删除本地系统上的任何与不再在存储库中可用的包相关的包文件。
这将释放服务器上的空间,并从本地缓存中删除任何可能过时的包。
1sudo apt autoclean
在下一步中,您将学习查询包的更多方法,而不必安装它们。
步骤5 – 获取有关包裹的信息
每个包包含大量的元数据,可以使用包管理工具访问,本节将展示一些常见的方式来获取有关可用的和安装的包的信息。
若要在您的分布的存储库中显示有关包的详细信息,您可以使用apt-cache show
。
1apt-cache show nginx
每个候选人将有有关其依赖性、版本、架构、冲突、实际的包文件名称、包和安装的大小以及详细描述等信息。
1[secondary_label Output]
2Package: nginx
3Architecture: all
4Version: 1.18.0-0ubuntu1.2
5Priority: optional
6Section: web
7Origin: Ubuntu
8Maintainer: Ubuntu Developers <[email protected]>
9Original-Maintainer: Debian Nginx Maintainers <[email protected]>
10Bugs: https://bugs.launchpad.net/ubuntu/+filebug
11Installed-Size: 44
12Depends: nginx-core (<< 1.18.0-0ubuntu1.2.1~) | nginx-full (<< 1.18.0-0ubuntu1.2.1~) | nginx-light (<< 1.18.0-0ubuntu1.2.1~) | nginx-extras (<< 1.18.0-0ubuntu1.2.1~), nginx-core (>= 1.18.0-0ubuntu1.2) | nginx-full (>= 1.18.0-0ubuntu1.2) | nginx-light (>= 1.18.0-0ubuntu1.2) | nginx-extras (>= 1.18.0-0ubuntu1.2)
13Filename: pool/main/n/nginx/nginx_1.18.0-0ubuntu1.2_all.deb
14…
要显示有关每个候选人的额外信息,包括完全的反依赖列表(取决于被查询的包的包列表),请使用showpkg
命令。
1apt-cache showpkg package
显示关于.deb 包的信息
要显示有关.deb 文件的详细信息,您可以使用 --info' 旗帜与
dpkg' 命令. 该命令的目标应该是到 `.deb' 文件的路径:
1dpkg --info debfile.deb
这将向您展示有关该软件包的一些元数据,其中包括软件包的名称和版本,其所构建的架构,所需的大小和依赖性,描述和冲突。
要具体列出依赖(该包依赖的包)和逆依赖(依赖该包的包),您可以使用apt-cache
实用程序。
对于常规的依赖信息,您可以使用依赖
子命令:
1apt-cache depends nginx
1[secondary_label Output]
2nginx
3 |Depends: nginx-core
4 |Depends: nginx-full
5 |Depends: nginx-light
6 Depends: nginx-extras
7 |Depends: nginx-core
8 |Depends: nginx-full
9 |Depends: nginx-light
10 Depends: nginx-extras
這將顯示關於每個列為硬依賴,建議,建議或衝突的包的資訊。
如果您需要找出哪些包取决于特定包,您可以将该包传输到apt-cache rdepends
:
1apt-cache rdepends package
显示已安装和可用的包版本
通常,存储库中有多个版本的软件包,其中有一个默认软件包. 若要查看可用的软件包版本,您可以使用apt-cache 策略
:
1apt-cache policy package
这将向您显示所安装的版本(如果有),如果您未指定安装命令的版本,将默认安装的软件包,以及完整的软件包版本表,以表示每个版本的优先级的重量。
因为这也列出了每个版本所在的存储库,所以可以用来确定是否有任何额外的存储库正在取代默认存储库的包。
显示安装的包装与 dpkg -l
要显示在您的系统上安装的软件包,您有几个单独的选项,这些选项在输出格式和口语程度上有所不同。
第一种方法是使用dpkg
或dpkg- Query
命令,标记为-l
。这两个命令的输出是相同的,没有任何论点,它会列出系统上每个安装或部分安装的包的列表。
1dpkg -l
1[secondary_label Output]
2Desired=Unknown/Install/Remove/Purge/Hold
3| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
4|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
5||/ Name Version Architecture Description
6+++-===========================================-=======================================-============-=====================================================================================================================
7ii account-plugin-generic-oauth 0.10bzr13.03.26-0ubuntu1.1 amd64 GNOME Control Center account plugin for single signon - generic OAuth
8ii accountsservice 0.6.34-0ubuntu6 amd64 query and manipulate user account information
9ii acl 2.2.52-1 amd64 Access control list utilities
10ii acpi-support 0.142 amd64 scripts for handling many ACPI events
11ii acpid 1:2.0.18-1ubuntu2 amd64 Advanced Configuration and Power Interface event daemon
12. . .
输出继续在系统上的每个包. 在输出的顶部,你可以看到每个行上的前三个字符的含义. 第一个字符表示想要的包的状态。
- u: Unknown
- i: Installed
- r: Removed
- p: Purged
- h: Version held
第二个字符表示包装系统所知道的包装的实际状态,这些可能是:
- n:未安装
- i:已安装
- c:配置文件存在,但应用程序已卸载
- u:未包装.文件已卸载,但尚未配置
- f:该包已半安装,这意味着通过安装中断操作的一部分故障
- w:该包正在等待一个单独的包 的触发器
- p:该包已被另一个包 触发
第三个字符,这将是大多数包的空白空间,只有一个潜在的其他选项:
- r:这表明需要重新安装,这通常意味着软件包已被破坏并处于非功能状态
其他列包含包名称、版本、架构和描述。
显示过滤包的安装状态
如果您在-l
模式后添加搜索模式,则dpkg
会列出包含该模式的所有包(不论已安装或未安装)。
1dpkg -l libyaml*
1[secondary_label Output]
2Desired=Unknown/Install/Remove/Purge/Hold
3| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
4|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
5||/ Name Version Architecture Description
6+++-===============-============-============-===================================
7ii libyaml-0-2:amd 0.1.4-2ubunt amd64 Fast YAML 1.1 parser and emitter li
8ii libyaml-dev:amd 0.1.4-2ubunt amd64 Fast YAML 1.1 parser and emitter li
9un libyaml-perl <none> (no description available)
10un libyaml-syck-pe <none> (no description available)
11ii libyaml-tiny-pe 1.51-2 all Perl module for reading and writing
正如您可以从第一个列中看到的,第三和第四个结果没有安装,这会给你每个匹配模式的包,以及它们的当前和想要的状态。
在您的系统上安装的软件包的替代方式是dpkg -get-selections
。
这里列出了安装或删除但未清除的所有包的列表:
1dpkg --get-selections
要区分这两个状态,您可以将输出从dpkg
到awk
以按状态过滤。
1dpkg --get-selections | awk '$2 ~ /^install/'
要获取尚未清除配置文件的删除包列表,您可以代替键入:
1dpkg --get-selections | awk '$2 !~ /^install/'
你也許想了解更多關於 piping command output through awk,
搜索已安装的包
要搜索您已安装的软件包库,您可以在 - get-selections
选项后添加一个软件包过滤器字符串,这支持与wildcards
匹配。
1dpkg --get-selections libz*
您可以再次使用上一节中的awk
表达式进行过滤。
通过一个包安装的列表文件
要找出哪个文件是由一个包负责的,你可以使用-L
旗与dpkg
命令:
1dpkg -L package
这将打印由包控制的每个文件的绝对路径. 这将不包括由包内的流程生成的任何配置文件。
要找出哪个包负责您的文件系统中的某个文件,您可以通过-S
旗的dpkg
命令的绝对路径。
这将打印出安装该文件的软件包:
1dpkg -S /path/to/file
请记住,通过后安装脚本移动到位置的任何文件都无法通过此技术将其绑定到包中。
查找哪个包提供一个文件而不安装它
使用dpkg
,您可以使用-S
选项查找哪个软件包拥有文件,但有时您可能需要知道哪个软件包提供文件或命令,即使您可能没有安装相关软件包。
要做到这一点,您需要安装一个名为apt-file
的实用程序,它维护了自己的信息库,其中包括数据库中的每个由包控制的文件的安装路径。
将apt-file
包作为正常安装:
1sudo apt update
2sudo apt install apt-file
现在,更新工具的数据库并通过键入搜索文件:
1sudo apt-file update
2sudo apt-file search /path/to/file
这只适用于由包直接安装的文件位置。通过安装后脚本创建的任何文件都无法查询。下一步,您将学习如何导入和导出已安装的包列表。
步骤 6 – 系统之间传输包列表
很多时候,您可能需要从一个系统备份安装的包列表,并使用它来在不同的系统上安装相同的包列表。
如果您需要将一个系统上安装的套件复制到另一个系统,则首先需要导出您的包列表。
您可以将安装的包列表导出到一个文件,将 dpkg --get-selections
的输出重定向到文本文件:
1dpkg --get-selections > ~/packagelist.txt
你可能还想了解更多有关 输入和输出重定向的信息。
此列表可以复制到第二台机器并导入。
您还可能需要备份您的源列表和您信任的密钥列表,您可以通过创建一个新目录并将其从系统配置中复制到 /etc/apt/
来备份您的源:
1mkdir ~/sources
2cp -R /etc/apt/sources.list* ~/sources
您为从第三方存储库安装包所添加的任何密钥都可以使用apt-key exportall
导出:
1apt-key exportall > ~/trusted_keys.txt
您现在可以将packagelist.txt
文件、源
目录和trusted_keys.txt
文件转移到另一个计算机进行导入。
进口包列表
如果您使用dpkg --get-selections
创建了包列表,如上所示,您也可以使用dpkg
命令在其他计算机上导入包。
首先,您需要添加可信密钥,并执行您从第一个环境复制的源列表,假设您备份的所有数据已被复制到新计算机的主目录,您可以键入:
1sudo apt-key add ~/trusted_keys.txt
2sudo cp -R ~sources/* /etc/apt/
接下来,从新计算机清除所有非必不可少的包的状态,以确保您正在将更改应用到清洁的板块上。
1sudo dpkg --clear-selections
这将标记所有非必不可少的软件包卸载。您应该更新本地的软件包列表,以便您的安装将有您打算安装的所有软件的记录。
您应该确保安装删除选项
工具. 此工具维护自己的数据库,因此您还需要在继续之前更新它:
1sudo apt update
2sudo apt install dselect
3sudo dselect update
接下来,您可以应用当前列表的顶部的包列表来配置哪些包应该保留或下载:
1sudo dpkg --set-selections < packagelist.txt
此设置为正确的包状态. 若要应用更改,请运行 apt dselect-upgrade
:
1sudo apt dselect-upgrade
这将下载并安装任何必要的软件包,还会删除任何被标记为删除选择
的软件包。最终,您的软件包列表应该与以前的计算机相匹配,尽管配置文件仍需要复制或修改。
在下一步和最后一步中,您将了解如何使用第三方包存储库。
步骤7 – 添加存储库和PPA
虽然大多数发行版提供的默认存储库集通常是最易于维护的,但有时额外的来源可能有用。
Ubuntu 上的传统存储库的替代品是 PPA,或 p personal package archives. 其他 Linux 味道通常使用不同但相似的第三方存储库概念。
将 PPA 添加到您的系统允许您使用您常用的包管理工具来管理它们的包,这可以用来提供不包含在分布的存储库中更新的包,请注意只添加您信任的 PPA,因为您将允许非标准维护者为您的系统建立包。
要添加 PPA,您可以使用add-apt-repository
命令. 目标应该包含标签 ppa:
,然后是 PPA 所有者的名称在 Launchpad上),一个 slash 和 PPA 名称:
1sudo add-apt-repository ppa:owner_name/ppa_name
您可能会被要求接受包裹的密钥。之后,PPA将被添加到您的系统中,允许您使用正常的apt
命令来安装包裹。在搜索或安装包裹之前,请确保更新您的本地缓存,并提供有关新PPA的信息:
1sudo apt update
您也可以直接编辑存储库配置. 您可以编辑 /etc/apt/sources.list
文件,或将新列表放到 /etc/apt/sources.list.d
目录中。
1sudo nano /etc/apt/sources.list.d/new_repo.list
在文件中,您可以使用以下格式添加新存储库的位置:
1[label /etc/apt/sources.list.d/new_repo.list]
2deb_or_deb-src url_of_repo release_code_name_or_suite component_names
仓库规格的不同部分是:
- deb或deb-src:这标识了存储库的类型。常规存储库标记为
deb
,而源存储库开始为deb-src
- url:该存储库的主要 URL 应该是存储库可以找到的位置
- 发布代码名称或套件:这通常是您的发行版本的代码名称,但它可以是用于识别您发行版本创建的特定包的名称
- 组件名称:您希望提供的选择包的标签。
在一些其他Linux发行版中,您可以通过实际安装包含仅为该存储库一个配置文件的包来添加额外的存储源,这与包管理器设计的方式一致。
结论
您可以执行许多其他包管理操作,但本教程为您提供了Ubuntu基础知识的基线,其中许多可以用微小的变化将其一般化到其他发行版。
接下来,您可能想了解更多关于 其他平台上的包装管理。