用于管理程序安装和删除的基础系统。
dpkg -l
dpkg -s <package>
dpkg -I <debfile>
dpkg -L <package>
dpkg -c <debfile>
用于配置包的交互系统。
状态标明了包在系统中处于哪个阶段。
dpkg -i <debfile>
dpkg -r <package>
删除配置
dpkg -P <package>
dpkg --configure -a
dpkg -S filepath
dpkg -x <debfile> <target>
用于管理程序源的基础系统。
整个系统中所列的所有源里面载明的包列表。
列表里面有数据,指明某个包可以在哪个url取得,大小多少,md5/sha1/sha256。因此下载列表所指明的文件是不会遭到替换的(碰撞算法不算)。
apt-get update
aptitude update
apt-get download <package>
aptitude download <package>
下载源码
apt-get source <package>
aptitude source <package>
apt-get install <package>
aptitude install <package>
apt-get remove <package>
aptitude remove <package>
删除带配置
apt-get purge <package>
aptitude purge <package>
/etc/apt/sources.list文件中,每行指明一个源。
deb http://192.168.1.22:9999/debian/ wheezy main contrib non-free
源给出的包列表使得下载包是安全的,但是包列表本身还可能遭到替换。为了解决这个问题,需要对包列表进行签名。apt使用的是gpg签名系统。在每个系统上,都安装了可信签名公钥。
sudo apt-key list
凡是经过可信密钥签名的仓库,都是可信仓库。而非可信仓库添加进去的第一件事,就是添加签名公钥。
安装approx,修改/etc/approx/approx.conf
每行一条,开始指明缓存路径,后续指明上游目标。例如:
debian http://mirrors.ustc.edu.cn/debian
ubuntu http://mirrors.163.com/ubuntu
gplhost http://mirrors.shell909090.org/gplhost
第一条说明http://server:9999/debian映射到http://mirrors.ustc.edu.cn/debian。后续同。第三条为openstack在wheezy上的backport附加源。
aptitude search '.*' | grep '^i'
apt-mark showmanual
apt-mark showauto
apt-cache show nginx-light
Conflicts: nginx-extras, nginx-full, nginx-naxsi
冲突主要用于解决有相同路径的文件,具有替代功能的程序,或不兼容的版本。
apt-get upgrade
aptitude upgrade
在版本升级中,很容易出现冲突。例如新包依赖于一个新的库,但是系统中某个未升级的程序依赖于一个老的库。两者都是强制依赖,因此不能同时存在于系统中。
使用aptitude,进入后可以看到冲突的存在。按E查看冲突解决方案,或调整方案。
最有效的方法是自行求解。通过自行标记某些包为安装或删除状态,解除冲突。
unattended-upgrades
由于升级的量更小,因此几乎不可能碰到冲突。