Arch-Linux
PKGBUILD 到底是什麼,我應該在安裝軟體包時對其進行編輯嗎?
每當我
yaourt -Syua
在我的 Manjaro Linux 系統中使用時,它都會給我Edit PKGBUILD ? [Y/n] ("A" to abort)
而有時
Edit chromium-pepper-flash.install ? [Y/n] ("A" to abort)
在某處我讀到只是對編輯這些文件說不。
維基:https ://wiki.archlinux.org/index.php/PKGBUILD
說這
PKGBUILD
只是安裝時要更改的一些開關,所以可以保留預設設置嗎?我還沒有找到有關
.install
文件的資訊,它們是什麼?
您為什麼不徹底閱讀您連結的 wiki 頁面:
Arch Linux 中的軟體包是使用makepkg實用程序和儲存在 PKGBUILD 中的資訊建構的。執行makepkg時,它會 在目前目錄中**搜尋 PKGBUILD ,並**按照其中的說明**編譯或獲取文件以建構封包件
因此,
PKGBUILD
是創建包的*“秘訣”(類似於 aRPM
spec
等gentoo
ebuild
)。有時,當安裝/刪除/升級包時,可能需要在將封包件寫入磁碟/從磁碟中刪除之前/之後自動執行一些腳本/程序,因此需要額外的“配方”*,即.install
(摘自相同的連結):安裝
要包含在包中的**.install**腳本的名稱。pacman 能夠在安裝、刪除或升級軟體包時儲存和執行特定於軟體包的腳本。該腳本包含以下在不同時間執行的函式:
pre_install - The script is run right before files are extracted. One argument is passed: new package version. post_install - The script is run right after files are extracted. One argument is passed: new package version. pre_upgrade - The script is run right before files are extracted. Two arguments are passed in the following order: new package version, old package version. post_upgrade - The script is run after files are extracted. Two arguments are passed in the following order: new package version, old package version. pre_remove - The script is run right before files are removed. One argument is passed: old package version. post_remove - The script is run right after files are removed. One argument is passed: old package version.
通常,您可以編輯
PKGBUILD
以自定義建構包的方式(例如添加/刪除--configure
選項、更改安裝前綴、修補原始碼、從包中排除文件等)。同樣,您可以編輯.install
以添加或刪除應在軟體包安裝/升級/刪除之前/之後自動執行的命令。我會說最好在出現提示時打開這些文件並閱讀它們的內容以確保一切正常。