Ubuntu : apt-get 命令

apt-get 命令是 Ubuntu 系统中的包管理工具,可以用来安装、卸载包,也可以用来升级包,还可以用来把系统升级到新的版本。本文介绍 apt-get 命令的基本用法,演示环境为 Ubuntu 18.04。

基本语法
语法格式:
apt-get [options] command

配置文件:
早期 apt-get 默认的配置文件为 /etc/apt/apt.conf,但是当前的 Ubuntu 系统中默认没有这个文件。
如果 /etc/apt/apt.conf 文件存在,apt-get 仍然会读取它。但现在的设计思路是把配置文件分隔后放置在 /etc/apt/apt.conf.d 目录下,这样更容易管理。

常用选项:

常用子命令:
update
update 命令用于重新同步包索引文件,/etc/apt/sources.list 文件中的配置指定了包索引文件的来源。更新了包索引文件后就可以得到可用的包的更新信息和新的包信息。这样我们本地就有了这样的信息:有哪些软件的哪些版本可以从什么地方(源)安装。
update 命令应该总是在安装或升级包之前执行。

install
install 命令用来安装或者升级包。每个包都有一个包名,而不是一个完全限定的文件名(例如,在 Debian 系统中,提供的参数是 apt-utils,而不是 apt-utils_1.6.1_amd64.deb)。被安装的包依赖的包也将被安装。配置文件 /etc/apt/sources.list 中包含了用于获取包的源(服务器)。install 命令还可以用来更新指定的包。

upgrade
upgrade 命令用于从 /etc/apt/sources.list 中列出的源安装系统上当前安装的所有包的最新版本。在任何情况下,当前安装的软件包都不会被删除,尚未安装的软件包也不会被检索和安装。如果当前安装的包的新版本不能在不更改另一个包的安装状态的情况下升级,则将保留当前版本。必须提前执行 update 命令以便 apt-get 知道已安装的包是否有新版本可用。
注意 update 与 upgrade 的区别:
update 是更新软件列表,upgrade 是更新软件。

dist-upgrade
除了执行升级功能外,dist-Upgrade还智能地处理与新版本包的依赖关系的更改。APT-GET有一个“智能”的冲突解决系统,如有必要,它将试图以牺牲不太重要的包为代价,升级最重要的包。因此,Distr-Upgrade命令可能会删除一些程序包。因此,在系统中更新包时,建议您按顺序执行以下命令:

[En]

In addition to performing upgrade functions, dist-upgrade intelligently handles changes in dependencies with new versions of the package. Apt-get has a “smart” conflict resolution system that, if necessary, will try to upgrade the most important packages at the expense of less important packages. Therefore, the distr-upgrade command may delete some packages. Therefore, when updating packages in the system, it is recommended that you execute the following commands in order:

$ apt-get update
$ apt-get upgrade -y
$ apt-get dis-upgrade -y

remove
remove 与 install 类似,不同之处是删除包而不是安装包。注意,使用 remove 命令删除一个包会将其配置文件留在系统上。

purge
purge 命令与 remove 命令类似,purge 命令在删除包的同时也删除了包的配置文件。

autoremove
autoremove 命令用于删除自动安装的软件包,这些软件包当初是为了满足其他软件包对它的依赖关系而安装的,而现在已经不再需要了。

download
download 命令把指定包的二进制文件下载到当前目录中。注意,是类似 *.deb 这样的包文件。

clean
clean 命令清除在本地库中检索到的包。它从 /var/cache/apt/archives/ 和 /var/cache/apt/archives/partial/ 目录删除除锁文件之外的所有内容。

autoclean
与 clean 命令类似,autoclean 命令清除检索到的包文件的本地存储库。不同之处在于,它只删除不能再下载的软件包文件,而且这些文件在很大程度上是无用的。这允许长时间维护缓存,而不至于大小失控。

source
source 命令下载包的源代码。默认会下载最新可用版本的源代码到当前目录中。

changelog
changelog 命令尝试下载并显示包的更新日志。

查看帮助文档

更新包索引文件

安装包

在需要确认的场景中回应 yes
大多数包需要在安装前与用户交互,并在用户确认后继续安装。在自动任务中无法与用户交互。Y选项可以在这样的场景中工作,就像用户已经确认安装:

[En]

Most packages need to interact with the user before installation and continue the installation after the user confirms it. There is no way to interact with users in automated tasks. The-y option can work in such scenarios as if the user had confirmed the installation:

安装系统中有更新的包

重新安装已安装的包
如果我们认为某个程序包不能正常工作,我们可以尝试重新安装它,并在安装命令中添加–reinstall选项。此外,如果安装的程序包有更新或新版本,也可以使用此方法将程序包升级到最新版本:

[En]

If we think a package is not working properly, we can try to reinstall it and add the– reinstall option to the install command. In addition, if the installed package has an updated or new version, you can also use this method to upgrade the package to the latest version:

更新指定的包
奇怪的是,更新指定的包不是通过升级命令完成的,而是使用intall命令完成的。注意:它是安装命令:

[En]

It is strange that updating the specified package is not done through the upgrade command, but using the intall command. Note: it is the install command:

模拟执行命令并输出结果
应用 -s 选项后命令并不会真正执行,但是会模拟执行并输出结果,比如下面的例子:

添加 -s 选项后,upgrade 命令会输出将要被更新的软件但不会真的执行升级操作。

检查某个包的版本
您可以使用以下命令查看已安装程序包或要安装的程序包的版本:

[En]

You can view the version of the installed package or the package to be installed with the following command:

以下是已安装程序包的示例:

[En]

Here is an example of an installed package:

以下是一个已卸载包的示例:

[En]

Here is an example of an uninstalled package:

安装指定版本的包
请注意,这是指程序包的版本号:

[En]

Note that this refers to the version number of the package:

把包下载到缓存中而不安装
选项 -d, –download-only 告诉命令只把包下载到缓存中而不安装它们,主要用在把下载包和安装包分开的场景,比如系统默认的自动化更新:

删除包
remove 命令的特点是只删除程序文件,保留相关的配置文件:

如果要完全清除程序包,可以使用PURGE命令,该命令将删除程序文件及其配置文件:

[En]

If you want to clear the package completely, you can use the purge command, which deletes both the program file and its configuration file:

autoremove 命令用于删除自动安装的软件包,这些软件包当初是为了满足其他软件包对它的依赖关系而安装的,而现在已经不再需要了。因此在删除包后执行一下 autoremove 是个不错的选择:

清除系统中缓存的包安装文件
安装程序包的过程实际上是将程序包安装文件下载到缓存目录,然后执行安装。随着时间的推移,系统中会有大量无用的程序包安装文件,CLEAN命令可以清除这些缓存的程序包安装文件:

[En]

The process of installing the package is actually downloading the package installation file to the cache directory, and then performing the installation. Over time, there will be a large number of useless package installation files in the system, and the clean command can clear these cached package installation files:

clean 命令从 /var/cache/apt/archives/ 和 /var/cache/apt/archives/partial/ 目录删除除锁文件之外的所有内容。

autoclean 命令与 clean 命令类似。不同之处在于,它只删除不能再下载的软件包文件,而且这些文件在很大程度上是无用的。这允许长时间维护缓存,而不至于大小失控:

在执行 remove 命令时使用 –purge 选项的效果等同于执行 purge 命令:

在执行 install/remove 命令时使用 –autoremove 选项,可以同时删除无用的依赖包,类似在执行完 install/remove 命令后再执行一次 autoremove 命令:

在执行 install/upgrade 命令时显示更详细的版本信息
通过 -V 选项,可以让 install/upgrade 命令输出包的具体版本,下面是默认的输出:

下面是添加 -V 选项后的输出:

减少输出
现在您可以添加详细的输出信息,还可以灵活地使用-q选项来减少输出信息:

[En]

Now that you can add detailed output information, you can also flexibly use the-Q option to reduce the output information:

查看已安装包的更改日志
可以通过 changelog 命令来查看包的更新记录:

下载包的源代码(source code)
apt-get source 命令用来下载包的源代码。要让 apt-get source 命令起作用需要先更新 /etc/apt/sources.list 文件,添加 deb-src 配置,其实就是取消掉原本被注释掉的以 deb-src 开头的行。在 desktop 版的系统中,还可以通过 “Software & Updates” UI 来做同样的事情,在 “Ubuntu Software” 选项卡中选中 “Source code” 项即可:

现在再执行 apt-get source 命令并指定包的名称,就可以下载到该包的源代码了:

查看 apt-get 的版本

这是如此奇怪,这里显示的是贴切的。接下来我们将看到:

[En]

It’s so weird that what is shown here is apt. Go on to see:

原来 apt-get、apt-cache 和 apt-config 的功能都是由 apt 命令提供的。

查看系统的更新记录
日志文件 /var/log/apt/history.log 记录了系统的更新历史记录。通过它可以查看所有通过 apt 命令执行的安装、升级、删除记录:

Original: https://www.cnblogs.com/sparkdev/p/11339231.html
Author: sparkdev
Title: Ubuntu : apt-get 命令

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/7245/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

发表回复

登录后才能评论
免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部