Se você já usou distros como o Arch Linux e Manjaro, é provável que tenha se deparado com um repositório não oficial chamado AUR (Arch User Repository – Repositório de usuários do Arch), onde há diversos pacotes mantidos pela comunidade. O repositório contém scripts que permitem compilar um pacote e instalá-lo via pacman, que é o gerenciador de pacotes do Arch Linux e derivados, tais scripts são chamados de PKGBUILDs.
O que é um PKGBUILD?
Quem curte utilizar o terminal e automatizar tarefas com scripts de shell, já deve ter uma noção do que são PKGBUILDs, são scripts de shell com algumas variáveis e funções que possuem instruções para que determinado pacote seja compilado.

Variáveis comumente usadas num PKGBUILD
Para você entender um pouco melhor o que está acontecendo no script, falaremos um pouco sobre as principais variáveis que compõem um PKGBUILD.
pkgname: A variável pkgname definirá o nome do seu pacote ao instalar e como o gerenciador de pacotes (pacman) irá registrá-lo. O formato dessa variável, assume a forma de “variável=valor”, com o nome da variável à esquerda, o valor da variável à direita, separado por um sinal de igual.
pkgver: A variável pkgver, define a versão do pacote. Isso é muito importante para que o usuário saiba quando o pacote é atualizado pelo mantenedor ao ser configurado com uma versão mais alta.
pkgrel: A variável pkgrel notificará upgrades ao usuário caso o pacote seja configurado com uma versão maior. Ele serve para qualquer alteração que requeira que o pacote permaneça o mesmo, como qualquer alteração no próprio PKGBUILD. Isso será útil se você criou um PKGBUILD para um programa que usa (e deseja manter a versão igual à do pacote) e precisa corrigir um bug no próprio PKGBUILD.
pkgdesc: A variável pkgdesc define uma breve descrição do pacote para ajudar a identificá-lo.
arch: A variável arch define a arquitetura em que o pacote é compatível.
depends: A variável depends lista todas as dependências das quais o pacote necessita para funcionar.
optdepends: A variável optdepends lista dependências que não são necessárias para o funcionamento do pacote, mas que adicionam a ele funcionalidades extras.
conflicts: A variável conflicts dirá ao gerenciador de pacotes quais pacotes são conflitantes, os pacotes listados serão excluídos para que o pacote que será compilado pelo PKGBUILD possa ser instalado sem problemas.
license: A variável license define a licença de software sob a qual o programa será licenciado.
source: A variável source faz com que o makepkg saiba quais arquivos usar para compilar o pacote, pode conter uma variedade de tipos diferentes de fontes, incluindo arquivos e URLs locais.
sha512sums: A variável sha512sums verifica se os arquivos da variável source não foram modificados ou baixados incorretamente.
package: A package é considerada a variável mais importante para, de fato, gerar o pacote. É importante conhecer duas variáveis que compõem a package, são elas:
${srcdir}: É através dessa variável que o makepkg coloca os arquivos na variável source. Este é o diretório onde você pode interagir com os arquivos e fazer qualquer outra modificação necessária para os arquivos.
${pkgdir}: É nessa variável que são colocados os arquivos que serão instalados no sistema. A estrutura de pastas para $ {pkgdir} é configurada como se estivesse em um sistema real (ou seja, $ {pkgdir} /usr/bin/nome-do-script criará o arquivo /usr/bin/nome-do-script ao instalar com pacman.
Como ler o conteúdo de um PKGBUILD
Se você preza por segurança e entende o básico de shell script, é provável que queira ler o conteúdo de um PKGBUILD antes de compilar e instalar o pacote em seu sistema, para ter certeza que não se trata de um script malicioso. Fazer isso é muito simples, basta seguir o passo a passo:
Neste passo a passo, utilizarei o PKGBUILD do popular navegador Google Chrome partindo do preceito que você já tenha baixado o snapshot do arquivo.
Passo 1 – Abra o terminal e vá até o diretório no qual você baixou o arquivo. No meu caso, está no diretório “Downloads”.

Passo 2 – Você notará que o arquivo está empacotado (.tar) e comprimido (.gz), para desempacotar e descomprimir basta rodar o comando abaixo. O PKGBUILD é um dos arquivos que compõem o .tar.gz.
tar -xvf nome-do-arquivo.tar.gz

Passo 3 – Agora basta entrar no diretório descompactado e lá estará o PKGBUILD. Para fazer isso basta rodar o comando:
cd nome-do-diretorio

Passo 4 – O último passo, é abrir o arquivo e pronto, todo o conteúdo do PKGBUILD estará diante dos seus olhos. Para isso, basta utilizar o comando CAT, como mostra o exemplo abaixo, ou abra o arquivo no seu editor de texto favorito, afinal, o PKGBUILD é um arquivo de texto normal como qualquer outro.
cat PKGBUILD

Compilando um PKGBUILD e instalando o pacote via PACMAN
Você deve estar se perguntando: “Mas como eu transformo um PKGBUILD em um pacote instalável?” Bom, é mais fácil do que aparenta ser.
Primeiro basta compilar o PKGBUILD utilizando a ferramenta makepkg seguindo os passos abaixo:
Passo 1 – Uma vez tendo desempacotado e descomprimido o arquivo .tar.gz e estando dentro do diretório do pacote, basta rodar o comando abaixo. O comando iniciará a compilação do pacote e resolverá todas as dependências.
makepkg -s
Passo 2 – Ao término da compilação, você terá um pacote instalável que possuirá as extensões .pkg.tar.xz e você poderá instalá-lo facilmente utilizando o gerenciador de pacotes pacman executando o comando:
sudo pacman -U nome-do-pacote.pkg.tar.xz
Prontinho! O pacote instalado já estará pronto para ser utilizado em seu sistema.
Parece que chegamos ao fim. Você já conhecia o PKGBUILD? Espero que tenha compreendido como tudo funciona. Caso queira estudar mais a fundo o PKGBUILD e aprender até mesmo a criar o seu próprio, a wiki do Arch poderá lhe ajudar muito nessa aventura.
Abraços e até a próxima.