星期一, 7月 09, 2007

dpkg 語法

dpkg 是 Debian GNU/Linux 底下管理套件的工具,提供比較低階的安裝維護功能,一般而言,使用者會使用比較友善的 dselect 或是 aptitude

顯示目前裝在系統中的所有 packages(rpm 用 rpm -qa)

dpkg --list

想知道總共有那些檔案安裝在系統中(rpm 為 rpm -ql samba)

dpkg --listfiles samba

或是在系統中有某個執行檔, 想知道屬於那個 package, 這樣在別台機器中才有辦法安裝

$ which smbd
/usr/sbin/smbd
$ dpkg --search /usr/sbin/smbd
samba: /usr/sbin/smbd

最前面的 samba 即為 package 名稱, 先用 which 找到 smbd 這個執行檔放在那個路徑, 再用 dpkg --search 來找到 package

名稱(redhat 中則用 rpm -qf /usr/sbin/smbd)

看 package 的說明(redhat 為 rpm -qi samba)

dpkg --status package_name 

dpkg -s package_name

假設我們由網路上自行抓了一個 .deb 的檔回來, 這時就要用 dpkg 來安裝(redhat 為 rpm -i xxx.rpm)

dpkg --install package_name.deb

dpkg -i package_name.deb

移除某個 package(rpm 為 rpm -e package_name)

dpkg --remove package_name

dpkg -r package_name

徹底移除 package

dpkg --purge package_name 

dpkg -P package_name

在還未安裝到系統中前, 查看會安裝那些檔案在系統中(rpm 用 rpm -qlp xxx.rpm)

dpkg --contents package_name.deb

dpkg -c package_name.deb

在還未安裝到系統中前, 查看 deb 檔es的資訊(rpm 用 rpm -qip xxx.rpm)

dpkg --info xxx.deb

顯示目前各個軟體套件的安裝狀態(未安裝、正確安裝、被移除、完整移除、安裝失敗等等)

dpkg --get-selections

如何在升級套件時, 讓某些套件不要更新:

echo "packagename hold" | dpkg --set-selections

沒有留言: