linux 包管理器相關知識

2021-10-02 03:44:07 字數 2734 閱讀 7695

起初gnu/linux系統中只有.tar.gz。使用者 必須自己編譯他們想使用的每乙個程式。在debian出現後,人們認為有必要在系統 中新增一種機 制用來管理 安裝在計算機上的軟體包。人們將這套系統稱為 dpkg。至此著名的package首次在gnu/linux上出現。不久之後紅帽子也開始著手建立自己的包管理系統 rpm。

gnu/linux的創造者們很快又陷入了新的窘境。他們希望通過一種快捷、實用而且高效的方式來安裝軟體包。這些軟體包可以自動處理相互之間 的依賴關係,並且在公升級過程中維護他們的配置檔案 。debian又一次充當了開路先鋒的角色。它首創了apt(advanced packaging tool)。這一工具後來被conectiva 移植到紅帽子系統中用於對rpm包的管理。在其他一些發行版中我們也能看到它的身影。

apt是乙個很完整和先進的軟體包管理程式,使用它可以讓你又簡單,又準確的找到你要的的軟體包, 並且安裝或解除安裝都很簡潔。 它還可以讓你的所有軟體都更新到最新狀態,而且也可以用來對 debian/ubuntu 進行公升級。apt是需要用命令來操作的軟體,不過現在也出現了很多有圖形的軟體,比如 synaptic, kynaptic 和 adept。

命令樣例

下面將要介紹的命令大部分需要sudo,使用時請將「packagename」和「string」替換成您想要安裝或者查詢的程式。

apt-file search filename | grep -w filename

只顯示指定字串作為完整的單詞出現在其中的那些檔名,類似方法還有 ,

apt-file search filename | grep /bin/

只顯示位於諸如/bin或/usr/bin這些帶有/bin欄位的資料夾中的檔案,如果您要查詢的是某個特定的執行檔案的話,這樣做是有幫助的。

典型應用

我是個賽車發燒友,想裝個賽車類遊戲玩玩。有哪些賽車類遊戲可供選擇呢?

apt-cache search racing game

出來了一大堆結果。看看有沒有更多關於torcs這個遊戲的資訊。

apt-cache show torcs

看上去不錯。這個遊戲是不是已經安裝了?最新版本是多少?它屬於哪一類軟體,universe還是main?

apt-cache policy torcs

好吧,現在我要來安裝它!

apt-get install torcs

在控制台下我應該呼叫什麼命令來執行這個遊戲呢?在這個例子中,直接用torcs就行了,但並不是每次都這麼簡單。我們可一通過查詢哪些檔案被安 裝到了 「/usr/bin」資料夾下來確定二進位制檔名。對於遊戲軟體,這些二進位制檔案將被安裝到「/usr/games」下面。對於系統管理工具相應的資料夾是「/usr/sbin」。

dpkg -l torcs|grep /usr/games/

這個命令的前面一部分顯示軟體包「torcs」安裝的所有檔案(您自己試試看)。通過命令的第二部分,我們告訴系統只顯示前一部分的輸出結果中含有「/usr/games」的那些行。

這個遊戲很酷哦。說不定還有其他賽道可玩的?

apt-cache search torcs

我的磁碟空間不夠用了。我得把apt的快取空間清空才行。

apt-get clean

哦不,老媽叫我把機器上的所有遊戲都刪掉。但是我想把配置檔案保留下來,這樣待會我只要重灌一下就可以繼續玩了。

apt-get remove torcs

如果我想連配置檔案一塊刪除:

apt-get remove –purge torcs

額外的軟體包

deborphan和debfoster工具可以找出已經安裝在系統上的不會被用到的軟體包。

提高命令列方式下的工作效率

您可以通過定義別名(alias)來提高這些命令的輸入速度。例如,您可以在您的*~/.bashrc*檔案中新增下列內容

alias acs=『apt-cache search』

alias agu=『sudo apt-get update』

alias agg=『sudo apt-get upgrade』

alias agd=『sudo apt-get dist-upgrade』

alias agi=『sudo apt-get install』

alias agr=『sudo apt-get remove』

或者使用前面介紹的aptitude命令,如,

alias agi=『sudo aptitude install』

aptitude 與 apt-get 一樣,是 debian 及其衍生系統中功能極其強大的包管理工具。與 apt-get 不同的是,aptitude 在處理依賴問題上更佳一些。舉例來說,aptitude 在刪除乙個包時,會同時刪除本身所依賴的包。這樣,系統中不會殘留無用的包,整個系統更為乾淨。以下是作者總結的一些常用 aptitude 命令,僅供參考,

aptitude 解決得更好的地方: install, remove, reinstall(apt-get無此功能), show(apt-get無此功能), search(apt-get無此功能), hold(apt-get無此功能), unhold(apt-get無此功能),

apt-get 解決得更好的地方: source(aptitude無此功能), build-dep (低版本的aptitude沒有build-dep功能)。

apt-get 跟 aptitude 沒什麼區別的地方:update, upgrade (apt-get upgrade == aptitude safe-upgrade, apt-get dist-upgrade == aptitude full-upgrgade)。

Linux包管理器

使用 linux 系統總是免不了要接觸包管理工具。比如,debian ubuntu 的 apt opensuse 的 zypp fedora 的 yum mandriva 的 urpmi slackware 的 slackpkg archlinux 的 pacman gentoo 的 emerge ...

Python 包管理器

剛開始學習python時,在看文件和別人的blog介紹安裝包有的用easy install,setuptools,有的使用pip,distribute,那麼這幾個工具有什麼關係呢,看一下下面這個圖就明白了 可以看到distribute是setuptools的取代,pip是easy install的取...

python pip包管理器

pip為包管理器,跟linux上眾多的包管理器的功能大致相同,就是對包進行管理,使得包的安裝,更新和解除安裝更容易。pip更新到最新版 windows python m pip install u piplinux或mac pip install u pippip包的安裝 pip install p...