Arch Linux

 

Orientações aos usuários do AUR

De Wiki do Arch Linux Brasil

Tabela de conteúdo

Propósito

O ArchLinux User-community Repository (AUR) é um repositório dirigido pelos usuários do Arch. Ele contém descrições de pacotes que permitem a você compilar os pacotes a partir do código fonte e depois instalá-los via Pacman. Este artigo mostra ao usuário normal como acessar a interface web do AUR e como trabalhar com ele.

Como usar o AUR

Pesquisando no AUR

Abra um navegador web e acesse a página de pacotes do AUR

Pesquisas por Nome na verdade buscam o nome do pacote e a sua descrição através de uma comparação LIKE do MySQL. Se você precisar pesquisar por uma descrição que contenha '%' use com contra-barra '\%'. Isso quer dizer que você pode fazer pesquisas um pouco mais flexíveis. Tente pesquisar por 'tool%like%grep' e 'tool like grep' para você ver a diferença.

Instalando pacotes do AUR

Para instalar um pacote encontrado no AUR (também chamado de repositório UNSUPPORTED/NÃO SUPORTADO) siga os passos abaixo:

Os passos abaixo exemplificam a instalação de um pacote chamado "foo".

  • Primeiro se certique de que as ferramentas necessárias estão instaladas. O grupo de pacotes "base-devel" deve ser suficiente, já que ele inclui o makepkg e as ferramentas necessárias para compilar código fonte.
pacman -Sy base-devel 
  • Escolha um diretório de compilação adequado. Um diretório de compilação é simplesmente um diretório onde o pacote será criado e pode ser qualquer diretório. Exemplos de diretórios comumente utilizados:
~/builds

ou se você estiver usando o ABS (Arch Build System):
/var/abs/local 
Para mais informações sobre o ABS acesse a página ABS. O exemplo irá utilizar o diretório ~/builds como o diretório de compilação.
  • Encontre o pacote no AUR. Isso é feito usando a pesquisa do AUR, para navegar até a pesquisa a partir da home page do AUR clique no link "Packages" no menu superior. Ao clicar no nome da aplicação na lista de resultados será exibida a página de informações do pacote. Leia a descrição para ter certeza de que é o pacote desejado; também é interessante verificar a última atualização do pacote e ler os comentários dos usuários.
  • Faça o download dos arquivos necessários para a compilação do pacote. Na página de informações do pacote, clique no link "Tarball" para fazer o download dos arquivos. Esse arquivo deve ser salvo no diretório de compilação, mas pode também ser copiado para o diretório de compilação após o download. Neste exemplo, o arquivo tarball terá o nome "foo.tar.gz".
  • Descompacte o tarball. Vá para o diretório de compilação caso não esteja lá e descompacte os arquivos de compilação.
cd ~/builds
tar -xvzf foo.tar.gz

Isso deve criar um novo diretório chamado "foo" no diretório de compilação.

  • IMPORTANTE: Verifique cuidadosamente todos os arquivos. Acesse o novo diretório criado e verifique cuidadosamente o PKGBUILD e qualquer arquivo .install à procura de comandos maliciosos. Se tiver qualquer dúvida NÃO compile o pacote e procure ajuda nos fórums ou nas listas de discussão.
cd foo
<editor de texto favorito> PKGBUILD     # Verifique cuidadosamente
# Verifique cuidadosamente qualquer outro arquivo como por exemplo .install
  • Crie o pacote. Após confirmar manualmente a integridade dos arquivos execute o comando makepkg como um usuário normal no diretório de compilação.
makepkg -s

O sudo será utilizado para instalar qualquer dependência, mas se o uso do sudo não for desejado use o fakeroot (veja abaixo) e não inclua o parâmetro "-s" no comando makepkg.

  • Instale o pacote usando o pacman. Um tarball deve ter sido criado com o nome:
<nome do programa>-<número de versão>-<arquitetura>.pkg.tar.gz.

este pacote pode ser instalado usando o comando upgrade do pacman.

pacman -U foo-0.1-i686.pkg.tar.gz    

NOTA: o exemplo acima é um breve resumo do processo de compilação de um pacote. Uma visita à página do ABS irá lhe prover os detalhes completos, e é altamente recomendado, principalmente para empacotadores de primeira viagem.

Usando o fakeroot

O fakeroot simplesmente concede a um usuário comum as permissões de root necessárias para que ele crie pacotes no ambiente de compilação, sem que ele seja capaz de alterar o sistema operacional. Se o processo de empacotamento tentar alterar arquivos fora do ambiente de compilação, erros serão produzidos e o empacotamento falhará - isso é muito útil para verificar a qualidade/segurança/integridade dos PKGBUILDs para distribuição. Por padrão a opção export USE_FAKEROOT="y" é inclusa no arquivo /etc/makepkg.conf, então a não ser que você tenha mudado ela já estará habilitada.

Enviando pacotes para o AUR

Após logar na interface web do AUR, um usuário pode submeter um tarball gzipado (tar.gz) do diretório que contém os arquivos de compilação do pacote. O diretório dentro do tarball deve conter um PKGBUILD, arquivos .install, patches, etc (ABSOLUTAMENTE nenhum binário). Exemplos de como esse diretório deve ser pode ser visto em /var/abs.

Note que é um tarball gzipado - levando em consideração que você está fazendo o upload de um pacote chamado 'libfoo', quando você criar o arquivo ele deve parecer similar a isso:

. .. PKGBUILD libfoo.install
$ makepkg --source
# List contents of tarball.
$ tar tf libfoo-0.1-1.src.tar.gz
libfoo/
libfoo/PKGBUILD
libfoo/libfoo.install

Quando enviar um pacote, observe as seguintes regras:

  • Verifique nos repositórios [core], [extra], e [community] se o pacote já existe. Se ele já existir em qualquer um desses repositórios de QUALQUER forma, então NÃO faça o upload do pacote (se o pacote atual estiver quebrado ou faltando algum recurso que deveria ter sido incluso, por favor reporte o bug no FlySpray).
  • Verifique o repositório UNSUPPORTED. Se o pacote tiver um mantenedor, as alterações podem ser enviadas através de um comentário para que o mantenedor seja notificado. Se o pacote não tiver um mantenedor, ele pode ser adotado e atualizado como necessário.
  • Verifique cuidadosamente e se certifique de que tudo que você irá enviar está correto. Todos os colaboradores devem ler e aderir ao Arch Packaging Standards/Padrões de Empacotamento do Arch para escrever PKGBUILDs. Isso é essencial para um funcionamento adequado e para o sucesso do AUR. Lembre-se de que você não ganhará nenhum crédito ou respeito por desperdiçar o tempo das pessoas com um PKGBUILD ruim.
  • Pacotes que contiverem binários ou que forem escritos de maneira desleixada serão deletados sem aviso.
  • Se você não tiver certeza sobre o pacote (ou sobre o processo de empacotamento/envio), envie o PKGBUILD para a lista de discussão do AUR para que seja feita uma avaliação pública do PKGBUILD antes de você enviar o pacote para o AUR.
  • Tenha certeza de que o pacote é útil. Alguém mais irá querer usar este pacote? Ele é extremamente específico? Se mais do que algumas poucas pessoas acharem este pacote útil, então ele é apropriado para envio.
  • Ganhe alguma experiência antes de enviar pacotes. Crie alguns pacotes para aprender todo o processo e depois envie.
  • Se você enviar um pacote.tar.gz que contenha um arquivo chamado chamado 'pacote' acontecerá o seguinte erro: 'Could not change to directory /home/aur/unsupported/pacote/pacote'. Para resolver isso mude o nome do arquivo chamado 'pacote' para alguma outra coisa, por examplo, 'package.rc'. Quando ele estiver instalado no diretório pkg você poderá renomeá-lo novamente para 'pacote'.

Mantendo pacotes no repositório UNSUPPORTED

  • Avalie as experiências e os comentários dos outros usuários e tente incorporar qualquer melhoria que eles sugerirem; considere isso um processo de aprendizagem!
  • Por favor NÃO envie os pacotes e se esqueça deles! Enquanto ele estiver no repositório UNSUPPORTED, é trabalho do usuário manter o pacote verificando updates e melhorando o PKGBUILD.
  • Se você não quiser continuar mantendo um pacote por alguma razão, deixe de ser mantenedor do pacote usando a interface web do AUR e/ou envie uma mensagem para a lista de discussão do AUR.

O usuário e o AUR

O usuário comum tem um papel essencial no AUR, e sem o suporte, o envolvimento e contribuição da comunidade de usuários o AUR não conseguiria realizar aquilo a que se destina. O ciclo de vida de um pacote do AUR começa e termina com o usuário e requer que o usuário contribua de diversas maneiras.

Compartilhando PKGBUILDs no repositório UNSUPPORTED

Os usuários podem compartilhar PKGBUILDs usando a área UNSUPPORTED. A área UNSUPPORTED não contém nenhum pacote binário mas permite que usuários enviem PKGBUILDs que podem ser baixados por outros. Uma área de comentários permite que os usuários dêem sugestões sobre melhorias ao colaborador do PKGBUILD. Esses PKGBUILDs não são oficiais e não foram cuidadosamente analisados, então você deve assumir os riscos ao utilizá-los.

Não existe e nunca existirá um mecanismo oficial para fazer download de arquivos de compilação do repositório UNSUPPORTED, mas existem muitos scripts e ferramentas que podem fazer isso.

Repositório [community]

O repositório [community] é um complemento dos repositórios [extra] e [core], onde os pacotes mais populares do repositório UNSUPPORTED são mantidos pelo grupo de Trusted Users/Usuários Confiáveis. O repositório [community], ao contrário do UNSUPPORTED, contém pacotes binários que podem ser instalados diretamente com o pacman e os arquivos de compilação podem ser acessados diretamente através do ABS. Alguns desses pacotes podem eventualmente fazer a transição para os repositórios [core] ou [extra] se os desenvolvedores considerarem o pacote crucial para a distribuição.

Os usuários podem acessar o repositório [community] adicionando/descomentando esta linha em seus arquivos pacman.conf (é habilitado por padrão):

Include = /etc/pacman.d/mirrorlist

If /etc/pacman.d/mirrorlist does not exist then it should be created and contain the following:

[community]
Server = ftp://ftp.archlinux.org/community/os/i686/

Os usuários também podem acessar os arquivos de compilação do repositório [community] ao editar o arquivo /etc/abs.conf e remover o sinal de exclamação da frente do repositório [community] (desabilitado por padrão), veja:

REPOS=(core extra community !testing)

Votação

Uma das atividades mais fáceis para todos os usuários do Arch é navegar pelo AUR e votar a favor de seus pacotes favoritos usando a interface online. Todos os pacotes são elegíveis para adoção por um TU para inclusão no repositório [community], e a contagem de votos é uma das considerações nesse processo - então é de interesse de todos votar!

Instale um utilitário do AUR

Utilitários do AUR fornecem um acesso direto ao AUR. Eles variam em seus recursos, mas podem facilitar na pesquisa, download, empacotamento, e instalação de PKGBUILDs do AUR.

Todos esses scripts podem ser encontrados no repositório UNSUPPORTED.

Ferramentas pessoais
TOOLBOX
LANGUAGES