Arch-Linux

如何使用 PKGBUILD 文件更新安裝在 Arch Linux 上的軟體包?

  • September 19, 2018

為了清楚起見,我編輯了我的問題。

TL;DRyay當我更新我的 PKGBUILD 文件時,是否會更新我最初從我自己的本地 PKGBUILD 安裝的包?換句話說,AUR 助手可以用於不在 AUR 中的包嗎?

詳細資訊:假設我在本地創建一個 PKGBUILD 文件並使用它來安裝不在 AUR 中的包,使用以下步驟:

安裝包

  • 獲取建構文件,包括 PKGBUILD 和其他可能需要的文件,如 systemd 單元和更新檔(通常不是實際程式碼)。
  • 驗證 PKGBUILD 和隨附文件不是惡意的或不可信的。
  • 在保存文件的目錄中執行 makepkg -si。這將下載程式碼,使用 pacman 解決依賴關係,編譯它,打包它,然後安裝包。

在我按照上述步驟在不使用 AUR 助手的情況下安裝包之後,我以後可以使用 AUR 助手更新包嗎?當然,由於包不在 AUR 中,所以當開發人員發布新版本時,我將不得不更新我的本地 PKGBUILD 文件。假設我這樣做了,一個好的 AUR 助手(例如,yay)是否能夠正確makepkg執行pacman -U

我的動機是為這些非 AUR 包維護相同的工作流程,這意味著我希望使用 AUR 助手來保持它們的更新。

我的問題是,更廣泛地說,AUR 助手如何確定何時需要更新包?他們是否完全依賴線上回購,或者他們可以為不在 AUR 中的本地包做出決定?

如果最後一個問題的答案是肯定的,那麼在使用我自己的本地 PKGBUILD 時需要遵循哪些步驟?很明顯,當應用程序的新版本發佈時,我需要更新我的 PKGBUILD 文件。我是否需要將 PKGBUILD 文件放在某個位置以供yay查找它們的工具使用?我是否需要以yay某種方式“註冊”本地 PKGBUILD 文件?關於版本號,我是否需要遵循某種約定?

您提到的任何工具都不會自動執行此操作,因為它們都依賴於包維護者來更新 PKGBUILD 以獲取新版本。唯一的例外是 VCS PKGBUILD,預設情況下,它們會拉取最新的源。

AUR 助手讀取 srcinfo 以確定包是否已更新。沒有魔法在起作用,仍然必須有人這樣做,以及對 PKGBUILD 進行任何其他必要的更改,才能觸發重建/更新。

您可以編寫一個腳本來更新 PKGBUILD,但您實際上是在承擔維護者的角色,因此無論您如何實現它,都必須更新 PKGBUILD。

引用自:https://unix.stackexchange.com/questions/469904