Pacman
pacman 是archlinux 下的包管理軟件。它將一個簡單的二進制包格式和易用的構(gòu)建系統(tǒng)結(jié)合了起來。不管軟件包是來自官方的 Arch 庫還是用戶自己創(chuàng)建,Pacman 都能方便得管理。
pacman -Sy abc #和源同步后安裝名為abc的包
pacman -S abc #從本地數(shù)據(jù)庫中得到abc的信息,下載安裝abc包
pacman -Sf abc #強制安裝包abc?
pacman -Ss abc #搜索有關(guān)abc信息的包?
pacman -Si abc #從數(shù)據(jù)庫中搜索包abc的信息?
pacman -Qi abc #列出已安裝的包abc的詳細信息?
pacman -Syu #同步源,并更新系統(tǒng)?
pacman -Sy #僅同步源?
pacman -Su #更新系統(tǒng)
pacman -R abc #刪除abc包?
pacman -Rc abc #刪除abc包和依賴abc的包?
pacman -Rsc abc #刪除abc包和abc依賴的包?
pacman -Sc #清理/var/cache/pacman/pkg目錄下的舊包?
pacman -Scc #清除所有下載的包和數(shù)據(jù)庫?
pacman -U abc #安裝下載的abs包,或新編譯的abc包
pacman -Sd abc #忽略依賴性問題,安裝包abc?
pacman pacman -Su --ignore foo #升級時不升級包foo?
pacman -Sg abc #查詢abc這個包組包含的軟件包
安裝和刪除包
安裝和升級軟件包前,先讓本地的包數(shù)據(jù)庫和遠程的軟件倉庫同步是個好習慣。
pacman -Syu
或者
pacman --sync --refresh
安裝或者升級單個軟件包,或者一列軟件包(包含依賴包),使用如下命令:
pacman -S package_name1 package_name2
有時候在不同的軟件倉庫中,一個軟件包有多個版本(比如extra和testing)。你可以選擇一個來安裝:
pacman -S extra/package_name
pacman -S testing/package_name
你也可以在一個命令里同步包數(shù)據(jù)庫并且安裝一個軟件包:
pacman -Sy package_name
刪除單個軟件包,保留其全部已經(jīng)安裝的依賴關(guān)系
pacman -R package_name
刪除指定軟件包,及其所有沒有被其他已安裝軟件包使用的依賴關(guān)系:
pacman -Rs package_name
升級系統(tǒng)
Pacman能夠只用一個指令來升級系統(tǒng)中所有已安裝的包。升級的時間取決于你的系統(tǒng)有多新。
pacman -Su
當然,最好做法的是將升級系統(tǒng)和同步倉庫數(shù)據(jù)合成為一條指令:
pacman -Syu
查詢包數(shù)據(jù)庫
Pacman 可以用 -Q 標志搜索和查詢本地包數(shù)據(jù)庫。見
pacman -Q --help
或者更詳細的 pacman(8) manpage。同步數(shù)據(jù)庫可以用 -S 標志搜索和查詢。或者見剛提及的 manpage 或者
pacman -S --help
查看詳情。
其它用法
Pacman是個非常廣泛的包管理工具,這里只是它的一些其它主要特性。
下載包而不安裝它:
pacman -Sw package_name
安裝一個本地包(不從源里):
pacman -U /path/to/package/package_name-version.pkg.tar.gz
完全清理包緩存(/var/cache/pacman/pkg):
pacman -Scc
重安裝包(那些因為依賴關(guān)系問題而無法先刪除的包):
pacman -Sf package_name
要了解更詳細的參數(shù)開關(guān)可以pacman --help或者man pacman。
Archlinux打包安裝方法
Arch的打包系統(tǒng)和別的Linux發(fā)行版不一樣,用ABS系統(tǒng)(Arch Build System)把源代碼打包成.pkg.tar.gz / .pkg.tar.xz 才能安裝。
首先下載abs(Arch Build System),修改/etc/abs.conf文件,要去掉mirror list里沒有的包,一般只有core, community, and extra。然后運行abs(若出錯先執(zhí)行abs core然后執(zhí)行abs)。
# pacman -S abs
# vim /etc/abs.conf
# abs
運行后會自動把腳本文件下載到/var/abs中。
接下來創(chuàng)建一個用于編譯包的目錄,之所以不在/var下是防止覆蓋原腳本。
創(chuàng)建PKGBUILD文件,也可復(fù)制PKGBUILD模板(位于/usr/share/pacman/PKGBUILD.proto)到工作目錄或復(fù)制一個類似包的PKGBUILD。
復(fù)制要編譯的腳本到創(chuàng)建的目錄中,修改編譯腳本。然后在該目錄下運行:
$ makepkg -s
makepkg工具會尋找PKGBUILD文件,根據(jù)該文件編譯并生成一個*.pkg.tar.gz的文件包,Archlinux采用pacman管理安裝包。最后用pacman安裝編譯生成的包。
# pacman -U *.pkg.tar.gz
這樣就成功安裝自己編譯的文件了。要了解具體的編譯過程,可以看下makepkg和make的工作原理。
References.
?
總結(jié)
- 上一篇: Linux网络编程 - 在服务器端运用进
- 下一篇: STL CSB 11.10