Arch User Repository (Português)

From ArchWiki
Revision as of 22:36, 12 August 2013 by Swatquest (Talk | contribs) (FAQ)

Jump to: navigation, search

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary heading Template:Article summary link Template:Article summary link Template:Article summary end

O Arch User Repository (AUR), ou Repositório de Usuário do Arch, é um repositório dirigido pela comunidade para usuários do Arch. Ele contém descrições de pacotes (PKGBUILDs) que permitem a você compilar um pacote de um fonte com o makepkg e depois instalar via pacman. O AUR foi criado para organizar e compartilhar novos pacotes da comunidade e ajudar a acelerar a inclusão dos pacotes populares no repositório [community]. Este documento explica como usuários podem acessar e utilizar o AUR.

Um bom número de novos pacotes que entram para os repositórios oficiais iniciam no AUR. No AUR, usuários são capazes de contribuir com seus próprios pacotes (PKGBUILD e arquivos relacionados). A comunidade do AUR tem a capacidade de votar a favor ou contra os pacotes no AUR. Se um pacote se torna popular o bastante -- desde que tenha uma licença compatível e uma boa técnica de empacotamento -- ele pode ser colocado no repositório da [community] (diretamente acessível pelo pacman ou abs).

Começando

Os usuários podem pesquisar e baixar os PKGBUILDs da Interface Web do AUR. Esses PKGBUILDs podem ser construídos dentro dos pacotes instaláveis usando makepkg, e depois instalados usando pacman.

  • Certifique-se de que o grupo de pacotes base-devel está instalado (pacman -S base-devel).
  • Leia o restante deste artigo para mais informações e um pequeno tutoria sobre a instalação de pacotes do AUR
  • Visite a Interface Web do AUR para se informar sobre acontecimentos e atualizações. Lá você também encontrará estatísticas e uma lista atualizada dos mais novos pacotes disponíveis no AUR.
  • Veja o #FAQ para respostas das questões mais comuns.
  • Você pode querer ajustar /etc/makepkg.conf para melhor otimizar a prioridade do seu processador para a construção dos pacotes do AUR. Uma melhora significante nos tempos de compilação pode ser realizada nos sistemas com multi-processadores ao ajustar a variável MAKEFLAGS. Os usuários podem também habilitar otimizações específicas de hardware no GCC via a variável CFLAGS. Veja o makepkg.conf para mais informações.

História

Os itens a seguir são listados por motivos históricos, somente. Eles foram substituídos pelo o AUR e não estão mais disponíveis.

No começo, havia ftp://ftp.archlinux.org/incoming e as pessoas contribuíam simplesmente enviando o PKGBUILD, os arquivos suplementares e o próprio pacote construído para o servidor. O pacote e os arquivos associados mantiveram-se até um Mantenedor de pacotes ver o programa e adotá-lo.

Em seguida, o Trusted User Repositories nasceu. Certos indivíduos na comunidade foram habilitados a hospedar seus próprios repositórios para qualquer um usar. O AUR expandiu nesta base, com o objetivo de ser mais flexível e usável. Na verdade, os mantenedores do AUR ainda são referidos como TUs (Trusted Users).

Pesquisando

A Interface Web do AUR pode ser encontrada aqui e uma interface adequada para acessar o AUR por meio de script (por exemplo) pode ser encontrada aqui

As consultas pesquisam por nomes de pacotes e descrições por meio de uma comparação tipo MySQL. Isto permite critérios de pesquisa mais flexíveis (ex.: tentar pesquisar por 'tool%like%grep' em vez de 'tool like grep'). Se você precisa pesquisar por uma descrição que contenha '%', use '\%' como caractere de escape.

Instalando pacotes

A instalação de pacotes do AUR é um processo relativamente simples. Essencialmente:

  1. Adquira o tarball contendo o PKGBUILD e quaisquer outros arquivos necessários.
  2. Extraia o tarball (preferivelmente em uma pasta especificamente para compilações do AUR).
  3. Execute makepkg no diretório onde os arquivos foram salvos ("makepkg -s" vai automaticamente resolver as dependências com o pacman)
  4. Instale o pacote resultante com o pacman:
# pacman -U /caminho/para/pkg.tar.xz


AUR Helpers (Auxiliares do AUR) adicionam um acesso transparente ao AUR. Suas funcionalidades pode variar, mas eles podem facilitar a pesquisa, aquisição, compilação e instalação de PKGBUILDs encontrados no AUR. Todos esses scripts podem ser encontrados no AUR.

Nota: Não há e nunca haverá um mecanismo oficial para instalação do material compilado do AUR. Todos os usuários devem estar familiarizados com o processo de compilação.

O que segue abaixo é um exemplo detalhado da instalação de um pacote chamado "foo".

Pré-requisitos

Primeiro, certifique-se de que as ferramentas necessárias estão instaladas. O grupo do pacote base-devel deve ser suficiente; ele inclui o make e outras ferramentas necessárias para a compilação do fonte.

Atenção: Os pacotes do AUR presumem que o base-devel está instalado e não listarão os membros deste grupo como dependências, mesmo se os pacotes não puderem ser compilador sem eles. Por favor, certifique-se de que este grupo está instalado antes de se queixar sobre problemas de compilação.
# pacman -S base-devel

Em seguida, escolha um diretório de compilação apropriado. Um diretório de compilação é simplesmente um diretório no qual o pacote será criado ou "compilado", podendo ser qualquer diretório. Exemplos dos diretórios mais comuns são:

~/builds

ou se estiver usando o ABS (o Arch Build System):

/var/abs/local

Para mais informações sobre o ABS, leia o artigo Arch Build System. O exemplo usará ~/builds como o diretório de compilação.

Obter arquivos para compilação

Encontre o pacote no AUR. Isso pode ser feito usando o recurso de pesquisa (o campo de texto no topo da Página inicial do AUR). Ao clicar no nome do aplicativo na lista de resultados de pesquisa, será mostrada uma página de informações sobre o pacote. Leia atentamente a descrição para confirmar que esse é o pacote desejado, veja quando o pacote foi atualizado pela última vez e leia quaiquer comentários.

Baixe os arquivos necessários para compilação clicando no link "Baixar o tarball" em "Ações do Pacote", no canto direito da tela. Esse arquivo deve ser salvo no diretório de construção, ou copiado para esse diretório, depois do download. Neste exemplo, o arquivo é chamado "foo.tar.gz" (o formato padrão é "pkgname".tar.gz, se ele foi submetido do modo certo).

Compile o pacote

Extraia o tarball. Mude o diretório para o de compilação, se já não estiver lá, e extraia os arquivos de compilação

$ cd ~/builds
$ tar -xvzf foo.tar.gz

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

Atenção: Verifique com atenção todos os arquivos. Entre no diretório recém-criado, e procure cuidadosamente por comandos maliciosos no PKGBUILD e em qualquer arquivo .install. PKGBUILDs são scripts em bash contendo funções para serem executadas pelo makepkg: essas funções podem conter qualquer comando válido ou sintaxe Bash válida. Então, é totalmente possível que um PKGBUILD contenha comandos perigosos por malícia ou por ignorância por parte do autor. Já que o makepkg usa fakeroot (e nunca deveria ser executado como root), ainda há um certo nível de proteção, mas você nunca deveria contar somente nisso. Em caso de dúvida, NÃO compile o pacote e procure ajuda nos fóruns ou na lista de discussão.
$ cd foo
$ nano PKGBUILD
$ nano foo.install

Crie o pacote. Depois de confirmar, manualmente, a integridade dos arquivos, execute makepkg como usuário normal no diretório de compilação.

$ makepkg -s

A opção -s usará o sudo para instalar qualquer dependência necessária. Se o uso do sudo for indesejável, instale antes as dependências você mesmo, e exclua a opção -s do comando acima.

Instalar o pacote

Instale o pacote usando o pacman. Um tarball deve ter sido criado, chamado:

<nome da aplicação>-<número da versão>-<'architecture>.pkg.tar.gz

Este pacote pode ser instalado usando o comando de "upgrade" do pacman:

# pacman -U foo-0.1-1-i686.pkg.tar.xz   

Esses pacotes instalados manualmente são chamados de pacotes "foreign" (extrangeiros) — pacotes cuja origem não advém de qualquer repositório conhecido pelo pacman. Para listar todos os pacotes extrangeiros:

$ pacman -Qm 
Nota: O exemplo acima é apenas um breve resumo do processo de compilação de pacotes. Uma visita as páginas do makepkg e do ABS fornecerá mais detalhes e é altamente recomendado (principalmente para usuários de primeira viagem).

Feedback

A Interface Web do AUR possui um espaço para comentários que permite aos usuários fornecer sugestões e feedback ao contribuidor do PKGBUILD. Evite colar patches ou PKGBUILDs na seção de comentários. Eles logo tornam-se obsoletos e terminam tomando muito espaço sem necessidade. Ao invés disso, envie por e-mail os arquivos ao mantenedor ou até mesmo use um pastebin.

Uma das atividades mais fáceis para todos os usuários do Arch é navegar no AUR e votar em seus pacotes prediletos, usando a interface online. Todos os pacotes são elegíveis para serem adotados por um TU (Trusted User) para a inclusão no repositório [community], e a contagem de votos é uma das coisas levadas em conta nesse processo; votar é do interesse de todos!


Compartilhando e mantendo pacotes

O usuário tem um papel essencial no AUR, que não pode desenvolver seu potencial sem o suporte, envolvimento e a contribuição da comunidade de usuários como um todo. O ciclio de vida de um pacote do AUR começa e termina com o usuário, e requer que o usuário contribua de várias formas.

Usuários podem compartilhar PKGBUILDs usando o Arch User Repository, o qual não contém pacote binário algum, mas permite aos usuários enviar PKGBUILDs, que podem ser baixados por outros. Esses PKGBUILDs são totalmente não-oficiais e não foram examinados completamente, então eles devem ser usados por sua conta e risco.

Enviando pacotes

Depois de se conectar à interface web do AUR, o usuário pode enviar um tarball em gzip (.tar.gz) de um diretório contendo arquivos de compilação para um pacote. O diretório dentro do tarball deve conter um PKGBUILD, quaisquer arquivos .install, patches, etc. (absolutamente nenhum binário). Exemplos do que um diretório deve conter pode ser visto dentro de /var/abs se Arch Build System tiver sido instalado.

O tarball pode ser criado com o seguinte comando:

$ makepkg --source

Note que esse é um tarball em gzip; supondo que você está submetendo ao AUR um pacote chamado libfoo, quando você criar o arquivo, ele deve parecer com:

# Lista do conteúdo de um tarball.
 $ tar tf libfoo-0.1-1.src.tar.gz
 libfoo/
 libfoo/PKGBUILD
 libfoo/libfoo.install

Ao enviar um pacote, deve-se observar as seguintes regras:

  • Verifique [core], [extra], e [community] a procura do pacote. Se ele está dentro de um desses repositórios em ALGUMA forma, NÃO envie o pacote (se o pacote atual está quebrado ou sem algum ter incluído algum recurso, favor criar um relatório de bug no FlySpray).
  • Verifique no AUR pelo pacote. Se ele já tem um mantenedor, alterações podem ser submetidas em comentários para chamar atenção do mantenedor. Se o pacote não tem um mantenedor, o pacote pode ser adotado e atualizado como precisar.
  • Verifique atentamente se o pacote que você está enviando está correto. Todos contribuidores devem ler e aderir aos Arch Packaging Standards quando estiver escrevendo PKGBUILDs. Isso é essencial para o funcionamento suave e sucesso como um todo do AUR. Lembre-se que você não vai ganhar nenhuma ou respeito de seus próximos gastando o tempo deles com PKGBUILDs ruins.
  • Pacotes que contém binários ou que são mal escritos podem ser deletados sem aviso.
  • Se você não tem certeza sobre o processo de empacotamento (ou de compilação/envio) de alguma forma, envie o PKGBUILD para a Lista de Discussão do AUR ou para sessões de AUR no forum para uma revisão pública antes de adicionar ao AUR.
  • Tenha certeza que o pacote é útil. Alguém mais vai querer esse pacote? Ele é extremamente especializado? Se mais do que poucas pessoas pensariam nesse pacote como útil, então é apropriado para ser submetido.
  • Adquira alguma experiência antes de enviar pacotes. Compile alguns pacotes para aprender o processo e depois envie.
  • Se você submeter um package.tar.gz com uma arquivo chamado 'package' nele, você vai receber uma mensagem de erro: 'Não foi possível alterar o diretório /home/aur/unsupported/package/package'. Para resolver isso, renomeie o arquivo 'package' para alguma coisa diferente. Por exemplo, 'package.rc'. Quando ele estiver instalado no diretório pkg você pode renomeá-lo de volta para 'package'.

Mantendo pacotes

  • Se você mantém um pacote e deseja atualizar o PKGBUILD do seu pacote, basta reenviá-lo.
  • Verifique os feedback e comentários de outros usuários e tente incorporar quaisquer melhorias que eles sugerirem; considere isso um processo de aprendizado!
  • Por favor, não simplesmente envie e depois esqueça dos pacotes! É trabalho do mantenedor manter o pacote, verificando atualizações e melhorando o PKGBUILD.
  • Se você não quer mais continuar mantendo o pacote por algum motivo, basta abandonar (disown) o pacote usando a interface web do AUR e/ou postar uma mensagem na Lista de Discussão do AUR.

Outras requisições

  • Requisições para abandono e requisições para remoção de pacotes devem ser enviadas para a lista de discussão aur-general direcionada para os TUs e outros usuários, para que seja decida pelos TUs.
  • Inclua o nome do pacote e a URL para a página do AUR, preferivelmente com uma nota de rodapé [1].
  • Requisições de abandono ("Disownment Requests") serão concedidas somente duas semanas após o atual mantenedor tenha sido contactado por e-mail e não havendo resposta dele.
  • Mesclagem de pacotes foi implementada. Os usuários têm que reenviar um pacote sob um novo nome e, então, podem requisitar a mesclagem (Merge Requests)de comentários e votos do pacote antigo para a lista de discussão.
  • Requisições de remoção (Removal Requests) precisam das seguintes informações:
    • Nome do pacote e a URL da página no AUR
    • Motivo para exclusão, com pelo menos uma nota curta
      Repare: Um comentário em um pacote não necessariamente demonstra de suficiente o motivo do porquê um pacote deve ser excluído. Isso porque assim que um TU realiza a exclusão, o único lugar que vai manter a tal informação será o e-mail na lista de discussão do aur-general.
    • Incluir detalhes de suporte, como, por exemplo, quando um pacote é fornecido por outro pacote, se você é o mantenedor do pacote, ele foi renomeado e o dono original concordou, etc.

Requisições de remoção podem ser negadas, caso em que você provavelmente será aconselhado a abandonar o pacote para a referência de um possível futuro mantenedor.

[community]

O repositório [community], mantido pelos Trusted Users, contém a maioria dos pacotes populares do UNSUPPORTED. Ele é habilitado por padrão no pacman.conf. Se desabilitado/removido, ele pode ser habilitado descomentando/adicionando essas duas linhas:

/etc/pacman.conf
...
[community]
Include = /etc/pacman.d/mirrorlist
...

[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 também podem ser acessados com o ABS. Alguns desses pacotes podem eventualmente serem movidos para os repositórios [core] ou [extra], caso os desenvolvedores considerem como crucial para a distribuição.

Usuários também podem acessar os arquivos de compilação do [community] editando o /etc/abs.conf e habilitando o repositório community no vetor REPOS.

Repositório Git

Um repositório Git do AUR é mantido por Thomas Dziedzic, contendo a história dos pacotes junto com outras coisas. É atualizado pelo menos uma vez por dia. Para clonar o repositório (várias centenas de MB):

$ git clone git://pkgbuild.com/aur-mirror.git

Mais informações: interface Web, readme, tópico no fórum.

FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ