Ubuntu基础教程之apt-get命令
前⾔
apt-get 命令是 Ubuntu 系统中的包管理⼯具,可以⽤来安装、卸载包,也可以⽤来升级包,还可以⽤来把系统升级到新的版本。本⽂介绍 apt-get 命令的基本⽤法,演⽰环境为 Ubuntu 18.04。
基本语法
语法格式:
apt-get [options] command
配置⽂件:
早期 apt-get 默认的配置⽂件为 /etc/f,但是当前的 Ubuntu 系统中默认没有这个⽂件。
如果 /etc/f ⽂件存在,apt-get 仍然会读取它。但现在的设计思路是把配置⽂件分隔后放置在 /etc/f.d ⽬录下,这样更容易管理。
常⽤选项:
-h, --help  // 查看帮助⽂档
-v, --version  // 查看 apt-get 的版本
-y  // 在需要确认的场景中回应 yes
-s, --dry-run  // 模拟执⾏并输出结果
-d, --download-only // 把包下载到缓存中⽽不安装
--only-upgrade  // 更新当前版本的包⽽不是安装新的版本
--no-upgrade  // 在执⾏ install 命令时,不安装已安装包的更新
-q, --quiet  // 减少输出
--purge  // 配合 remove 命令删除包的配置⽂件
--reinstall  // 重新安装已安装的包或其新版本
常⽤⼦命令:
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 命令可能会删除⼀些包。因此在更新系统中的包时,建议按顺序执⾏下⾯的命令:
$ 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 命令尝试下载并显⽰包的更新⽇志。
常见⽤法
查看帮助⽂档
$ apt-get -h
更新包索引⽂件
$ sudo apt-get update
安装包
$ sudo apt-get install nginx
在需要确认的场景中回应 yes
多数包在安装前都需要与⽤户交互,在⽤户确认后才继续安装。⽽在⾃动化的任务中是没办法与⽤户交互的。-y 选项可以在这样的场景中发挥作⽤,其效果就像是⽤户确认了安装操作⼀样:
$ sudo apt-get install -y nginx
安装系统中有更新的包
$ sudo apt-get update
$ sudo apt-get upgrade -y
$ sudo apt-get dis-upgrade -y
重新安装已安装的包
如果我们认为⼀个包⼯作不正常,可以尝试重新安装它,为 install 命令添加 --reinstall 选项就可以了。另外,如果已安装的包有了更新或新版本,也可以⽤这个⽅法把包升级到最新的版本:
$ sudo apt-get install --reinstall curl
更新指定的包
⽐较奇怪的是更新指定的包居然不是通过 upgrade 命令完成的,⽽是使⽤ intall 命令,注意:是 install 命令:
$ sudo apt-get install vim
模拟执⾏命令并输出结果
应⽤ -s 选项后命令并不会真正执⾏,但是会模拟执⾏并输出结果,⽐如下⾯的例⼦:
curl是什么命令
$ sudo apt-get update
$ sudo apt-get -s upgrade
添加 -s 选项后,upgrade 命令会输出将要被更新的软件但不会真的执⾏升级操作。
检查某个包的版本
通过下⾯的命令可以查看已安装包或即将安装包的版本:
$ sudo apt-get -s install vim
下⾯是⼀个已安装包的例⼦:
下⾯是⼀个未安装包的例⼦:
安装指定版本的包
注意,这⾥指的是包的版本号:
$ sudo apt-get install tree=1.7.0-5
把包下载到缓存中⽽不安装
选项 -d, --download-only 告诉命令只把包下载到缓存中⽽不安装它们,主要⽤在把下载包和安装包分开的场景,⽐如系统默认的⾃动化更新:
$ sudo apt-get install -d nginx
$ sudo apt-get upgrade -d
$ sudo apt-get dist-upgrade -d
删除包
remove 命令的特点是只删除程序⽂件,保留相关的配置⽂件:
$ sudo apt-get remove vim
如果要彻底清除包,可以使⽤ purge 命令,它会同时删除程序⽂件及其配置⽂件:
$ sudo apt-get purge vim
autoremove 命令⽤于删除⾃动安装的软件包,这些软件包当初是为了满⾜其他软件包对它的依赖关系⽽安装的,⽽现在已经不再需要了。因此在删除包后执⾏⼀下 autoremove 是个不错的选择:
$ sudo apt-get autoremvoe
清除系统中缓存的包安装⽂件
安装包的过程实际上是先把包安装⽂件下载到缓存⽬录,然后执⾏安装。久⽽久之系统中会存在⼤量⽆⽤的包安装⽂件,clean 命令可以清除这些缓存的包安装⽂件:
$ sudo apt-get clean
clean 命令从 /var/cache/apt/archives/ 和 /var/cache/apt/archives/partial/ ⽬录删除除锁⽂件之外的所有内容。
autoclean 命令与 clean 命令类似。不同之处在于,它只删除不能再下载的软件包⽂件,⽽且这些⽂件在很⼤程度上是⽆⽤的。这允许长时间维护缓存,⽽不⾄于⼤⼩失控:
$ sudo apt-get autoclean
在执⾏ remove 命令时使⽤ --purge 选项的效果等同于执⾏ purge 命令:
$ sudo apt-get remove --purge vim
在执⾏ install/remove 命令时使⽤ --autoremove 选项,可以同时删除⽆⽤的依赖包,类似在执⾏完 install/remove 命令后再执⾏⼀次 autoremove 命令:
$ sudo apt-get remove --autoremove vim
在执⾏ install/upgrade 命令时显⽰更详细的版本信息
通过 -V 选项,可以让 install/upgrade 命令输出包的具体版本,下⾯是默认的输出:
$ sudo apt-get upgrade -s
下⾯是添加 -V 选项后的输出:
$ sudo apt-get upgrade -V -s
减少输出
既然可以增加详细的输出信息,也可以灵活地使⽤ -q 选项来减少输出的信息:
$ sudo apt-get install -q curl
$ sudo apt-get install -q=2 curl
查看已安装包的更改⽇志
可以通过 changelog 命令来查看包的更新记录:
$ apt-get changelog tree
下载包的源代码(source code)
apt-get source 命令⽤来下载包的源代码。要让 apt-get source 命令起作⽤需要先更新 /etc/apt/sources.list ⽂件,添加 deb-src 配置,其实就是取消掉原本被注释掉的以 deb-src 开头的⾏。在 desktop 版的系统中,还可以通过 "Software & Updates" UI 来做同

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。