用pacman很久了,一直沒有深入去研究到底它包含多少神秘的力量,每次都是pacman -Syu就簡單的把所有升級更新問題搞定實在是讓筆者懶惰了很多。不過也正是因為pacman的簡單讓筆者愛不釋手,同時Archlinux的強大靈活也讓其成為筆者最為心儀的Linux,不過筆者對Archlinux的最終評價就是-Archlinux是一款為折騰而誕生的Linux(至少對筆者來說是這樣的)。想要折騰,就用Archlinux吧。今天給大家帶來的是Archlinux下最關鍵,也是靈魂的工具pacman命令介紹(這個工具與debian,ubuntu下的apt-get十分類似),不過命令稍微復雜一些,轉過來當做給自己作參考了。
一、首先說說啥是pacman吧:
Pacman 是一個 軟件包管理器, 作為 ArchLinux發行版的一部分. 它最早由 Arch Linux 的 Judd Vinet開發. Pacman 可以解決安裝過程中的依賴問題,自動下載並且安裝所有需要的軟件包。Pacman包管理器是Arch Linux的一大亮點。它將一個簡單的二進制包格式和易用的構建系統結合了起來。Pacman使得簡單的管理與自定義軟件包成為了可能,而不論他們來自於官方的Arch軟件庫或是用戶自己創建的。
二、pacman參數詳細說明
1. [arch@ghostbb ~]$ pacman -h 2. 用法: pacman <操作> [...] 3. 操作: 4. pacman {-h --help} //幫助 5. pacman {-V --version} //查看版本 6. pacman {-D --data base} <選項> <軟件包> //pacman管理數據庫選項 7. pacman {-Q --query} [選項] [軟件包] //查詢安裝包 8. pacman {-R --remove} [選項] <軟件包> //刪除安裝包 9. pacman {-S --sync} [選項] [軟件包] //安裝安裝包 10. pacman {-U --upgrade} [選項] <文件> //更新安裝包 11. 12. 使用 'pacman {-h --help}' 及某個操作以查看可得的選項
[arch@ghostbb ~]$ pacman -h
用法: pacman <操作> [...]
操作:
pacman {-h –help} //幫助
pacman {-V –version} //查看版本
pacman {-D –database} <選項> <軟件包> //pacman管理數據庫選項
pacman {-Q –query} [選項] [軟件包] //查詢安裝包
pacman {-R –remove} [選項] <軟件包> //刪除安裝包
pacman {-S –sync} [選項] [軟件包] //安裝安裝包
pacman {-U –upgrade} [選項] <文件> //更新安裝包
使用 ‘pacman {-h –help}’ 及某個操作以查看可得的選項
1,pacman -D
1. [arch@ghostbb ~]$ pacman -D --help 2. 用法: pacman {-D --database} <選項> <軟件包> 3. 選項: 4. --asdeps 標記為非單獨指定安裝的軟件包 5. --asexplicit 標記為單獨指定安裝的軟件包 6. --config <路徑> 指定另外的配置文件 7. --logfile <路徑> 指定另外的日志文件 8. --noconfirm 不詢問確認 9. --noprogressbar 下載文件時不顯示進度條 10. --noscriptlet 不執行安裝小腳本 11. -v, --verbose 循環執行 12. -- debug 顯示除錯信息 13. -r, --root <路徑> 指定另外的安裝根目錄 14. -b, --dbpath <路徑> 指定另外的數據庫位置 15. --cachedir <目錄> 指定另外的軟件包緩存位置 16. --arch <架構> 設定另外的架構
[arch@ghostbb ~]$ pacman -D –help
用法: pacman {-D –database} <選項> <軟件包>
選項:
–asdeps 標記為非單獨指定安裝的軟件包
–asexplicit 標記為單獨指定安裝的軟件包
–config <路徑> 指定另外的配置文件
–logfile <路徑> 指定另外的日志文件
–noconfirm 不詢問確認
–noprogressbar 下載文件時不顯示進度條
–noscriptlet 不執行安裝小腳本
-v, –verbose 循環執行
— debug 顯示除錯信息
-r, –root <路徑> 指定另外的安裝根目錄
-b, –dbpath <路徑> 指定另外的數據庫位置
–cachedir <目錄> 指定另外的軟件包緩存位置
–arch <架構> 設定另外的架構
2,pacman -Q
1. [arch@ghostbb ~]$ pacman -Q --help 2. 用法: pacman {-Q --query} [選項] [軟件包] 3. 選項: 4. -c, --changelog 查看某軟件包的更新日志 5. -d, --deps 列出所有作為依賴關系安裝的軟件包 [過濾器] 6. -e, --explicit 列出所有單獨指定安裝的軟件包 [過濾器] 7. -g, --groups 查看某軟件包組所屬的所有軟件包 8. -i, --info 查看軟件包信息 (-ii 查看備份文件) 9. -k, --check 檢查該軟件包擁有的文件是否存在 10. -l, --list 列出被查詢軟件包的內容 11. -m, --foreign 列出沒有在同步數據庫時找到的已安裝軟件包 [過濾器] 12. -o, --owns <文件> 查詢哪個軟件包擁有 <文件> 13. -p, --file <軟件包> 從某個軟件包而不是數據庫查詢 14. -s, --search <regex> 搜尋符合指定字符串的已安裝本地的軟件包 15. -t, --unrequired 列出所有不被其他軟件包要求的軟件包 [過濾器] 16. -u, --upgrades 列出所有可升級的軟件包 [過濾器] 17. -q, --quiet 在查詢或搜索時顯示較少的信息 18. --config <路徑> 指定另外的配置文件 19. --logfile <路徑> 指定另外的日志文件 20. --noconfirm 不詢問確認 21. --noprogressbar 下載文件時不顯示進度條 22. --noscriptlet 不執行安裝小腳本 23. -v, --verbose 循環執行 24. -- debug 顯示除錯信息 25. -r, --root <路徑> 指定另外的安裝根目錄 26. -b, --dbpath <路徑> 指定另外的數據庫位置 27. --cachedir <目錄> 指定另外的軟件包緩存位置 28. --arch <架構> 設定另外的架構 </regex>
[arch@ghostbb ~]$ pacman -Q –help
用法: pacman {-Q –query} [選項] [軟件包]
選項:
-c, –changelog 查看某軟件包的更新日志
-d, –deps 列出所有作為依賴關系安裝的軟件包 [過濾器]
-e, –explicit 列出所有單獨指定安裝的軟件包 [過濾器]
-g, –groups 查看某軟件包組所屬的所有軟件包
-i, –info 查看軟件包信息 (-ii 查看備份文件)
-k, –check 檢查該軟件包擁有的文件是否存在
-l, –list 列出被查詢軟件包的內容
-m, –foreign 列出沒有在同步數據庫時找到的已安裝軟件包 [過濾器]
-o, –owns <文件> 查詢哪個軟件包擁有 <文件>
-p, –file <軟件包> 從某個軟件包而不是數據庫查詢
-s, –search 搜尋符合指定字符串的已安裝本地的軟件包
-t, –unrequired 列出所有不被其他軟件包要求的軟件包 [過濾器]
-u, –upgrades 列出所有可升級的軟件包 [過濾器]
-q, –quiet 在查詢或搜索時顯示較少的信息
–config <路徑> 指定另外的配置文件
–logfile <路徑> 指定另外的日志文件
–noconfirm 不詢問確認
–noprogressbar 下載文件時不顯示進度條
–noscriptlet 不執行安裝小腳本
-v, –verbose 循環執行
— debug 顯示除錯信息
-r, –root <路徑> 指定另外的安裝根目錄
-b, –dbpath <路徑> 指定另外的數據庫位置
–cachedir <目錄> 指定另外的軟件包緩存位置
–arch <架構> 設定另外的架構
3,pacman -R
1. [arch@ghostbb ~]$ pacman -R --help 2. 用法: pacman {-R --remove} [選項] <軟件包> 3. 選項: 4. -c, --cascade 刪除軟件包及所有的依賴於此的軟件包 5. -d, --nodeps 略過依賴關系檢查 6. -k, --dbonly 只刪除數據庫記錄,不刪除文件 7. -n, --nosave 同時刪除配置文件 8. -s, --recursive 同時刪除 (不會破壞其他軟件包的) 依賴關系(-ss·也包括單獨指定安裝的依賴關系) 9. -u, --unneeded 同時刪除不需要的 (且不會破壞其他軟件包的) 依賴關系 10. --print 僅打印目標而不執行操作 11. --print-format <字符串>指定如何打印目標 12. --config <路徑> 指定另外的配置文件 13. --logfile <路徑> 指定另外的日志文件 14. --noconfirm 不詢問確認 15. --noprogressbar 下載文件時不顯示進度條 16. --noscriptlet 不執行安裝小腳本 17. -v, --verbose 循環執行 18. -- debug 顯示除錯信息 19. -r, --root <路徑> 指定另外的安裝根目錄 20. -b, --dbpath <路徑> 指定另外的數據庫位置 21. --cachedir <目錄> 指定另外的軟件包緩存位置 22. --arch <架構> 設定另外的架構
[arch@ghostbb ~]$ pacman -R –help
用法: pacman {-R –remove} [選項] <軟件包>
選項:
-c, –cascade 刪除軟件包及所有的依賴於此的軟件包
-d, –nodeps 略過依賴關系檢查
-k, –dbonly 只刪除數據庫記錄,不刪除文件
-n, –nosave 同時刪除配置文件
-s, –recursive 同時刪除 (不會破壞其他軟件包的) 依賴關系(-ss·也包括單獨指定安裝的依賴關系)
-u, –unneeded 同時刪除不需要的 (且不會破壞其他軟件包的) 依賴關系
–print 僅打印目標而不執行操作
–print-format <字符串>指定如何打印目標
–config <路徑> 指定另外的配置文件
–logfile <路徑> 指定另外的日志文件
–noconfirm 不詢問確認
–noprogressbar 下載文件時不顯示進度條
–noscriptlet 不執行安裝小腳本
-v, –verbose 循環執行
— debug 顯示除錯信息
-r, –root <路徑> 指定另外的安裝根目錄
-b, –dbpath <路徑> 指定另外的數據庫位置
–cachedir <目錄> 指定另外的軟件包緩存位置
–arch <架構> 設定另外的架構
4,pacman -S
1. [arch@ghostbb ~]$ pacman -S --help 2. 用法: pacman {-S --sync} [選項] [軟件包] 3. 選項: 4. --asdeps 作為非單獨指定安裝的軟件包安裝 5. --asexplicit 作為單獨指定安裝的軟件包安裝 6. -c, --clean 從緩存目錄中刪除舊軟件包 (-cc 清除所有) 7. -d, --nodeps 略過依賴關系檢查 8. -f, -force 強制安裝,覆蓋存在沖突的文件 9. -g, --groups 查看某軟件包組所屬的所有軟件包 10. -i, --info 查看軟件包信息 11. -l, --list <軟件庫> 查看在該軟件庫中的軟件包清單 12. -s, --search <regex表達式> 按照指定字符串查詢遠端軟件庫 13. -u, --sysupgrade 升級所有已安裝的軟件包 (-uu 可啟用降級) 14. -w, --downloadonly 下載但不安裝/升級軟件包 15. -y, --refresh 從服務器下載新的軟件包數據庫 16. --needed 不重新安裝已經為最新的軟件包 17. --ignore <軟件包> 升級時忽略某個軟件包 (可多次使用) 18. --ignoregroup <軟件包組>升級時忽略某個軟件包組 (可多次使用) 19. --print 僅打印目標而不執行操作 20. --print-format <字符串>指定如何打印目標 21. -q, --quiet 在查詢或搜索時顯示較少的信息 22. --config <路徑> 指定另外的配置文件 23. --logfile <路徑> 指定另外的日志文件 24. --noconfirm 不詢問確認 25. --noprogressbar 下載文件時不顯示進度條 26. --noscriptlet 不執行安裝小腳本 27. -v, --verbose 循環執行 28. -- debug 顯示除錯信息 29. -r, --root <路徑> 指定另外的安裝根目錄 30. -b, --dbpath <路徑> 指定另外的數據庫位置 31. --cachedir <目錄> 指定另外的軟件包緩存位置 32. --arch <架構> 設定另外的架構 </regex表達式>
[arch@ghostbb ~]$ pacman -S –help
用法: pacman {-S –sync} [選項] [軟件包]
選項:
–asdeps 作為非單獨指定安裝的軟件包安裝
–asexplicit 作為單獨指定安裝的軟件包安裝
-c, –clean 從緩存目錄中刪除舊軟件包 (-cc 清除所有)
-d, –nodeps 略過依賴關系檢查
-f, -force 強制安裝,覆蓋存在沖突的文件
-g, –groups 查看某軟件包組所屬的所有軟件包
-i, –info 查看軟件包信息
-l, –list <軟件庫> 查看在該軟件庫中的軟件包清單
-s, –search 按照指定字符串查詢遠端軟件庫
-u, –sysupgrade 升級所有已安裝的軟件包 (-uu 可啟用降級)
-w, –downloadonly 下載但不安裝/升級軟件包
-y, –refresh 從服務器下載新的軟件包數據庫
–needed 不重新安裝已經為最新的軟件包
–ignore <軟件包> 升級時忽略某個軟件包 (可多次使用)
–ignoregroup <軟件包組>升級時忽略某個軟件包組 (可多次使用)
–print 僅打印目標而不執行操作
–print-format <字符串>指定如何打印目標
-q, –quiet 在查詢或搜索時顯示較少的信息
–config <路徑> 指定另外的配置文件
–logfile <路徑> 指定另外的日志文件
–noconfirm 不詢問確認
–noprogressbar 下載文件時不顯示進度條
–noscriptlet 不執行安裝小腳本
-v, –verbose 循環執行
— debug 顯示除錯信息
-r, –root <路徑> 指定另外的安裝根目錄
-b, –dbpath <路徑> 指定另外的數據庫位置
–cachedir <目錄> 指定另外的軟件包緩存位置
–arch <架構> 設定另外的架構
5,pacman -U
1. [arch@ghostbb ~]$ pacman -U --help 2. 用法: pacman {-U --upgrade} [選項] <文件> 3. 選項: 4. --asdeps 作為非單獨指定安裝的軟件包安裝 5. --asexplicit 作為單獨指定安裝的軟件包安裝 6. -d, --nodeps 略過依賴關系檢查 7. -f, -force 強制安裝,覆蓋存在沖突的文件 8. -k, --dbonly 添加數據庫記錄,不安裝或保持現存文件 9. --print 僅打印目標而不執行操作 10. --print-format <字符串> 指定如何打印目標 11. --config <路徑> 指定另外的配置文件 12. --logfile <路徑> 指定另外的日志文件 13. --noconfirm 不詢問確認 14. --noprogressbar 下載文件時不顯示進度條 15. --noscriptlet 不執行安裝小腳本 16. -v, --verbose 循環執行 17. -- debug 顯示除錯信息 18. -r, --root <路徑> 指定另外的安裝根目錄 19. -b, --dbpath <路徑> 指定另外的數據庫位置 20. --cachedir <目錄> 指定另外的軟件包緩存位置 21. --arch <架構> 設定另外的架構
[arch@ghostbb ~]$ pacman -U –help
用法: pacman {-U –upgrade} [選項] <文件>
選項:
–asdeps 作為非單獨指定安裝的軟件包安裝
–asexplicit 作為單獨指定安裝的軟件包安裝
-d, –nodeps 略過依賴關系檢查
-f, -force 強制安裝,覆蓋存在沖突的文件
-k, –dbonly 添加數據庫記錄,不安裝或保持現存文件
–print 僅打印目標而不執行操作
–print-format <字符串> 指定如何打印目標
–config <路徑> 指定另外的配置文件
–logfile <路徑> 指定另外的日志文件
–noconfirm 不詢問確認
–noprogressbar 下載文件時不顯示進度條
–noscriptlet 不執行安裝小腳本
-v, –verbose 循環執行
— debug 顯示除錯信息
-r, –root <路徑> 指定另外的安裝根目錄
-b, –dbpath <路徑> 指定另外的數據庫位置
–cachedir <目錄> 指定另外的軟件包緩存位置
–arch <架構> 設定另外的架構
三,一些常規用法
1,安裝包
安裝或者升級單個軟件包,或者一列軟件包(包含依賴包),使用如下命令:
pacman -S mysql
有時候在不同的軟件倉庫中,一個軟件包有多個版本(比如extra和community)。你可以選擇一個來安裝:
pacman -S extra/mysql
pacman -S community/mysql
你也可以在一個命令里同步包數據庫並且安裝一個軟件包:
pacman -Sy mysql
2,刪除包
刪除單個軟件包,保留其全部已經安裝的依賴關系
pacman -R mysql
刪除指定軟件包,及其所有沒有被其他已安裝軟件包使用的依賴關系:
pacman -Rs mysql
3,升級系統
pacman -Syu
安裝一個本地包:
pacman -U 后面根上已下載的包或者是遠程URL
當我們用pacman進行升級時,經常會遇到下載的包沒有,到源里看時,要升級的包是有的,但是版本不一樣,你要下的版本是沒有,這種情況下,就可以用pacman -u
4,查詢包
查詢可用安裝包
pacman -Ss mysql
要查詢已安裝的軟件包:
pacman -Qs mysql
5,其他用法
清理當前未被安裝軟件包的緩存(/var/cache/pacman/pkg):
pacman -Sc
下載包而不安裝它:
pacman -Sw mysql
來源:http://xiexiejiao.cn/linux/pacman-introduce.html