apt管理工具

Advanced Packaging Tool

    最初只有.tar.gz的打包文件,用戶必須編譯每一個他想在GNU/Linux上運行的軟件。用戶們廣泛認爲系統頗有必要提供一種方法來管理這些安裝在機器上的軟件包,當Debian誕生時,這樣一個管理工具也就應運而生,它被命名爲dpkg。從而著名的「package」概念第一次出如今GNU/Linux系統中,稍後Red Hat才決定開發本身的「rpm」包管理系統。很快一個新的問題難倒了GNU/Linux製做者,他們須要一個快速、實用、高效的方法來安裝軟件包,當軟件包更新時,這個工具應該能自動管理關聯文件和維護已有配置文件。Debian再次率先解決了這個問題,APT(Advanced Packaging Tool)做爲dpkg的前端誕生了。APT後來還被Conectiva改造用來管理rpm,並被其它Linux發行版本採用爲它們的軟件包管理工具。APT由幾個名字以「apt-」打頭的程序組成。apt-get、apt-cache 和apt-cdrom是處理軟件包的命令行工具。Linux命令—apt,也是其它用戶前臺程序的後端,如dselect 和aptitude。做爲操做的一部分,APT使用一個文件列出可得到軟件包的鏡像站點地址,這個文件就是/etc/apt/sources.list。

工做原理

APT是一個客戶/服務器系統。在服務器上先複製全部DEB包(DEB是Debian軟件包格式的文件擴展名),而後用APT的分析工具(genbasedir)根據每一個DEB 包的包頭(Header)信息對全部的DEB包進行分析,並將該分析結果記錄在一個文件中,這個文件稱爲DEB 索引清單,APT服務器的DEB索引清單置於base文件夾內。一旦APT 服務器內的DEB有所變更,必定要使用genbasedir產生新的DEB索引清單。客戶端在進行安裝或升級時先要查詢DEB索引清單,從而能夠獲知全部具備依賴關係的軟件包,並一同下載到客戶端以便安裝。當客戶端須要安裝、升級或刪除某個軟件包時,客戶端計算機取得DEB索引清單壓縮文件後,會將其解壓置放於/var/state/apt/lists/,而客戶端使用apt-get install或apt-get upgrade命令的時候,就會將這個文件夾內的數據和客戶端計算機內的DEB數據庫比對,知道哪些DEB已安裝、未安裝或是能夠升級的。

apt鏡像源

下面以Kali Linux在國內的aliyun的鏡像爲例
網絡鏡像

    deb http://mirrors.aliyun.com/kali kali main non-free contrib

    deb-src http://mirrors.aliyun.com/kali kali main non-free contrib

    deb http://mirrors.aliyun.com/kali-security kali/updates main non-free contrib

本地光盤鏡像源
    光盤鏡像掛載到/media/kali目錄

    編輯sources.list文件,添加下面一行,把全部其餘的源註釋掉,只使用光盤作鏡像源

    deb file:/media/kali kali main non-free contrib

而後使用apt-get update 命令更新緩存
    
    #apt-get update

經常使用命令
sudo apt-cache search # ——(package 搜索包)

sudo apt-cache show #——(package 獲取包的相關信息,如說明、大小、版本等)

sudo apt-get install # ——(package 安裝包)

sudo apt-get reinstall # —–(package - - reinstall 從新安裝包)

sudo apt-get -f install # —–(強制安裝?#」-f = –fix-missing」當是修復安裝吧…)

sudo apt-get remove #—–(package 刪除包)

sudo apt-get remove --purge # ——(package 刪除包,包括刪除配置文件等)

sudo apt-get autoremove --purge # —-(package 刪除包及其依賴的軟件包配置文件等)

sudo apt-get update #——更新源

sudo apt-get upgrade #——更新已安裝的包

sudo apt-get dist-upgrade # ———升級系統

sudo apt-get dselect-upgrade #——使用 dselect 升級

sudo apt-cache depends #——-(package 瞭解使用依賴)

sudo apt-cache rdepends # ——(package 瞭解某個具體的依賴?#當是查看該包被哪些包依賴吧…)
sudo apt-get build-dep # ——(package 安裝相關的編譯環境)

sudo apt-get source #——(package 下載該包的源代碼)

sudo apt-get clean && sudo apt-get autoclean # ——–清理下載文件的存檔 && 只清理過期的包

sudo apt-get check #——-檢查是否有損壞的依賴

sudo apt-get install# ——(下載 以及全部依賴的包裹,同時進行包裹的安裝或升級。若是某個包裹被設置了 hold (中止標誌,就會被擱在一邊(即不會被升級)。更多 hold 細節請看下面。)

sudo apt-get remove [--purge]# ——(移除 以及任何倚賴這個包裹的其它包裹。) --purge 指明這個包裹應該被徹底清除 (purged) ,更多信息請看 dpkg -P。

apt-get update# ——(升級來自 Debian 鏡像的包裹列表,若是你想安裝當天的任何軟件,至少天天運行一次,並且每次修改了/etc/apt/sources.list 後,必須執行。)

apt-get upgrade [-u]# ——(升級全部已經安裝的包裹爲最新可用版本。不會安裝新的或移除老的包裹。形前端(其中一些在使用前得先安裝)。這裏 dselect 無疑是最強大的,也是最古老,最難駕馭。)前端

相關文章
相關標籤/搜索