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/

为日后重装系统后安装软件节省下载时间或者将软件包给别人用,可以将该目录下的软件包压缩备份后清理以节省空间。

 

Linux/Ubuntu: apt-cache命令的用法, apt-get apt-cache命令 使用
Linux/Ubuntu: apt-cache命令的用法, apt-get apt-cache命令 使用

 

示例: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命令 使用