前文 Ubuntu 16.04 新特性中 我们已经介绍过,随着 Ubuntu 16.04 LTS 的发布,Ubuntu…
Linux/Ubuntu: apt-cache命令的用法, apt-get apt-cache命令 使用
apt-get命令本身并不具有管理软件包功能,只是提供了一个软件包管理的命令行平台。
在这个平台上使用更丰富的子命令,完成具体的管理任务。
apt-get命令的一般语法格式为:
apt-get subcommands [ -d | -f | -m | -q | --purge | --reinstall | - b | - s | - y | - u | - h | -v ] [pkg]
apt-cache提供了搜索功能。
说明:下文命令中,尖括号中内容为用户视具体情况而定,如<pkg>可替换为实际的软件包名 mysql-server等。
1. 更新或升级操作:
apt-get update # 更新源 apt-get upgrade # 更新所有已安装的包 apt-get dist-upgrade # 发行版升级(如,从10.10到11.04)
2. 安装或重装类操作:
apt-get install <pkg> # 安装软件包<pkg>,多个软件包用空格隔开 apt-get install --reinstall <pkg> # 重新安装软件包<pkg> apt-get install -f <pkg> # 修复安装(破损的依赖关系)软件包<pkg>
3. 卸载类操作:
apt-get remove <pkg> # 删除软件包<pkg>(不包括配置文件) apt-get purge <pkg> # 删除软件包<pkg>(包括配置文件)
4. 下载清除类操作:
apt-get source <pkg> # 下载pkg包的源代码到当前目录 apt-get download <pkg> # 下载pkg包的二进制包到当前目录 apt-get source -d <pkg> # 下载完源码包后,编译 apt-get build-dep <pkg> # 构建pkg源码包的依赖环境(编译环境?) apt-get clean # 清除缓存(/var/cache/apt/archives/{,partial}下)中所有已下载的包 apt-get autoclean # 类似于clean,但清除的是缓存中过期的包(即已不能下载或者是无用的包) apt-get autoremove # 删除因安装软件自动安装的依赖,而现在不需要的依赖包
5. 查询类操作:
apt-cache stats # 显示系统软件包的统计信息 apt-cache search <pkg> # 使用关键字pkg搜索软件包 apt-cache show <pkg_name> # 显示软件包pkg_name的详细信息 apt-cache depends <pkg> # 查看pkg所依赖的软件包 apt-cache rdepends <pkg> # 查看pkg被那些软件包所依赖
6. 关于软件安装目录的说明:
一般的deb包(包括新立得或者apt-get下载的)都在/usr/share。
自己下载的压缩包或者编译的包,有些可以选择安装目录,一般放在/usr/local/,也有在/opt的。
7. 关于apt-get的缓存目录:
默认的缓存目录是/var/cache/apt/archives/
为日后重装系统后安装软件节省下载时间或者将软件包给别人用,可以将该目录下的软件包压缩备份后清理以节省空间。
示例:1 列出所有可用包
justcode@localhost:~$ apt-cache pkgnames account-plugin-yahoojp ceph-fuse dvd+rw-tools e3 gnome-commander-data grub-gfxpayload-lists gweled .......................................
示例:2 用关键字搜索包
这个命令在你不确定包名时很有用,只要在apt-cache(LCTT 译注:这里原文是apt-get,应为笔误)后面输入与包相关的关键字即可。
justcode@localhost:~$ apt-cache search "web server" apache2 - Apache HTTP Server apache2-bin - Apache HTTP Server (binary files and modules) apache2-data - Apache HTTP Server (common files) apache2-dbg - Apache debugging symbols apache2-dev - Apache HTTP Server (development headers) apache2-doc - Apache HTTP Server (on-site documentation) apache2-utils - Apache HTTP Server (utility programs for web servers) ......................................................................
注意: 如果你安装了“apt-file”包,我们就可以像下面那样用配置文件搜索包。
justcode@localhost:~$ apt-file search nagios.cfg ganglia-nagios-bridge: /usr/share/doc/ganglia-nagios-bridge/nagios.cfg nagios3-common: /etc/nagios3/nagios.cfg nagios3-common: /usr/share/doc/nagios3-common/examples/nagios.cfg.gz pnp4nagios-bin: /etc/pnp4nagios/nagios.cfg pnp4nagios-bin: /usr/share/doc/pnp4nagios/examples/nagios.cfg
示例:3 显示特定包的基本信息
justcode@localhost:~$ apt-cache show postfix Package: postfix Priority: optional Section: mail Installed-Size: 3524 Maintainer: LaMont Jones <lamont@debian.org> Architecture: amd64 Version: 2.11.1-1 Replaces: mail-transport-agent Provides: default-mta, mail-transport-agent .....................................................
示例:4 列出包的依赖
justcode@localhost:~$ apt-cache depends postfix postfix Depends: libc6 Depends: libdb5.3 Depends: libsasl2-2 Depends: libsqlite3-0 Depends: libssl1.0.0 |Depends: debconf Depends: <debconf-2.0> cdebconf debconf Depends: netbase Depends: adduser Depends: dpkg ............................................
示例:5 使用apt-cache显示缓存统计
justcode@localhost:~$ apt-cache stats Total package names: 60877 (1,218 k) Total package structures: 102824 (5,758 k) Normal packages: 71285 Pure virtual packages: 1102 Single virtual packages: 9151 Mixed virtual packages: 1827 Missing: 19459 Total distinct versions: 74913 (5,394 k) Total distinct descriptions: 93792 (2,251 k) Total dependencies: 573443 (16.1 M) Total ver/file relations: 78007 (1,872 k) Total Desc/File relations: 93792 (2,251 k) Total Provides mappings: 16583 (332 k) Total globbed strings: 171 (2,263 ) Total dependency version space: 2,665 k Total slack space: 37.3 k Total space accounted for: 29.5 M
示例:6 使用 “apt-get update” 更新仓库
使用命令“apt-get update”, 我们可以重新从源仓库中同步文件索引。包的索引从“/etc/apt/sources.list”中检索。
justcode@localhost:~$ sudo apt-get update Ign http://extras.ubuntu.com utopic InRelease Hit http://extras.ubuntu.com utopic Release.gpg Hit http://extras.ubuntu.com utopic Release Hit http://extras.ubuntu.com utopic/main Sources Hit http://extras.ubuntu.com utopic/main amd64 Packages Hit http://extras.ubuntu.com utopic/main i386 Packages Ign http://in.archive.ubuntu.com utopic InRelease Ign http://in.archive.ubuntu.com utopic-updates InRelease Ign http://in.archive.ubuntu.com utopic-backports InRelease ................................................................
示例:7 使用apt-get安装包
justcode@localhost:~$ sudo apt-get install icinga
上面的命令会安装叫“icinga”的包。
示例:8 升级所有已安装的包
justcode@localhost:~$ sudo apt-get upgrade
示例:9 更新特定的包
在apt-get命令中的“install”选项后面接上“-only-upgrade”用来更新一个特定的包,如下所示:
justcode@localhost:~$ sudo apt-get install filezilla --only-upgrade
示例:10 使用apt-get卸载包
justcode@localhost:~$ sudo apt-get remove skype
上面的命令只会删除skype包,如果你想要删除它的配置文件,在apt-get命令中使用“purge”选项。如下所示:
justcode@localhost:~$ sudo apt-get purge skype
我们可以结合使用上面的两个命令:
justcode@localhost:~$ sudo apt-get remove --purge skype
示例:11 在当前的目录中下载包
justcode@localhost:~$ sudo apt-get download icinga Get:1 http://in.archive.ubuntu.com/ubuntu/ utopic/universe icinga amd64 1.11.6-1build1 [1,474 B] Fetched 1,474 B in 1s (1,363 B/s)
上面的目录会把icinga包下载到你的当前工作目录。
示例:12 清理本地包占用的磁盘空间
justcode@localhost:~$ sudo apt-get clean
上面的命令会清空apt-get所下载的包占用的磁盘空间。
我们也可以使用“autoclean”选项来代替“clean”,两者之间主要的区别是autoclean清理不再使用且没用的下载。
justcode@localhost:~$ sudo apt-get autoclean Reading package lists... Done Building dependency tree Reading state information... Done
示例:13 使用“autoremove”删除包
当在apt-get命令中使用“autoremove”时,它会删除为了满足依赖而安装且现在没用的包。
justcode@localhost:~$ sudo apt-get autoremove icinga
示例:14 显示包的更新日志
justcode@localhost:~$ sudo apt-get changelog apache2 Get:1 Changelog for apache2 (http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.4.10-1ubuntu1/changelog) [195 kB] Fetched 195 kB in 3s (60.9 kB/s)
上面的命令会下载apache2的更新日志,并在你屏幕上分页显示。
示例:15 使用 “check” 选项显示损坏的依赖关系
justcode@localhost:~$ sudo apt-get check Reading package lists... Done Building dependency tree Reading state information... Done
常用的APT命令参数
apt-cache search package 搜索包
apt-cache show package 获取包的相关信息,如说明、大小、版本等
apt-cache depends package 了解使用依赖
apt-cache rdepends package 查看该包被哪些包依赖
sudo apt-get install package 安装包
sudo apt-get install package –reinstall 重新安装包
sudo apt-get -f install 修复安装”-f = –fix-missing”
sudo apt-get remove package 删除包
sudo apt-get remove package –purge 删除包,包括删除配置文件等
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-get dselect-upgrade 使用 dselect 升级
sudo apt-get build-dep package 安装相关的编译环境
apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖
其中:
1 有SUDO的表示需要管理员特权!
2 在UBUNTU中命令后面参数为短参数是用“-”引出,长参数用“–”引出
3 命令帮助信息可用man 命令的方式查看或者
命令 -H(–help)方式查看
4 在MAN命令中需要退出命令帮助请按“q”键!!
选项 含义 作用
sudo -h Help 列出使用方法,退出。
sudo -V Version 显示版本信息,并退出。
sudo -l List 列出当前用户可以执行的命令。只有在sudoers里的用户才能使用该选项。
sudo -u username|#uid User 以指定用户的身份执行命令。后面的用户是除root以外的,可以是用户名,也可以是#uid。
sudo -k Kill 清除“入场卷”上的时间,下次再使用sudo时要再输入密码。
sudo -K Sure kill 与-k类似,但是它还要撕毁“入场卷”,也就是删除时间戳文件。
sudo -b command Background 在后台执行指定的命令。
sudo -p prompt command Prompt 可以更改询问密码的提示语,其中%u会代换为使用者帐号名称,%h会显示主机名称。非常人性化的设计。
sudo -e file Edit 不是执行命令,而是修改文件,相当于命令sudoedit
普通 Dpkg 用法
dpkg -i
安装一个 Debian 包裹文件,如你手动下载的文件。
dpkg -c
列出 的内容。
dpkg -I
从 中提取包裹信息。
dpkg -r
移除一个已安装的包裹。
dpkg -P
完全清除一个已安装的包裹。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。
dpkg -L
列出 安装的所有文件清单。同时请看 dpkg -c 来检查一个 .deb 文件的内容。
dpkg -s
显示已安装包裹的信息。同时请看 apt-cache 显示 Debian 存档中的包裹信息,以及 dpkg -I 来显示从一个 .deb 文件中提取的包裹信息。
dpkg-reconfigure
重新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提供了一个统一的配制界面)。你能够重新配制 debconf 它本身,如你想改变它的前端或提问的优先权。例如,重新配制 debconf,使用一个 dialog 前端,简单运行:
dpkg-reconfigure –frontend=dialog debconf (如果你安装时选错了,这里可以改回来哟:)
echo ” hold” | dpkg –set-selections
设置 的状态为 hlod (命令行方式)
dpkg –get-selections “”
取的 的当前状态 (命令行方式)
本文:Linux/Ubuntu: apt-cache命令的用法, apt-get apt-cache命令 使用