pacman包管理器是Arch Linux和其他主要發行版如 Red Hat 和 Ubuntu/Debian 之間的主要區別之一。它結合了簡單的二進制包格式和易于使用的構建系統。pacman
的目標是方便地管理軟件包,無論它是來自官方庫還是用戶自己構建的軟件庫。
如果你曾經使用過 Ubuntu 或基于 debian 的發行版,那么你可能使用過apt-get
或apt
命令。pacman
在 Arch Linux 中是同樣的命令。如果你剛剛安裝了 Arch Linux,在安裝 Arch Linux 后,首先要做的幾件事之一就是學習使用pacman
命令。
在這個初學者指南中,我將解釋一些基本的pacman
命令的用法,你應該知道如何用這些命令來管理你的基于 Archlinux 的系統。
與其他包管理器一樣,pacman
可以將包列表與軟件庫同步,它能夠自動解決所有所需的依賴項,以使得用戶可以通過一個簡單的命令下載和安裝軟件。
你可以用以下形式的代碼來安裝一個或者多個軟件包:
pacman-S軟件包名1軟件包名2...
安裝一個包
-S
選項的意思是同步,它的意思是pacman
在安裝之前先與軟件庫進行同步。
pacman
數據庫根據安裝的原因將安裝的包分為兩組:
顯式安裝:由pacman -S
或-U
命令直接安裝的包
依賴安裝:由于被其他顯式安裝的包所依賴,而被自動安裝的包。
卸載一個包,并且刪除它的所有依賴。
pacman-R軟件包名
移除一個包
刪除一個包,以及其不被其他包所需要的依賴項:
pacman-Rs軟件包名
如果需要這個依賴的包已經被刪除了,這條命令可以刪除所有不再需要的依賴項:
pacman-Qdtq|pacman-Rs-
pacman
提供了一個簡單的辦法來升級 Arch Linux。你只需要一條命令就可以升級所有已安裝的軟件包。這可能需要一段時間,這取決于系統的新舊程度。
以下命令可以同步存儲庫數據庫,并且更新系統的所有軟件包,但不包括不在軟件庫中的“本地安裝的”包:
pacman-Syu
S
代表同步
y
代表更新本地存儲庫
u
代表系統更新
也就是說,同步到中央軟件庫(主程序包數據庫),刷新主程序包數據庫的本地副本,然后執行系統更新(通過更新所有有更新版本可用的程序包)。
系統更新
注意!
對于 Arch Linux 用戶,在系統升級前,建議你訪問Arch-Linux 主頁查看最新消息,以了解異常更新的情況。如果系統更新需要人工干預,主頁上將發布相關的新聞。你也可以訂閱RSS 源或Arch 的聲明郵件。
在升級基礎軟件(如 kernel、xorg、systemd 或 glibc) 之前,請注意查看相應的論壇,以了解大家報告的各種問題。
在 Arch 和 Manjaro 等滾動發行版中不支持部分升級。這意味著,當新的庫版本被推送到軟件庫時,軟件庫中的所有包都需要根據庫版本進行升級。例如,如果兩個包依賴于同一個庫,則僅升級一個包可能會破壞依賴于該庫的舊版本的另一個包。
pacman
使用-Q
選項查詢本地包數據庫,使用-S
選項查詢同步數據庫,使用-F
選項查詢文件數據庫。
pacman
可以在數據庫中搜索包,包括包的名稱和描述:
pacman-Ss字符串1字符串2...
查找一個包
查找已經被安裝的包:
pacman-Qs字符串1字符串2...
根據文件名在遠程軟包中查找它所屬的包:
pacman-F字符串1字符串2...
查看一個包的依賴樹:
pactree軟件包名
pacman
將其下載的包存儲在/var/cache/Pacman/pkg/
中,并且不會自動刪除舊版本或卸載的版本。這有一些優點:
鴻蒙官方戰略合作共建——HarmonyOS技術社區
它允許降級一個包,而不需要通過其他來源檢索以前的版本。
已卸載的軟件包可以輕松地直接從緩存文件夾重新安裝。
但是,有必要定期清理緩存以防止文件夾增大。
pacman contrib包中提供的paccache(8)腳本默認情況下會刪除已安裝和未安裝包的所有緩存版本,但最近 3 個版本除外:
paccache-r
清除緩存
要刪除當前未安裝的所有緩存包和未使用的同步數據庫,請執行:
pacman-Sc
要從緩存中刪除所有文件,請使用清除選項兩次,這是最激進的方法,不會在緩存文件夾中留下任何內容:
pacman-Scc
安裝不是來自遠程存儲庫的“本地”包:
pacman-U本地軟件包路徑.pkg.tar.xz
安裝官方存儲庫中未包含的“遠程”軟件包:
pacman-Uhttp://www.example.com/repo/example.pkg.tar.xz
下面是使用pacman
管理包時可能遇到的一些常見錯誤。
如果你看到以下報錯:
error:couldnotpreparetransactionerror:failedtocommittransaction(conflictingfiles)package:/path/to/fileexistsinfilesystemErrorsoccurred,nopackageswereupgraded.
這是因為pacman
檢測到文件沖突,不會為你覆蓋文件。
解決這個問題的一個安全方法是首先檢查另一個包是否擁有這個文件(pacman-Qo 文件路徑
)。如果該文件屬于另一個包,請提交錯誤報告。如果文件不屬于另一個包,請重命名“存在于文件系統中”的文件,然后重新發出更新命令。如果一切順利,文件可能會被刪除。
你可以顯式地運行pacman -S –overwrite 要覆蓋的文件模式**,強制
pacman` 覆蓋與 給模式匹配的文件,而不是手動重命名并在以后刪除屬于該包的所有文件。
在/var/cache/pacman/pkg/
中查找.part
文件(部分下載的包),并將其刪除。這通常是由在pacman.conf
文件中使用自定義XferCommand
引起的。
當pacman
要修改包數據庫時,例如安裝包時,它會在/var/lib/pacman/db.lck
處創建一個鎖文件。這可以防止pacman
的另一個實例同時嘗試更改包數據庫。
如果pacman
在更改數據庫時被中斷,這個過時的鎖文件可能仍然保留。如果你確定沒有pacman
實例正在運行,那么請刪除鎖文件。
檢查進程是否持有鎖定文件:
lsof/var/lib/pacman/db.lck
如果上述命令未返回任何內容,則可以刪除鎖文件:
rm/var/lib/pacman/db.lck
如果你發現lsof
命令輸出了使用鎖文件的進程的 PID,請先殺死這個進程,然后刪除鎖文件。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
國債期貨代碼有哪些?國債期貨代碼(兩年期國債期貨代碼):TS2003上市交易所:大連商品交易所國債期貨代碼:030011上市交易所:上海期貨交易所交易品種:國債交易代碼:TS2003發行上市交易所:上海期貨交易所國債期貨的標的是國內最早推出的國債期貨合約,2005年11月10日正式掛牌交易,這也是國債期貨首個允許境內客戶參與的品種,是目前最受歡迎的國債期貨。國債期貨理論價格計算公式計算公式有兩種:...
銀監會是干什么的?銀監會的五大職責有什么?下邊隨小編來具體了解一下銀監會是國有銀行,地方銀行的監督,管理機構。負責貫徹中央金融政策,法規的執行和落實。協助國有銀行,地方銀行開展金融,業務方面的資詢,服務,培訓等等。銀監會對上一級銀監會負責,對各國有銀行,地方銀行,商業銀行實行統籌管理的一個機構。銀監會的五大職責(一)依法依規對全國銀行業和保險業實行統一監督管理,維護銀行業和保險業合法、穩健運行,對...
房地產產業鏈也許我們的一些朋友不太了解這個術語。房地產產業鏈搞不懂看這里,其實房地產的服務鏈包含了很多服務,甚至成為了產業鏈,那么什么叫做產業鏈?房地產產業鏈包括些什么?產業鏈是產業經濟學中的一個概念,即產供銷,從原料到消費者手中的整個產業鏈條,是各個部門之間基于一定的技術經濟關聯,并依據特定的邏輯關系和時空布局關系客觀形成的鏈條式關聯關系形態。產業鏈是一個包含價值鏈、企業鏈、供需鏈和空間鏈四個維...