[Howto] Gerar pacotes de software Arch Linux e derivados

Uma das coisas que mais gosto no Arch Linux e seus derivados é o tremenda facilidade para criar pacotes para depois serem instalados no sistema, ao contrário dos conhecidos . Deb do Debian / Ubuntu / Linux Mint / etc que é um caos (e se forem bibliotecas eu não te digo).

Um modelo básico seria este:

# Maintainer:
pkgname=
pkgver=
pkgrel=
pkgdesc=
arch=()
url=
license=()
groups=()
depends=()
makedepends=()
source=()
md5sums=()

build() {
...
}
package() {
...
}

Agora vou explicar cada parâmetro:

  • # Mantenedor: Nele é colocado o nome do mantenedor do pacote
  • nome do pacote: O nome do pacote. Ele só pode conter letras, números, -, _ e +
  • pkver: versão do pacote. pe 1.0.0
  • pacote: revisão do programa ou pacote. pe 1
  • pacotedesc: descrição do pacote.
  • arco: a arquitetura do programa: pode ser qualquer (para todos), i686 e x86_64, sendo any para pacotes que não requerem compilação, como programas bash ou python. Se for um programa que precisa dele (por exemplo, programas em C ou C ++), você deve indicar i686 se for para 32 bits ou x86_64 para 64 bits. Em geral, se for compatível com ambos, é definido (i686, x86_64)
  • url: o url para a página oficial do programa. É aconselhável colocá-lo.
  • licença: a licença do programa. por exemplo, GPL3
  • grupos: os grupos aos quais o pacote pertence. grupos = ('sistema')
  • depende: nele indicamos os pacotes necessários para a execução do programa. pependens = ('python2' 'pygtk')
  • depende: as dependências que são necessárias apenas para compilar o pacote. Se o código for baixado de um gerenciador de versão, é aconselhável colocá-lo. pe: makedepends = ('git')
  • fonte: nele indicamos os arquivos necessários para a criação do pacote. Como regra geral, é a url do pacote que contém o código, um patch, um arquivo .desktopt, ícones, etc. pe: source = (pacsyu.desktop)
  • md5somas: aqui estão as somas md5 dos arquivos indicados na fonte. Para saber quais executamos de um terminal na pasta onde está o PKGBUILD (tendo escrito os caminhos dos arquivos na fonte) makepkg-g e as somas aparecerão na tela.
    Também é possível usar outras somas como sh1.
  • Construir: nesta função vamos colocar o comandos necessários para proceder à compilação do software. Se não for necessário compilar, apenas a seguinte função será necessária)
  • pacote: nesta outra função irão os comandos de instalação do programa. Por exemplo, se estivermos compilando código C aqui, o make install iria.

E para terminar, só temos que executar makepkg para verificar se o pacote é gerado.
Como você pode ver, é difícil para nós. Então, deixo vocês com alguns parâmetros extras de makepkg:

  • -Eu: Instrui o makepkg a instalar o pacote após sua criação.
  • -s: Instale as dependências do pacote se elas estiverem nos repositórios.
  • -F: Se já existe um pacote com esse nome, versão e revisão com este parâmetro, pedimos que você o substitua.
  • -c: Limpe as pastas de trabalho (pacote e fonte) assim que terminar.
  • -UMA: Reempacote o pacote sem ter que recompilar.

Eu recomendo ver mais arquivos PKGBUILD para ver mais exemplos, execute o comando makepkg -h para ver o resto dos parâmetros do programa, além de ver o documentação oficial do makepkg no Wiki do Arch Linux o que você pode encontrar aqui