目前在各 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 忽略包的認證機制