使用PKGBUILD卸载aur包时运行脚本



我的PKGBUILD中有此代码

package() {
cd "$pkgname"
install -Dm755 ./lnScript.sh "$pkgdir/opt/pycharm-professional/bin/re
lnScript.sh"
install -Dm751 ./lnp.hook "$pkgdir/etc/pacman.d/hooks/lnp.hook"
cd /opt/pycharm-professional/bin
sudo patch --forward --strip=4 --input="${srcdir}/$pkgname/lnsh.pat
ch"

当用户卸载程序包时,我需要反转此修补程序,因为原始程序不属于此程序包。

那么,当用户卸载aur包时,是否可以执行脚本

你应该习惯阅读Arch Wiki,无论如何,这里会提到:https://wiki.archlinux.org/title/PKGBUILD

6.3安装

要包含在程序包中的.install脚本的名称。

pacman能够在安装、删除或升级包时存储和执行包特定的脚本。该脚本包含以下在不同时间运行的函数:

  • pre_install——在提取文件之前运行脚本。传递了一个参数:新包版本
  • post_install——在提取文件后立即运行脚本。传递了一个参数:新包版本
  • pre_upgrade——在提取文件之前运行脚本。两个参数按以下顺序传递:新包版本、旧包版本
  • post_upgrade——在提取文件后立即运行脚本。两个参数按以下顺序传递:新包版本、旧包版本
  • pre_remove——在删除文件之前,脚本将立即运行。传递了一个参数:旧包版本
  • post_remove——删除文件后立即运行脚本。传递了一个参数:旧包版本

这是一个示例.install文件:

# This is a default template for a post-install scriptlet.
# Uncomment only required functions and remove any functions
# you don't need (and this header).
## arg 1:  the new package version
pre_install() {
# do something here
}
## arg 1:  the new package version
post_install() {
# do something here
}
## arg 1:  the new package version
## arg 2:  the old package version
pre_upgrade() {
# do something here
}
## arg 1:  the new package version
## arg 2:  the old package version
post_upgrade() {
# do something here
}
## arg 1:  the old package version
pre_remove() {
# do something here
}
## arg 1:  the old package version
post_remove() {
# do something here
}

相关内容

  • 没有找到相关文章

最新更新