目前在各 Linux 发行版中, 比较著名的软件包管理系统有: shell
RPM: Red Hat/Fedora,Suse,Mandriva 使用的是这类管理系统. apache
DPKG: Debian,ubuntu使用的是这类管理系统. ubuntu
redhat的rpm软件包管理相信你们都很熟悉,这里介绍debian下管理配置,在/etc/apt/sources.list。文件内容的格式以下: memcached
deb http://security.debian.org/ lenny/updates main deb-src http://security.debian.org/ lenny/updates main
第一列描述了文件类型,是deb类型仍是deb-src类型的,deb是已经编译好的二进制软件包,deb-src是源码包,第二列是使用的镜像地址,apt能够使用多种类型的地址,如:http、ftp、file等。 main contrib non-free是源下面不一样的目录,每一个目录放一类软件.在每次修改sources.list文件都须要运行apt-get update命令更新源列表。 ui
系统中全部 packages 的信息都在 /var/lib/dpkg/目录下, 其子目录 /var/lib/dpkg/info 用于保存各个软件包的配置文件列表 this
/var/lib/dpkg/available 文件的内容是软件包的描述信息, 该软件包括当前系统所使用的 Debian 安装源中的全部软件包,其中包括当前系统中已安装的和未安装的软件包. spa
/var/cache/apt/archives 目录是在用 apt-get install 安装软件包时,软件包的临时存放路径/etc/apt/sources.list 存放的是软件源站点, 当执行 sudo apt-get install package-name 时,软件包就去这些站点下载软件包到本地并执行安装 code
下面是yum与apt软件包管理经常使用命令对比 orm
YUM包管理 crontab |
APT包管理 |
备注 |
yum install package-name |
apt-get install package-name |
安装软件包 |
yum remove package-name |
apt-get remove package-name |
卸载软件包(保留配置文件)加入 --purge 则删除配置文件 |
yum upgrade |
apt-get upgrade |
更新全部已安装的软件包,apt-get dist-upgrade —— 将系统升级到新版本 |
yum clean package-name |
apt-get clean |
清除cache中包文件 |
yumdownloader source package-name |
apt-get source package-name |
下载程序的源代码包 |
yum search package-name |
apt-cache search package-name |
在软件资料库中搜索软件包 |
yum info package-name |
apt-cache show package-name |
查看包信息 |
下面是rpm与dpkg软件包管理经常使用命令对比
RPM包管理 |
Debian包管理 |
备注 |
rpm -qa |
dpkg -l |
查询当前系统中已安装的全部软件包 |
rpm -qi package-name |
dpkg -s package-name |
查询系统中某个软件包的详细信息 |
rpm -ql package-name |
dpkg -L package-name |
显示已安装软件包的文件列表 |
rpm -qf file |
dpkg -S file |
查询系统中指定的文件属于哪一个包 |
rpm -qpi file.rpm |
dpkg -I pkg.deb |
显示指定deb软件包文件的详细信息 |
rpm -qlp file.rpm |
dpkg -c pkg.deb |
显示deb包中的文件列表 |
rpm -ivh file.rpm |
dpkg -i pkg.deb |
安装deb软件包 |
rpm -e package-name |
dpkg -P package-name |
完全卸载deb软件包 |
rpm2cpio file.rpm|cpio -id |
dpkg -x pkg.deb . |
解包到当前目录 |
rpm -qpR file.rpm |
apt-cache depends package-name |
查询软件对环境的依赖关系 |
rpm --force --nodpes -i file.rpm |
dpkg -i --force-all pkg.deb |
强行安装软件包 |
rpm -qp --scripts file.rpm |
dpkg -e pkg.deb |
查询管理软件包脚本 |
rpmbuild -bb filename.spec |
dpkg -b pkg.deb |
建软件包 |
rpm -V package-name |
debsums -a package-name |
校建软件包中的文件是否被修改 |
rpm -checksig file.rpm |
debsig -c pkg.deb |
检证软件包签名是否正确 |
有时仅须要将包下载下来不安装,这里apt-get使用参数-d 很方便,例如:
root@10.1.1.200:~# apt-get install -d memcached Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: apache2-utils Use 'apt-get autoremove' to remove them. Suggested packages: libcache-memcached-perl The following NEW packages will be installed: memcached 0 upgraded, 1 newly installed, 0 to remove and 31 not upgraded. Need to get 47.4kB of archives. After this operation, 180kB of additional disk space will be used. Get:1 http://apt.shidc.taomee.com lenny/updates/main memcached 1.2.2-1+lenny1 [47.4kB] Fetched 47.4kB in 0s (163kB/s) Download complete and in download only mode使用yum下载rpm包, 安装yum-utils,直接用yumdownloader 就能够直接下载yum源中的rpm包.
root@10.1.1.200:~# yum install yum-utils root@10.1.1.200:~# yumdownloader crontabs.noarch root@10.1.1.200:~# ls anaconda-ks.cfg crontabs-1.10-33.el6.noarch.rpm install.log install.log.syslog
如下是apt-get是常常会用到的参数:
-d, --download-only 仅仅是下载该软件包
-m, --ignore-missing, --fix-missing 忽视丢失的包 --no-download Disables downloading of packages -y, --yes, --assume-yes 在安装过程当中,自动回答yes --assume-no 在安装过程当中,自动回答no -u, --show-upgraded 显示哪些包会被升级 --reinstall 重装已经安装的包 --purge remove而且删除配置文件 --allow-unauthenticated 忽略包的认证机制