MSYS2 中pacman安裝所有軟件包命令:
pacman -Sl | awk '{cmd="pacman -S --needed --noconfirm "$2;system(cmd)}'
pacman
用法: pacman <操作> [...]
操作:
pacman {-h --help}
pacman {-V --version}
pacman {-D --database} <選項> <軟件包>
pacman {-F --files} [選項] [軟件包]
pacman {-Q --query} [選項] [軟件包]
pacman {-R --remove} [選項] <軟件包>
pacman {-S --sync} [選項] [軟件包]
pacman {-T --deptest} [選項] [軟件包]
pacman {-U --upgrade} [選項] <文件>
pacman -D
用法: pacman {-D --database} <選項> <軟件包>
選項:
-b, --dbpath <路徑> 指定另外的數據庫位置
-k, --check 檢查本地數據庫有效性 (-kk 以同步數據庫)
-q, --quiet 不顯示成功消息的輸出
-r, --root <路徑> 指定另外的安裝根目錄
-v, --verbose 顯示詳細信息
--arch <架構> 設定另外的架構
--asdeps 標記為非明確指定安裝的軟件包
--asexplicit 標記為明確指定安裝的軟件包
--cachedir <dir> 指定另外的軟件包緩存位置
--color <when> 彩色化輸出
--config <路徑> 指定另外的配置文件
--confirm 總是詢問確認
--debug 顯示調試信息
--disable-download-timeout
下載時用寬松的超時
--gpgdir <路徑> 設定 GnuPG 的其他主目錄
--hookdir <目錄> 指定另外的鈎子位置
--logfile <路徑> 指定另外的日志文件
--noconfirm 不詢問確認
--sysroot 在一個已掛載的 guest 系統操作(僅 root)
pacman -F
-b, --dbpath <路徑> 指定另外的數據庫位置
-l, --list 列出被查詢軟件包的內容
-o, --owns <文件> 查詢哪個軟件包擁有<文件>
-q, --quiet 在查詢或搜索時顯示較少的信息
-r, --root <路徑> 指定另外的安裝根目錄
-s, --search <文件> 搜索符合指定字符串的軟件包文件名
-v, --verbose 顯示詳細信息
-x, --regex 啟用正則表達式進行搜索
-y, --refresh 從服務器下載新的軟件包數據庫
(-yy 強制更新軟件包數據庫)
--arch <架構> 設定另外的架構
--cachedir <dir> 指定另外的軟件包緩存位置
--color <when> 彩色化輸出
--config <路徑> 指定另外的配置文件
--confirm 總是詢問確認
--debug 顯示調試信息
--disable-download-timeout
下載時用寬松的超時
--gpgdir <路徑> 設定 GnuPG 的其他主目錄
--hookdir <目錄> 指定另外的鈎子位置
--logfile <路徑> 指定另外的日志文件
--machinereadable
產生機器可讀輸出
--noconfirm 不詢問確認
--sysroot 在一個已掛載的 guest 系統操作(僅 root)
pacman -Q
用法: pacman {-Q --query} [選項] [軟件包]
選項:
-b, --dbpath <路徑> 指定另外的數據庫位置
-c, --changelog 查看某軟件包的更新日志
-d, --deps 列出所有作為依賴關系安裝的軟件包 [過濾器]
-e, --explicit 列出所有單獨指定安裝的軟件包 [過濾器]
-g, --groups 查看某軟件包組所屬的所有軟件包
-i, --info 查看軟件包信息 (-ii 查看備份文件)
-k, --check 檢查軟件包的文件存在(-kk檢查文件屬性)
-l, --list 列出被查詢軟件包的內容
-m, --foreign 列出沒有在同步數據庫時找到的已安裝軟件包 [過濾器]
-n, --native 列出只在(同步)數據庫中的已安裝軟件包 [過濾]
-o, --owns <文件> 查詢哪個軟件包擁有<文件>
-p, --file <軟件包> 從某個軟件包而不是數據庫查詢
-q, --quiet 在查詢或搜索時顯示較少的信息
-r, --root <路徑> 指定另外的安裝根目錄
-s, --search <regex> 搜尋符合指定字符串的已安裝本地的軟件包
-t, --unrequired 列出不被任何軟件包(可選)要求的軟件包(-tt 忽略可選依賴) [過濾器]
-u, --upgrades 列出所有可升級的軟件包 [過濾器]
-v, --verbose 顯示詳細信息
--arch <架構> 設定另外的架構
--cachedir <dir> 指定另外的軟件包緩存位置
--color <when> 彩色化輸出
--config <路徑> 指定另外的配置文件
--confirm 總是詢問確認
--debug 顯示調試信息
--disable-download-timeout
下載時用寬松的超時
--gpgdir <路徑> 設定 GnuPG 的其他主目錄
--hookdir <目錄> 指定另外的鈎子位置
--logfile <路徑> 指定另外的日志文件
--noconfirm 不詢問確認
--sysroot 在一個已掛載的 guest 系統操作(僅 root)
pacman -R
用法: pacman {-R --remove} [選項] <軟件包>
選項:
-b, --dbpath <路徑> 指定另外的數據庫位置
-c, --cascade 刪除軟件包及所有依賴於此的軟件包
-d, --nodeps 跳過依賴關系的版本檢查 (-dd 跳過所有檢查)
-n, --nosave 刪除配置文件
-p, --print 打印目標而不是執行操作
-r, --root <路徑> 指定另外的安裝根目錄
-s, --recursive 刪除不需要的依賴關系
(-ss 包括單獨指定安裝的依賴關系)
-u, --unneeded 刪除不需要的軟件包
-v, --verbose 顯示詳細信息
--arch <架構> 設定另外的架構
--assume-installed <package=version>
添加一個虛擬包用以滿足依賴要求
--cachedir <dir> 指定另外的軟件包緩存位置
--color <when> 彩色化輸出
--config <路徑> 指定另外的配置文件
--confirm 總是詢問確認
--dbonly 僅修改數據庫條目,而非軟件包文件
--debug 顯示調試信息
--disable-download-timeout
下載時用寬松的超時
--gpgdir <路徑> 設定 GnuPG 的其他主目錄
--hookdir <目錄> 指定另外的鈎子位置
--logfile <路徑> 指定另外的日志文件
--noconfirm 不詢問確認
--noprogressbar 下載文件時不顯示進度條
--noscriptlet 不執行安裝小腳本
--print-format <字符串>
指定如何打印目標
--sysroot 在一個已掛載的 guest 系統操作(僅 root)
pacman -S
用法: pacman {-S --sync} [選項] [軟件包]
選項:
-b, --dbpath <路徑> 指定另外的數據庫位置
-c, --clean 從緩存目錄中刪除舊軟件包 (-cc 清除所有)
-d, --nodeps 跳過依賴關系的版本檢查 (-dd 跳過所有檢查)
-g, --groups 查看某軟件包組所屬的所有軟件包
(-gg 查看所有軟件包組和所屬於它們的軟件包)
-i, --info 查看軟件包信息 (-ii 查看更多信息)
-l, --list <repo> 查看在該軟件庫中的軟件包清單
-p, --print 打印目標而不是執行操作
-q, --quiet 在查詢或搜索時顯示較少的信息
-r, --root <路徑> 指定另外的安裝根目錄
-s, --search <正則表達式> 按照指定字符串查詢遠端軟件庫
-u, --sysupgrade 升級所有已安裝的軟件包 (-uu 可啟用降級)
-v, --verbose 顯示詳細信息
-w, --downloadonly 下載但不安裝/升級軟件包
-y, --refresh 從服務器下載新的軟件包數據庫
(-yy 強制更新軟件包數據庫)
--arch <架構> 設定另外的架構
--asdeps 作為非單獨指定安裝的軟件包安裝
--asexplicit 作為單獨指定安裝的軟件包安裝
--assume-installed <package=version>
添加一個虛擬包用以滿足依賴要求
--cachedir <dir> 指定另外的軟件包緩存位置
--color <when> 彩色化輸出
--config <路徑> 指定另外的配置文件
--confirm 總是詢問確認
--dbonly 僅修改數據庫條目,而非軟件包文件
--debug 顯示調試信息
--disable-download-timeout
下載時用寬松的超時
--gpgdir <路徑> 設定 GnuPG 的其他主目錄
--hookdir <目錄> 指定另外的鈎子位置
--ignore <軟件包> 升級時忽略某個軟件包 (可多次使用)
--ignoregroup <軟件包組>
升級時忽略某個軟件包組 (可多次使用)
--logfile <路徑> 指定另外的日志文件
--needed 不重新安裝已是最新的軟件包
--noconfirm 不詢問確認
--noprogressbar 下載文件時不顯示進度條
--noscriptlet 不執行安裝小腳本
--overwrite <path>
覆蓋沖突的文件(可以使用多次)
--print-format <字符串>
指定如何打印目標
--sysroot 在一個已掛載的 guest 系統操作(僅 root)
pacman -T
用法: pacman {-T --deptest} [選項] [軟件包]
選項:
-b, --dbpath <路徑> 指定另外的數據庫位置
-r, --root <路徑> 指定另外的安裝根目錄
-v, --verbose 顯示詳細信息
--arch <架構> 設定另外的架構
--cachedir <dir> 指定另外的軟件包緩存位置
--color <when> 彩色化輸出
--config <路徑> 指定另外的配置文件
--confirm 總是詢問確認
--debug 顯示調試信息
--disable-download-timeout
下載時用寬松的超時
--gpgdir <路徑> 設定 GnuPG 的其他主目錄
--hookdir <目錄> 指定另外的鈎子位置
--logfile <路徑> 指定另外的日志文件
--noconfirm 不詢問確認
--sysroot 在一個已掛載的 guest 系統操作(僅 root)
pacman -U
用法: pacman {-U --upgrade} [選項] <文件>
選項:
-b, --dbpath <路徑> 指定另外的數據庫位置
-d, --nodeps 跳過依賴關系的版本檢查 (-dd 跳過所有檢查)
-p, --print 打印目標而不是執行操作
-r, --root <路徑> 指定另外的安裝根目錄
-v, --verbose 顯示詳細信息
--arch <架構> 設定另外的架構
--asdeps 作為非單獨指定安裝的軟件包安裝
--asexplicit 作為單獨指定安裝的軟件包安裝
--assume-installed <package=version>
添加一個虛擬包用以滿足依賴要求
--cachedir <dir> 指定另外的軟件包緩存位置
--color <when> 彩色化輸出
--config <路徑> 指定另外的配置文件
--confirm 總是詢問確認
--dbonly 僅修改數據庫條目,而非軟件包文件
--debug 顯示調試信息
--disable-download-timeout
下載時用寬松的超時
--gpgdir <路徑> 設定 GnuPG 的其他主目錄
--hookdir <目錄> 指定另外的鈎子位置
--ignore <軟件包> 升級時忽略某個軟件包 (可多次使用)
--ignoregroup <軟件包組>
升級時忽略某個軟件包組 (可多次使用)
--logfile <路徑> 指定另外的日志文件
--needed 不重新安裝已是最新的軟件包
--noconfirm 不詢問確認
--noprogressbar 下載文件時不顯示進度條
--noscriptlet 不執行安裝小腳本
--overwrite <path>
覆蓋沖突的文件(可以使用多次)
--print-format <字符串>
指定如何打印目標
--sysroot 在一個已掛載的 guest 系統操作(僅 root)
更新系統:
pacman -Syu
安裝包:
➔ pacman -S 包名
:例如,執行 pacman -S firefox 將安裝 Firefox。你也可以同時安裝多個包,
只需以空格分隔包名即可。
➔ pacman -S $(pacman -Qq | grep -v “$(pacman -Qmq)”)
重新安裝你系統中所有的軟件包(倉庫中已有的)
➔ pacman -Sy 包名
:與上面命令不同的是,該命令將在同步包數據庫后再執行安裝。
➔ pacman -Sv 包名
:在顯示一些操作信息后執行安裝。
➔ pacman -U
:安裝本地包,其擴展名為 pkg.tar.gz。
➔ pacman -U http://www.example.com/repo/example.pkg.tar.xz
安裝一個遠程包(不在 pacman 配置的源里面)
刪除包:
➔ pacman -R
包名:該命令將只刪除包,保留其全部已經安裝的依賴關系
➔ pacman -Rs
包名:在刪除包的同時,刪除其所有沒有被其他已安裝軟件包使用的依賴關系
➔ pacman -Rs $(pacman -Qtdq)
遞歸刪除孤立軟件包
➔ pacman -Rsc
包名:在刪除包的同時,刪除所有依賴這個軟件包的程序
➔ pacman -Rd
包名:在刪除包時不檢查依賴。
搜索包:
➔ pacman -Ss 關鍵字
:在倉庫中搜索含關鍵字的包。
➔ pacman -Qs 關鍵字
: 搜索已安裝的包。
➔ pacman -Qi 包名
:查看有關包的詳盡信息。
➔ pacman -Ql 包名
:列出該包的文件。
其它用法:
➔ pacman -Sw package_name
包名:只下載包,不安裝。
➔ pacman -Sc
:清理未安裝的包文件,包文件位於 /var/cache/pacman/pkg/ 目錄。
➔ pacman -Scc
:清理所有的緩存文件
獲取所有軟件包:
pacman -Sl
MSYS2 安裝所有軟件包(跳過已安裝的軟件包):
#!/bin/bash
IFS=$'\n';
for LINE in `pacman -Sg`; do
pacman -S --needed --noconfirm ${LINE}
done;
不知道為什么,這樣不行:
pacman -Sg | xargs pacman -S --need -- noconfirm
這樣好像才是對的:
pacman -Sl | awk '{cmd="pacman -S --needed --noconfirm "$2;system(cmd)}'
下載完后:
參考:
https://www.jianshu.com/p/ea651cdc5530
http://www.ha97.com/3459.html