修復 Arch Linux 中的 「target not found」 錯誤
如果在 Arch Linux 中安裝軟體包時遇到 「target not found」 錯誤,你可以採取以下措施。
有一天,我嘗試在 Arch Linux 上安裝 Hyprland。當我使用 Pacman 命令安裝 它時,它拋出 「target not found」(目標未發現)錯誤。
$ sudo pacman -S hyprland
[sudo] password for abhishek:
error: target not found: hyprland
這是一個意外,因為我知道 Hyprland 是可用的。
我的修復方法是更新系統,在大多數情況下,它可以解決此問題。
sudo pacman -Syu
這裡,本地包資料庫不同步。我需要更新緩存。這裡還建議更新系統。
在大多數情況下,這就是修復此錯誤的方法。但是,你看到此錯誤的原因可能還有其他一些。讓我在這裡詳細討論它們。
修復:更新系統
Arch Linux 是一個 滾動發布發行版,並且它提供的更新非常頻繁。如果你不每隔幾天更新一次系統,你的本地包資料庫將與遠程鏡像不同步,並且你將在安裝軟體包時遇到問題。
本地包資料庫僅保留包的元數據,例如版本號、用於獲取包的倉庫 URL 等。
當你搜索軟體包時,pacman
會提供搜索結果,表明該軟體包可用。但是,該包在你的本地資料庫中具有較舊的版本號。當 pacman
在遠程倉庫中搜索包(以獲取實際的包)時,它不再找到舊版本的 URL。
這就是導致 「target not found」 錯誤的原因。
修復方法是更新本地資料庫。這可以與 pacman -Sy
一起使用,但是,建議 更新整個 Arch Linux 系統 以避免依賴衝突等。
sudo pacman -Syu
? 如果你已有幾周沒有更新系統,請做好更新超過 1 GB 的準備。這可能需要一些時間,具體取決於你的互聯網速度和你使用的鏡像。
就我而言,Arch 安裝在我的輔助系統上。由於我一周左右無法使用它,該系統已經過時了。更新後,我就可以安裝 Hyprland。
? 如果這不起作用,請通過添加額外的
y
強制刷新所有包資料庫:sudo pacman -Syyu
修復 「target not found」 錯誤的其他建議
如果上述方法沒有為你解決此錯誤,這裡有一些修復此錯誤的提示。
仔細檢查包名稱
我親愛的 Watson,這可能看起來很簡單,但人們通常只是錯誤地輸入了包名稱。
Linux 區分大小寫,包通常以小寫命名。因此,如果你要使用一個名為 Flameshot 的流行工具,那麼它的包名稱很可能是 flameshot。
此外,某些軟體的拼寫與常見軟體的拼寫不同。例如,它是 hyprland,這使我錯誤地輸入了 hyperland(使用通常的 「hyper」 拼寫)。
在極少數情況下,可能會混淆是 l
、I
或者 1
。
基本上,確保你輸入的包名稱是正確的。
查看該軟體包在倉庫中是否可用
Arch Linux 的倉庫中有大量軟體包。但這並不意味著它擁有所有可能的 Linux 軟體包。
訪問 Arch Linux 官方軟體包網站:
在這裡輸入包名,查看該包是否可用。如果是,它是哪個倉庫以及它在哪個設備上可用。
x86_64
適用於英特爾架構,任何包含 ARM 架構的均適用於 樹莓派類設備。
? 如果在某些倉庫中找到該軟體包,但 pacman 即使在更新的系統上也找不到它,請檢查
pacman.conf
文件並查看是否啟用了所述倉庫。
確保它不是 AUR 包
Arch 用戶倉庫(AUR) 是提供更新包的附加社區支持平台。
現在,有多種使用 AUR 包的方法,但 pacman
不是其中之一。
檢查你嘗試安裝的軟體包是否是 AUR 軟體包。首先檢查官方 Arch 倉庫,如上所述。如果不存在,請檢查 AUR 頁面。
如果它是 AUR 包,則必須 使用 yay 或一些 其他 AUR 幫助程序。你不能使用 pacman
安裝 AUR 軟體包。
你能解決這個問題嗎?
在大多數情況下,更新系統可以解決此問題。在極少數情況下,可能還有其他原因,我已經提到了一些建議。
現在輪到你了。如果你能夠解決此問題,請在評論區告訴我。
(題圖:MJ/b71c9760-4cb1-41de-a336-3e38026bcfeb)
via: https://itsfoss.com/target-not-found-arch-linux/
作者:Abhishek Prakash 選題:lujun9972 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive