Tutorial | Linux

Como criar um repositório personalizado no Arch Linux

Como criar um repositório personalizado no Arch Linux

Olá, pessoal, tudo bem? Espero que sim. Neste post, vou mostrar como fazer um repositório do Arch Linux. Além de ser útil para criar um repositório personalizado, este post nos ajudará a entender como os repositórios do Arch funcionam por baixo dos panos.

Procedimento

Preparação

A primeira coisa a fazer é criar uma pasta. Dentro dela, o ideal é criar uma subpasta onde ficarão todos os arquivos PKGBUILD. Isso não é estritamente necessário, mas permite:

  1. Melhor organização e atualização mais fácil dos pacotes.
  2. Mostrar ao público como os pacotes são construídos, dando mais segurança a terceiros, especialmente se o repositório for compartilhado.

Depois de configurar isso, o próximo passo é criar alguns pacotes. Neste exemplo, vou compilar:

  • O emulador de terminal sakura
  • O gerenciador de arquivos spacefm
  • O editor de texto pico

Não há um número mínimo de pacotes, mas vou começar com dois e depois adicionar o terceiro para mostrar como funciona a adição.

Neste ponto, a árvore de diretórios deve ficar assim:

ItsZariep@PC~/duckverse-> tree
.
└── PKGBUILDS
    ├── pico
    │   └── PKGBUILD
    ├── sakura
    │   └── PKGBUILD
    └── spacefm
        └── PKGBUILD

4 directories, 3 files

Criando um PKGBUILD

Esse processo é bastante difundido; você pode ver exemplos de PKGBUILDs no AUR ou ler a documentação do PKGBUILD.


Configurando o makepkg e construindo o pacote

Para construir os pacotes, vá até a pasta onde está o PKGBUILD e execute:

makepkg

Antes disso, você pode querer configurar o makepkg. Para isso, copie o arquivo de configuração:

cp /etc/makepkg.conf ~/.makepkg.conf

Configure o seguinte de acordo com suas necessidades:

  • MAKEFLAGS: Para compilar mais rápido usando várias threads.
MAKEFLAGS="-j8"  # Se você tem 8 threads
  • PKGEXT: Para alterar a extensão do pacote.
PKGEXT='.pkg.tar.zst'
  • PACKAGER: Para personalizar o nome do empacotador.
PACKAGER="ItsZariep"

Adicionando o pacote ao repositório

Quando tiver seus pacotes, coloque-os em uma pasta com o nome da arquitetura de destino (por exemplo, x86_64) e execute dentro dessa pasta:

repo-add name.db.tar.gz *.pkg.tar.zst

Nota: Altere a extensão se você usou uma diferente. Recomendo salvar esse comando em um script para facilitar futuras atualizações.

A árvore de diretórios agora deve ficar assim:

ItsZariep@PC~/duckverse-> tree
.
├── pkgbuilds
│   ├── sakura
│   │   └── PKGBUILD
│   ├── pico
│   │   └── PKGBUILD
│   └── spacefm
│       └── PKGBUILD
└── x86_64
    ├── db
    ├── duckverse.db -> duckverse.db.tar.gz
    ├── duckverse.db.tar.gz
    ├── duckverse.files -> duckverse.files.tar.gz
    ├── duckverse.files.tar.gz
    └── sakura-3.8.7-1-x86_64.pkg.tar.zst

5 directories, 9 files

Nota: db é o nome do script onde o comando repo-add foi salvo.


Adicionando o repositório ao Pacman

Edite o /etc/pacman.conf e adicione:

[duckverse]
SigLevel = Never
Server = file:///home/itszariep/.local/share/duckverse/$arch

Se você enviou seu repositório para o GitHub (e habilitou o GitHub Pages), também pode usá-lo remotamente:

[duckverse]
SigLevel = Never
Server = https://itzselenux.github.io/$repo/$arch

Adicionando ou atualizando pacotes

Para adicionar mais pacotes ao repositório:

  1. Crie o novo pacote .pkg.tar.zst como antes.
  2. Adicione-o ao diretório correspondente.
  3. Atualize o banco de dados com o repo-add.

Para atualizar um pacote:

  1. Recompile-o.
  2. Substitua o arquivo antigo.
  3. Execute o repo-add novamente.

Conclusão

Criar um repositório para o pacman é relativamente fácil. Porém, se você pretende fazer algo público e formal, tenha muito cuidado com as licenças, pois muitas não permitem redistribuição. Não respeitá-las pode causar problemas legais.

Fora isso, como mencionei, não é nenhuma ciência de foguetes criar e atualizar um repositório, mas dá trabalho mantê-lo.

Também recomendo usar chaves GPG para assinar os arquivos e oferecer maior segurança.


Avatar

ItsZariep

YouTuber e programador, utiliza Linux desde 2015

Sobre mim


© 2026 ItsZariep

Powered by Tessera for Hugo