Arch User Repository

O Arch User Repository (AUR) é um repositório dirigido à comunidade para usuários do Arch. Ele contém descrições de pacotes (PKGBUILDs) que permitem a você compilar um pacote a partir do código fonte com o makepkg e então instalá-lo via pacman. O AUR foi criado para organizar e compartilhar novos pacotes da comunidade e para ajudar a agilizar a inclusão de pacotes populares no repositório da comunidade. Este documento explica como os usuários podem acessar e utilizar o AUR.

Um bom número de novos pacotes que entram nos repositórios oficiais começam no AUR. Na AUR, os usuários podem contribuir com seus próprios builds de pacotes (PKGBUILD e arquivos relacionados). A comunidade AUR tem a capacidade de votar em pacotes na AUR. Se um pacote torna-se popular o suficiente – desde que tenha uma licença compatível e boa técnica de empacotamento – ele pode ser inserido no repositório da comunidade (diretamente acessível pelo pacman ou abs).

Atenção: Pacotes AUR são conteúdos produzidos pelo usuário. Estes PKGBUILDs são completamente não-oficiais e não foram completamente vetados. Qualquer uso dos arquivos fornecidos é por sua conta e risco.

Começando

Os usuários podem pesquisar e baixar PKGBUILDs a partir da Interface Web AUR. Estes PKGBUILDs podem ser compilados em pacotes instaláveis usando makepkg, depois instalados usando pacman.

  • Asegurar que o grupo de pacotes base-devel esteja instalado por completo (pacman -S --needed base-devel).
  • Lance sobre o #FAQ para respostas às perguntas mais comuns.
  • Pode querer ajustar /etc/makepkg.confpara otimizar o processo de compilação ao seu sistema antes de construir pacotes a partir do AUR. Uma melhoria significativa nos tempos de compilação de pacotes pode ser realizada em sistemas com processadores multi-core, ajustando a variável MAKEFLAGS, usando múltiplos núcleos para compressão, ou usando algoritmo de compressão diferente. Os usuários também podem habilitar otimizações de compiladores específicos de hardware através da variável CFLAGS. Veja makepkg#Dicas e truques para mais informações.

Também é possível interagir com o AUR através do SSH: digite ssh [email protected] help para uma lista de comandos disponíveis.

História

No início, havia ftp://ftp.archlinux.org/incoming, e as pessoas contribuíram simplesmente carregando o PKGBUILD, os arquivos suplementares necessários, e o próprio pacote construído para o servidor. O pacote e os arquivos associados permaneceram lá até que um mantenedor de pacotes viu o programa e o adotou.

Então nasceram os Repositórios de Usuários Confiáveis. Alguns indivíduos da comunidade tiveram permissão de hospedar seus próprios repositórios para que qualquer um os usasse. A AUR expandiu nesta base, com o objetivo de torná-lo mais flexível e mais utilizável. De fato, os mantenedores da AUR ainda são chamados de TUs (Trusted Users).

Entre 2015-06-08 e 2015-08-08-08 a AUR fez a transição da versão 3.5.1 para 4.0.0, introduzindo o uso de repositórios Git para publicar os PKGBUILDs.Os pacotes existentes foram descartados, a menos que os mantenedores tenham migrado manualmente para a nova infra-estrutura.

Repositórios Git para pacotes AUR3

O arquivo AUR no GitHub tem um repositório para cada pacote que estava no AUR 3 no momento da migração.Alternativamente, existe o repositório aur3-mirror que fornece o mesmo.

Instalar e atualizar pacotes

Instalar pacotes a partir do AUR é um processo relativamente simples. Essencialmente:

  1. Aquisitar os arquivos de compilação, incluindo o PKGBUILD e possivelmente outros arquivos requeridos, como unidades e patches do sistema (geralmente não o código real).
  2. Verifiquem que o PKGBUILD e os arquivos que o acompanham não são maliciosos ou não confiáveis.
  3. Executar makepkg -si no diretório onde os arquivos são salvos. Isto irá baixar o código, resolver as dependências com o pacman, compilá-lo, empacotá-lo e instalar o pacote.
Nota: A AUR não é suportada, então quaisquer pacotes que você instalar são de sua responsabilidade de atualizar, não do pacman. Se os pacotes nos repositórios oficiais forem atualizados, você precisará reconstruir quaisquer pacotes AUR que dependam dessas bibliotecas.

Prerequisites

Primeiro certifique-se de que as ferramentas necessárias estejam instaladas instalando o grupo base-devel na íntegra, que inclui o make e outras ferramentas necessárias para compilação a partir do source.

Dica: Use a bandeira --needed ao instalar o grupo base-devel para pular os pacotes que você já tem ao invés de reinstalá-los.
Nota: Os pacotes na AUR assumem que o grupo base-devel está instalado, ou seja, eles não listam os membros do grupo como dependências de compilação explicitamente.

Próximo escolha um diretório de compilação apropriado. Um diretório de compilação é simplesmente um diretório onde o pacote será feito ou “compilado” e pode ser qualquer diretório. Os exemplos nas seções seguintes usarão ~/builds como o diretório de compilação.

Aquisitar arquivos de compilação

Localizar o pacote na AUR. Isto é feito usando o campo de busca no topo da página inicial da AUR. Clicando no nome do aplicativo na lista de busca, surge uma página de informações sobre o pacote. Leia a descrição para confirmar que este é o pacote desejado, note quando o pacote foi atualizado pela última vez, e leia os comentários.

Existem vários métodos para adquirir os arquivos de compilação de um pacote:

  • Clonar seu repositório git, rotulado “Git Clone URL” no “Detalhes do pacote” em sua página AUR. Este é o método preferido, cuja vantagem é que você pode facilmente obter atualizações para o pacote via git pull.
$ git clone https://aur.archlinux.org/package_name.git
  • Baixar um snapshot, ou clicando no link “Download snapshot” em “Package Actions” no lado direito da sua página AUR, ou num terminal:
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/package_name.tar.gz
Nota: O arquivo snapshot é comprimido, e deve ser extraído (de preferência em um diretório reservado para compilações AUR): tar -xvf package_name.tar.gz

Aquisitar uma chave pública PGP se necessário

Verifica se um ficheiro de assinatura na forma de .sig ou .asc faz parte do array de fontes PKGBUILD, se for esse o caso, então adquire uma das chaves públicas listadas no array de chaves válidas PKGBUILD. Consulte makepkg#Verificação de assinaturas para mais informações.

Build e instale o pacote

Mude diretórios para o diretório contendo o pacote PKGBUILD.

$ cd package_name
Aviso: Verifique cuidadosamente o arquivo PKGBUILD, quaisquer arquivos .install e quaisquer outros arquivos no repositório git do pacote em busca de comandos maliciosos ou perigosos. Em caso de dúvida, não construa o pacote, e procure conselhos nos fóruns ou na lista de discussão. Código malicioso já foi encontrado em pacotes antes.

Ver o conteúdo de todos os arquivos fornecidos. Por exemplo, para usar menos o pager para ver PKGBUILD do:

$ less PKGBUILD
Dica: Se você está atualizando um pacote, você pode querer ver as mudanças desde a última submissão.

  • Para ver as mudanças desde a última submissão do git você pode usar git show.
  • Para ver as mudanças desde a última submissão usando o vimdiff, faça git difftool @~..@ vimdiff. A vantagem do vimdiff é que você vê todo o conteúdo de cada arquivo junto com os indicadores do que foi alterado.

Faça o pacote. Após confirmar manualmente o conteúdo dos arquivos, execute makepkg como um usuário normal:

$ makepkg -si
  • -s/--syncdeps resolve e instala automaticamente quaisquer dependências com o pacman antes de construir. Se o pacote depende de outros pacotes AUR, você precisará instalá-los manualmente primeiro.
  • -i/--install instala o pacote se ele for compilado com sucesso. Alternativamente o pacote compilado pode ser instalado com pacman -U package_name.pkg.tar.zst.

Outras bandeiras úteis são

  • -r/--rmdeps remove as dependências de tempo de compilação após a compilação, pois elas não são mais necessárias. No entanto estas dependências podem precisar ser reinstaladas na próxima vez que o pacote for atualizado.
  • -c/--clean limpa os arquivos temporários de compilação após a compilação, pois eles não são mais necessários. Estes arquivos são normalmente necessários apenas quando se depura o processo de compilação.

Nota: O exemplo acima é apenas um breve resumo do processo de compilação. É altamente recomendado ler os artigos makepkg e ABS para mais detalhes.

Upgrading packages

No diretório contendo o PKGBUILD do pacote você deve primeiro atualizar os arquivos e alterações usando o comando

$ git pull

então execute

$ makepkg -si

para atualizar o pacote.

Feedback

Comentar pacotes

AUR Interface Web tem um recurso de comentários que permite aos usuários fornecer sugestões e feedback sobre melhorias ao contribuidor PKGBUILD.

Dica: Evite colar patches ou PKGBUILDs na seção de comentários: eles rapidamente se tornam obsoletos e acabam ocupando muito espaço sem necessidade. Ao invés disso, envie esses arquivos por e-mail para o mantenedor, ou mesmo use um pastebin.

Python-Markdown fornece a sintaxe básica de Markdown para formatar comentários.

Nota:

  • Esta implementação tem algumas diferenças ocasionais com as regras oficiais de sintaxe.
  • Comprometer hashes para o repositório Git do pacote e referências a bilhetes Flyspray são convertidas para links automaticamente.
  • Comentários longos são colapsados e podem ser expandidos sob demanda.

Votar para pacotes

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

Inscrição no site da AUR para obter uma opção “Vote neste pacote” enquanto navega pelos pacotes. Depois de se inscrever também é possível votar a partir da linha de comando com aurvoteAUR, aurvote-gitAUR ou aur-auto-vote-gitAUR.

Alternativamente, se você tiver configurado a autenticação ssh, você pode votar diretamente a partir da linha de comando usando sua chave ssh. Isto significa que você não precisará salvar ou digitar sua senha AUR.

>

$ ssh [email protected] vote package_name

Votando pacotes desatualizados

Primeiro, você deve sinalizar o pacote desatualizado indicando detalhes sobre porque o pacote está desatualizado, de preferência incluindo links para o anúncio de lançamento ou para o novo tarball de lançamento.

Você também deve tentar contactar o mantenedor diretamente por e-mail. Se não houver resposta do mantenedor após duas semanas, você pode arquivar um pedido órfão. Veja AUR submission guidelines#Requests para detalhes.

Nota: pacotes VCS não são considerados desatualizados quando o pkgver muda e não devem ser sinalizados neste caso.

Debuging the package build process

  1. Segure que seu ambiente de construção está atualizado atualizando antes de construir qualquer coisa.
  2. Segure que você tem o grupo base-devel instalado.
  3. Utilize a opção -s com makepkg para verificar e instalar todas as dependências necessárias antes de iniciar o processo de compilação.
  4. Tente a configuração padrão do makepkg.
  5. Veja o Makepkg#Procura de problemas comuns.

Se você está tendo problemas para construir um pacote, primeiro leia seu PKGBUILD e os comentários em sua página AUR.

É possível que um PKGBUILD esteja quebrado para todos. Se você não conseguir descobrir sozinho, relate-o ao mantenedor (por exemplo, postando os erros que você está recebendo nos comentários da página AUR). Você também pode procurar ajuda nos Assuntos AUR, Discussão & Fórum de Pedidos PKGBUILD.

A razão pode não ser trivial afinal de contas. Personalizado CFLAGS, LDFLAGS e MAKEFLAGS pode causar falhas. Para evitar problemas causados pela configuração particular do seu sistema, construa pacotes em um chroot limpo. Se o processo de compilação ainda falhar em um chroot limpo, o problema provavelmente é com o PKGBUILD.

Veja Criando pacotes#Verificando a sanidade do pacote sobre o uso de namcap. Se você gostaria de ter um PKGBUILD revisto, poste-o na aur-general mailing list para obter feedback das TUs e colegas membros da AUR, ou no fórum Creating & Modifying Packages. Você também pode procurar ajuda no canal IRC #archlinux-aur no Freenode.

Submitting packages

Users can share PKGBUILDs using the Arch User Repository. Veja as diretrizes de submissão AUR para detalhes.

Tradução da interface Web

Veja i18n.txt na árvore de fontes AUR para informações sobre como criar e manter a tradução da interface Web AUR.

FAQ

Que tipo de pacotes são permitidos na AUR?

Os pacotes na AUR são meramente “build scripts”, ou seja, receitas para construir binários para o pacman. Para a maioria dos casos, tudo é permitido, sujeito às diretrizes de utilidade e escopo, desde que você esteja em conformidade com os termos de licenciamento do conteúdo. Para outros casos, onde é mencionado que “você não pode vincular” a downloads, ou seja, conteúdos que não são redistribuíveis, você só pode usar o próprio nome do arquivo como fonte. Isto significa e requer que os usuários já tenham o código fonte restrito no diretório de construção antes de construir o pacote. Quando em dúvida, pergunte.

Como posso votar em pacotes na AUR?

Veja #Votar para pacotes.

O que é um Usuário de Confiança / TU?

Um Usuário de Confiança, em resumo TU, é uma pessoa escolhida para supervisionar o AUR e o repositório da comunidade. São eles que mantêm os PKGBUILDs populares na comunidade, e em geral mantêm o AUR funcionando.

Qual é a diferença entre o Arch User Repository e o repositório da comunidade?

O Arch User Repository é onde todos os PKGBUILDs que os usuários submetem são armazenados, e devem ser construídos manualmente com o makepkg. Quando PKGBUILDs recebem interesse comunitário suficiente e o suporte de uma TU, eles são movidos para o repositório da comunidade (mantido pelas TUs), onde os pacotes binários podem ser instalados com o pacman.

Foo no AUR está desatualizado; o que eu devo fazer?

Ver #Flagging packages out-of-date.

Entretanto, você mesmo pode tentar atualizar o pacote editando o PKGBUILD localmente. Algumas vezes, as atualizações não requerem mudanças no processo de compilação ou pacote, neste caso simplesmente atualizar o array pkgver ou source é suficiente.

Foo no AUR não compila quando eu executo o makepkg; o que devo fazer?

Você provavelmente está perdendo algo trivial, veja #Debugando o processo de compilação do pacote.

ERROR: Uma ou mais assinaturas PGP não puderam ser verificadas!; o que devo fazer?

Probável que você não tenha a(s) chave(s) pública(s) necessária(s) no seu chaveiro pessoal para verificar os arquivos baixados. Veja Makepkg#Assinatura verificando para detalhes.

Como eu crio uma PKGBUILD?

Consulte as diretrizes de submissão AUR#Regras de submissão, então veja criando pacotes.

Eu tenho um PKGBUILD que eu gostaria de submeter; alguém pode verificar se há algum erro?

Existem vários canais disponíveis para submeter o seu pacote para revisão; veja #Debugging the package build process.

Como colocar um PKGBUILD no repositório da comunidade?

Usualmente, são necessários pelo menos 10 votos para que algo se mova para a comunidade. Entretanto, se uma TU quiser suportar um pacote, ele será frequentemente encontrado no repositório.

Atingir o mínimo de votos requerido não é o único requerimento, tem que haver uma TU disposta a manter o pacote. TUs não são requeridas para mover um pacote para o repositório da comunidade mesmo que ele tenha milhares de votos.

Usualmente quando um pacote muito popular permanece na AUR é porque:

  • Arch Linux já tem outra versão de um pacote nos repositórios
  • Licença de Its proíbe a redistribuição
  • Ajude a recuperar os PKGBUILDs submetidos pelo usuário. AUR helpers não são suportados por definição.

Veja também Regras para Pacotes Entrando na comunidade Repo.

Como eu posso acelerar processos de compilação repetidos?

Veja Makepkg#Melhorando os tempos de compilação.

Qual a diferença entre pacotes foo e foo-git?

Muitos pacotes AUR vêm em versões de desenvolvimento “estáveis” e “instáveis”. Pacotes de desenvolvimento normalmente têm um sufixo que denota seu Sistema de Controle de Versão e não são destinados ao uso regular, mas podem oferecer novas funcionalidades ou correções de bugs. Como estes pacotes só baixam a última fonte disponível quando você executa makepkg, seu pkgver() na AUR não reflete as mudanças a montante. Da mesma forma, estes pacotes não podem executar um checksum de autenticidade em qualquer fonte VCS.

Veja também Manutenção do sistema#Utilizar pacotes de software comprovados.

Porque é que o foo desapareceu da AUR?

É possível que o pacote tenha sido adotado por uma TU e esteja agora no repositório da comunidade.

Os pacotes podem ser excluídos se não cumprirem as regras de submissão. Veja os arquivos aur-requests para o motivo da exclusão.

Nota: O repositório git para um pacote excluído normalmente permanece disponível. Veja AUR submission guidelines#Requests para detalhes.

Se o pacote costumava existir no AUR3, ele pode não ter sido migrado para o AUR4. Veja os repositórios #Git para pacotes AUR3 onde estes são preservados.

Como eu descubro se algum dos meus pacotes instalados desapareceu da AUR?

A maneira mais simples é verificar o status HTTP da página AUR do pacote:

$ comm -23 <(pacman -Qqm | sort) <(curl https://aur.archlinux.org/packages.gz | gzip -cd | sort)

Como posso obter uma lista de todos os pacotes AUR?

  • Utilizar aurpkglist de python3-aurAUR

Ver também

  • Interface Web AUR
  • AUR Mailing List
  • DeveloperWiki:AUR Cleanup Day

Deixe uma resposta

O seu endereço de email não será publicado.