如何使用 PKGBUILD 文件更新安裝在 Arch Linux 上的軟體包?
為了清楚起見,我編輯了我的問題。
TL;DR
yay
當我更新我的 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。