O que exatamente é o PKGBUILD e devo editá-lo ao instalar pacotes?

6

Sempre que eu uso yaourt -Syua no meu sistema Manjaro Linux, ele me dará

Edit PKGBUILD ? [Y/n] ("A" to abort)

e às vezes

Edit chromium-pepper-flash.install ? [Y/n] ("A" to abort)

Em algum lugar eu li apenas para dizer não para editar esses arquivos.

O wiki: link

Diz que o PKGBUILD é apenas algumas opções para alterar ao instalar, então está tudo bem em deixar o padrão?

Eu não encontrei informações sobre os arquivos .install , o que são eles?

    
por ahtmatrix 22.05.2013 / 15:30

2 respostas

9

Por que você não lê minuciosamente a página da wiki que você vincou :

Packages in Arch Linux are built using the makepkg utility and information stored in PKGBUILDs. When makepkg is run, it searches for a PKGBUILD in the current directory and follows the instructions therein to either compile or otherwise acquire the files to build a package file

Portanto, PKGBUILD é uma "receita" para criar um pacote (semelhante a RPM spec , gentoo ebuild etc). Às vezes, quando um pacote é instalado / removido / atualizado, pode ser necessário que alguns scripts / programas sejam executados automaticamente antes / depois que os arquivos do pacote sejam gravados / removidos do disco, então uma "receita" adicional é necessário, ou seja, .install (trecho do mesmo link):

install

The name of the .install script to be included in the package. pacman has the ability to store and execute a package-specific script when it installs, removes or upgrades a package. The script contains the following functions which run at different times:

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.

Normalmente, você edite PKGBUILD para personalizar a maneira como o pacote é criado (por exemplo, adicionar / remover --configure opções, alterar prefixo de instalação, corrigir o código-fonte, excluir arquivos do pacote etc.). Da mesma forma, edite .install para adicionar ou remover comandos que devem ser executados automaticamente antes / depois de um pacote install / upgrade / removal.
Eu diria que é uma boa prática abrir esses arquivos quando solicitado e ler seu conteúdo apenas para garantir que tudo esteja OK.

    
por 22.05.2013 / 19:35
2

Se você quiser instalar um pacote disponível somente em AUR , yaourt baixará o PKGBUILD (e talvez alguns outros arquivos) do pacote desejado e com o PKGBUILD (o makepkg irá construir o pacote para que você possa instalá-lo.

Se você precisar, pode editar o PKGBUILD, mas acho que na maioria dos casos é desnecessário. Se você não quiser essa pergunta (e sempre responda SIM), você pode fazer: colocar em /etc/yaourtrc a próxima linha:

EDITFILES=0

Estou usando alguns pacotes do AUR e nunca precisei editar o PKGBUILD.

Editar : isso impede apenas a pergunta sobre a edição de PKGBUILD . Você tem a chance de interromper a instalação de pacotes não suportados do AUR e pode verificar o PKGBUILD antes de criar e instalar o pacote.

    
por 22.05.2013 / 18:11