溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

在Linux中pacman怎么用

發(fā)布時間:2021-10-25 10:00:29 來源:億速云 閱讀:814 作者:小新 欄目:系統(tǒng)運維

小編給大家分享一下在Linux中pacman怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!



pacman 包管理器是 Arch Linux 和其他主要發(fā)行版如 Red Hat 和 Ubuntu/Debian 之間的主要區(qū)別之一。它結(jié)合了簡單的二進制包格式和易于使用的 構(gòu)建系統(tǒng)。pacman 的目標是方便地管理軟件包,無論它是來自 官方庫 還是用戶自己構(gòu)建的軟件庫。

如果你曾經(jīng)使用過 Ubuntu 或基于 debian 的發(fā)行版,那么你可能使用過 apt-get 或 apt 命令。pacman 在 Arch Linux 中是同樣的命令。如果你 剛剛安裝了 Arch Linux,在安裝 Arch Linux 后,首先要做的 幾件事 之一就是學習使用 pacman 命令。

在這個初學者指南中,我將解釋一些基本的 pacman 命令的用法,你應(yīng)該知道如何用這些命令來管理你的基于 Archlinux 的系統(tǒng)。

Arch Linux 用戶應(yīng)該知道的幾個重要的 pacman 命令

與其他包管理器一樣,pacman 可以將包列表與軟件庫同步,它能夠自動解決所有所需的依賴項,以使得用戶可以通過一個簡單的命令下載和安裝軟件。

通過 pacman 安裝軟件

你可以用以下形式的代碼來安裝一個或者多個軟件包:

pacman -S 軟件包名1 軟件包名2 ...

在Linux中pacman怎么用

安裝一個包

-S 選項的意思是同步synchronization,它的意思是 pacman 在安裝之前先與軟件庫進行同步。

pacman 數(shù)據(jù)庫根據(jù)安裝的原因?qū)惭b的包分為兩組:

  • 顯式安裝:由 pacman -S 或 -U 命令直接安裝的包

  • 依賴安裝:由于被其他顯式安裝的包所 依賴,而被自動安裝的包。

卸載已安裝的軟件包

卸載一個包,并且刪除它的所有依賴。

pacman -R 軟件包名

在Linux中pacman怎么用

移除一個包

刪除一個包,以及其不被其他包所需要的依賴項:

pacman -Rs 軟件包名

如果需要這個依賴的包已經(jīng)被刪除了,這條命令可以刪除所有不再需要的依賴項:

pacman -Qdtq | pacman -Rs -
升級軟件包

pacman 提供了一個簡單的辦法來 升級 Arch Linux。你只需要一條命令就可以升級所有已安裝的軟件包。這可能需要一段時間,這取決于系統(tǒng)的新舊程度。

以下命令可以同步存儲庫數(shù)據(jù)庫,并且 更新系統(tǒng)的所有軟件包,但不包括不在軟件庫中的“本地安裝的”包:

pacman -Syu
  • S 代表同步

  • y 代表更新本地存儲庫

  • u 代表系統(tǒng)更新

也就是說,同步到中央軟件庫(主程序包數(shù)據(jù)庫),刷新主程序包數(shù)據(jù)庫的本地副本,然后執(zhí)行系統(tǒng)更新(通過更新所有有更新版本可用的程序包)。

在Linux中pacman怎么用

系統(tǒng)更新

注意!

對于 Arch Linux 用戶,在系統(tǒng)升級前,建議你訪問 Arch-Linux 主頁 查看最新消息,以了解異常更新的情況。如果系統(tǒng)更新需要人工干預(yù),主頁上將發(fā)布相關(guān)的新聞。你也可以訂閱 RSS 源 或 Arch 的聲明郵件。

在升級基礎(chǔ)軟件(如 kernel、xorg、systemd 或 glibc) 之前,請注意查看相應(yīng)的 論壇,以了解大家報告的各種問題。

在 Arch 和 Manjaro 等滾動發(fā)行版中不支持部分升級。這意味著,當新的庫版本被推送到軟件庫時,軟件庫中的所有包都需要根據(jù)庫版本進行升級。例如,如果兩個包依賴于同一個庫,則僅升級一個包可能會破壞依賴于該庫的舊版本的另一個包。

用 Pacman 查找包

pacman 使用 -Q 選項查詢本地包數(shù)據(jù)庫,使用 -S 選項查詢同步數(shù)據(jù)庫,使用 -F 選項查詢文件數(shù)據(jù)庫。

pacman 可以在數(shù)據(jù)庫中搜索包,包括包的名稱和描述:

pacman -Ss 字符串1 字符串2 ...

在Linux中pacman怎么用

查找一個包

查找已經(jīng)被安裝的包:

pacman -Qs 字符串1 字符串2 ...

根據(jù)文件名在遠程軟包中查找它所屬的包:

pacman -F 字符串1 字符串2 ...

查看一個包的依賴樹:

pactree 軟件包名
清除包緩存

pacman 將其下載的包存儲在 /var/cache/Pacman/pkg/ 中,并且不會自動刪除舊版本或卸載的版本。這有一些優(yōu)點:

  1. 鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術(shù)社區(qū)

  2. 它允許 降級 一個包,而不需要通過其他來源檢索以前的版本。

  3. 已卸載的軟件包可以輕松地直接從緩存文件夾重新安裝。

但是,有必要定期清理緩存以防止文件夾增大。

pacman contrib 包中提供的 paccache(8) 腳本默認情況下會刪除已安裝和未安裝包的所有緩存版本,但最近 3 個版本除外:

paccache -r

在Linux中pacman怎么用

清除緩存

要刪除當前未安裝的所有緩存包和未使用的同步數(shù)據(jù)庫,請執(zhí)行:

pacman -Sc

要從緩存中刪除所有文件,請使用清除選項兩次,這是最激進的方法,不會在緩存文件夾中留下任何內(nèi)容:

pacman -Scc
安裝本地或者第三方的包

安裝不是來自遠程存儲庫的“本地”包:

pacman -U 本地軟件包路徑.pkg.tar.xz

安裝官方存儲庫中未包含的“遠程”軟件包:

pacman -U http://www.example.com/repo/example.pkg.tar.xz

額外內(nèi)容:用 pacman 排除常見錯誤

下面是使用 pacman 管理包時可能遇到的一些常見錯誤。

提交事務(wù)失?。ㄎ募_突)

如果你看到以下報錯:

error: could not prepare transactionerror: failed to commit transaction (conflicting files)package: /path/to/file exists in filesystemErrors occurred, no packages were upgraded.

這是因為 pacman 檢測到文件沖突,不會為你覆蓋文件。

解決這個問題的一個安全方法是首先檢查另一個包是否擁有這個文件(pacman-Qo 文件路徑)。如果該文件屬于另一個包,請?zhí)峤诲e誤報告。如果文件不屬于另一個包,請重命名“存在于文件系統(tǒng)中”的文件,然后重新發(fā)出更新命令。如果一切順利,文件可能會被刪除。

你可以顯式地運行 pacman -S –overwrite 要覆蓋的文件模式**,強制pacman` 覆蓋與 給模式匹配的文件,而不是手動重命名并在以后刪除屬于該包的所有文件。

提交事務(wù)失?。ò鼰o效或損壞)

在 /var/cache/pacman/pkg/ 中查找 .part 文件(部分下載的包),并將其刪除。這通常是由在 pacman.conf 文件中使用自定義 XferCommand 引起的。

初始化事務(wù)失?。o法鎖定數(shù)據(jù)庫)

當 pacman 要修改包數(shù)據(jù)庫時,例如安裝包時,它會在 /var/lib/pacman/db.lck 處創(chuàng)建一個鎖文件。這可以防止 pacman 的另一個實例同時嘗試更改包數(shù)據(jù)庫。

如果 pacman 在更改數(shù)據(jù)庫時被中斷,這個過時的鎖文件可能仍然保留。如果你確定沒有 pacman 實例正在運行,那么請刪除鎖文件。

檢查進程是否持有鎖定文件:

lsof /var/lib/pacman/db.lck

如果上述命令未返回任何內(nèi)容,則可以刪除鎖文件:

rm /var/lib/pacman/db.lck

如果你發(fā)現(xiàn) lsof 命令輸出了使用鎖文件的進程的 PID,請先殺死這個進程,然后刪除鎖文件。

以上是“在Linux中pacman怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI