這是本文件的舊版!
查詢套件詳細資料
$ dpkg -s [套件名]
列出所有已經安裝的套件
$ dpkg -l
查詢指定套件狀態
$ dpkg -l [套件名]
第一位為期望碼,第二位為目前狀態碼。
符號 | 期望碼 |
---|---|
u | 未知 |
i | 安裝 |
r | 刪除 |
p | 清除 |
h | 凍結 |
符號 | 狀態碼 |
n | 無 |
i | 已安裝 |
c | 僅存設定檔 |
U | 僅解壓縮 |
F | 設定失敗 |
H | 不完全安裝 |
查詢套件包含的所有檔案
$ dpkg -L [套件名]
查詢 .deb 檔案中包含的檔案
$ dpkg -c [*.deb]
查詢某個檔案是哪個套件提供的
$ dpkg -S [檔案名]
拿到一個 deb 檔,用 ar 解開
$ ar x file.deb
得到 debian-binary、control.tar.gz、data.tar.gz 三個檔案,再把 control.tar.gz 解開,得到 control 檔,裡面紀錄套件資訊,修改好 Depends 後,將 control.tar.gz 包回去,然後用
$ ar d file.deb control.tar.gz
將舊的 control 刪除,最後用
$ ar r file.deb control.tar.gz
將新的 control 加進去即可。
重新編譯套件,建立最佳化套件。
# apt-get install apt-build
設定檔放在 /etc/apt/apt-build.conf,接著更新套件清單
# apt-build update
安裝套件
# apt-build install [套件名]
如果要重新安裝套件
# apt-build --reinstall install [套件名]
相關檔案放在 /var/cache/apt-build 中。
首先將系統內所有已經安裝的套件列出來
# dpkg --get-selections | awk '{if ($2 == "install") print $1}' > /etc/apt/apt-build.list
全系統編譯,需要非常久的時間
# apt-build world
如果套件沒有 debianize,要手動用 tarball 編譯,而 configure 時會因相依性不足,需要手動安裝許多套件,auto-apt 即可自動安裝相依套件,先安裝 auto-apt,然後更新清單
# auto-apt update
接著 configure 套件,若遇到缺少的套件,會另外跳出一個視窗詢問是否要安裝套件。
# auto-apt run ./configure # make # make install
安裝所需套件
apt-get install libncurses5-dev kernel-package linux-source
到 /usr/src 將下載下來的 tar.bz2 檔案解壓縮,然後將 /boot/config-x.x.xx-xxx 這個設定檔複製到解開的目錄下,並更名成 .config。
make-kpkg clean
修改設定檔
make menuconfig
將核心編譯成 dpkg 檔
make-kpkg --revision xxx.xxx --config=menuconfig --initrd binary-arch
完成後將會產生兩個 deb 檔案,利用 dpkg -i 將這兩個套件安裝即可。