O que é o AUR no Arch Linux e você deve usá-lo?
Publicados: 2023-06-23O AUR é uma das joias da coroa do Arch Linux, fornecendo milhares de pacotes de software adicionais. Mas esse repositório orientado ao usuário é seguro de usar ou você deve evitá-lo?
O que é o AUR?
Os perigos de usar o AUR
Segurança AUR: verifique os detalhes e a reputação do pacote
Verifique o conteúdo do PKGBUILD e outros arquivos
Você pode ajudar outros usuários do AUR
O que é o AUR?
O AUR (Arch User Repository) é um repositório de software voltado para a comunidade que fornece mais de 85.000 pacotes de software para usuários do Arch Linux. Ao contrário de outros repositórios do Arch, como os repositórios core, extra e multilib, o AUR não hospeda pacotes prontos para instalação. Na verdade, ele não hospeda arquivos binários ou software empacotado.
O AUR hospeda arquivos de compilação de pacotes, chamados PKGBUILDs. Esses são scripts de shell executados pela ferramenta makepkg
do Arch. Quando makepkg
é executado, ele procura um arquivo chamado “PKGBUILD”. Se encontrar um, ele o abre e segue as instruções contidas nele para criar um arquivo de pacote de software em seu computador. Se você estiver familiarizado com a compilação na linha de comando, um arquivo PKGBUILD e makepkg
trabalham juntos de maneira semelhante a um MAKEFILE e o utilitário make
.
As instruções PKGBUILD baixam arquivos de código-fonte e outros arquivos necessários para criar o arquivo do pacote. A ferramenta pacman
é chamada automaticamente para instalar o software a partir do arquivo do pacote.
Correndo o risco de introduzir alguma confusão, alguns pacotes AUR entregam binários pré-compilados. Mas esses binários não estão hospedados no AUR, eles estão armazenados em outro lugar na internet. A entrada AUR para esses pacotes contém apenas um arquivo PKGBUILD que baixa o binário pré-compilado para o seu computador.
O AUR permite que qualquer pessoa crie um PKGBUILD para um software que gostaria de disponibilizar para outros usuários do Arch. Estes podem ser pacotes de código aberto ou fechado, ou mesmo software comercial. Pacotes AUR que obtêm votos de usuários suficientes podem ser promovidos a um repositório regular do Arch chamado repositório da comunidade.
O problema com o AUR torna-se aparente quando você o resume ao básico. É uma coleção de scripts de usuários aleatórios da Internet. E eles gostariam que você os executasse em seu computador.
Para mitigar os riscos, os scripts carregados são revisados por voluntários qualificados e respeitados, conhecidos como usuários confiáveis. Os usuários confiáveis inspecionam e testam os PKGBUILDS e removem qualquer um que contenha erros perigosos ou intenções maliciosas.
RELACIONADO: Como atualizar o Arch Linux
Os perigos de usar o AUR
É uma ocorrência muito rara, mas às vezes as coisas escapam da rede, apesar da diligência dos usuários confiáveis. Em 2015, um script Steam da Valve Software apagava seu diretório inicial se você tivesse movido anteriormente o diretório Steam para um novo local.
Mais sinistro foi o incidente em 2005, quando um pacote AUR órfão foi adquirido por um novo mantenedor que deliberadamente adicionou código malicioso ao arquivo PKGBUILD. Esses exemplos são antigos e incomuns, mas as mesmas coisas podem acontecer novamente.
Claro, se você for suficientemente habilidoso, você mesmo pode revisar o conteúdo do arquivo PKGBUILD. Essa transparência é um dos pontos fortes do AUR, mas requer conhecimento de script suficiente para se beneficiar dela. E isso cobre apenas o próprio arquivo PKGBUILD. Se ele puxar uma grande quantidade de código-fonte do aplicativo, teoricamente isso também deve ser verificado.
Outros perigos no uso do AUR são baseados na distribuição. Nem todas as distribuições baseadas no Arch são suficientemente parecidas com o Arch para que o AUR funcione perfeitamente. O AUR assume que está sendo instalado no Arch Linux genuíno e em uma versão totalmente corrigida e atualizada. O Manjaro, por exemplo, não oferece suporte oficial ao AUR, embora seja baseado no Arch.
Mas, dado que sua distribuição suporta o AUR, o que você pode fazer para ter certeza de que está usando-o da forma mais segura possível, quer você entenda o código-fonte e os scripts de shell ou não?
Segurança AUR: verifique os detalhes e a reputação do pacote
Mesmo sem revisões de código, há etapas que você pode seguir para ajudá-lo a decidir se pode confiar em um pacote AUR.
Encontre seu pacote no AUR
Há uma página no AUR para cada pacote. A página da Web do pacote descreve o pacote, quais dependências ele possui, quais pacotes dependem dele e outras informações úteis. Comece sua investigação acessando o AUR e procurando seu pacote.
Qual é a sua reputação?
Os pacotes podem ser votados pelos usuários e também há uma pontuação de popularidade atribuída a cada pacote. Quanto mais votos e maior a popularidade, melhor. Isso significa que o pacote é bem conhecido e amplamente utilizado. Em outras palavras, é um pacote respeitável.
A reputação do pacote é uma boa indicação de sua confiabilidade. Quanto mais pessoas o usarem e votarem nele, mais confortável você se sentirá em usá-lo.
Confira as datas das atividades
Na seção “Detalhes do pacote”, você verá seus votos, pontuação de popularidade e duas datas. Uma é quando os pacotes foram introduzidos pela primeira vez no AUR e a segunda é quando o pacote foi atualizado pela última vez.
A data da “última atualização” informará se o pacote está sendo mantido ativamente. Pacotes que estão inativos há muito tempo devem ser tratados com cuidado.
O URL upstream é um local válido?
Verifique também o “Upstream URL” e verifique se ele vai para uma página da Web ou repositório de código válido para o pacote ou projeto. Se não, algo está errado.
Leia os comentários do usuário
Há comentários de usuários ao pé de cada página do AUR. Estes podem se estender por muitas páginas. Veja o que outros usuários estão dizendo sobre o pacote e que tipo de perguntas eles fazem. Veja também quais soluções são oferecidas para os problemas levantados. Há algum comentário recente? Este pacote ainda tem uma base de usuários ativa?
Registre-se e participe
Se você se registrar no AUR e criar uma conta gratuita, poderá deixar comentários e fazer perguntas. Além disso, use outros recursos como fóruns e subreddits para perguntar sobre o pacote.
Mesmo que você não entenda scripts de shell, ainda há algumas coisas que você pode verificar.
Verifique o conteúdo do PKGBUILD e outros arquivos
Uma maneira comum de acessar o AUR é com uma linha de comando “ajudante do AUR”, como yay
, mas você também pode usar o AUR de maneira prática e manual.
Os bons ajudantes do AUR oferecem a opção de inspecionar o arquivo PKGBUILD, interrompendo a instalação se você não quiser continuar. No processo manual, você procura o pacote no AUR e baixa o arquivo PKGBUILD e o inspeciona antes de usá-lo. Se você quiser prosseguir depois de revisá-lo, execute makepkg
manualmente.
É uma boa ideia instalar pelo menos um pacote manualmente, para que você conheça a mecânica do que o auxiliar AUR está fazendo em segundo plano. Usaremos o auxiliar yay AUR como exemplo.
O pacote foi enviado pela primeira vez em 2016 e foi atualizado pela última vez em maio de 2023. No momento da redação, essa é uma atualização muito recente. Também notável é que o remetente original, o mantenedor atual e a última pessoa a empacotar o software são todos a mesma pessoa. Essa continuidade é um bom sinal.
Clique no link URL “Git Clone URL” na seção “Package Details” para copiá-lo para a área de transferência.
Em uma janela de terminal, digite “git clone”, um espaço e pressione Shift+Ctrl+V para colar o URL na linha de comando. Pressione “Enter” para iniciar o download.
git clone https://aur.archlinux.org/yay.git
Quando o download estiver concluído, mude para o novo diretório “yay”.
cd sim
Vamos ver quais arquivos temos.
ls
Há um único arquivo, o arquivo PKGBUILD. Freqüentemente, há um ou dois arquivos auxiliares adicionais. Olhe através deles também. Usaremos less
para ler nosso arquivo único.
menos PKGBUILD
Quais URLs o arquivo PKGBUILD usa?
Um arquivo PKGBUILD bem formado que segue as convenções criará variáveis para conter as URLs que ele usa. Isso nos dá uma lista organizada no topo do arquivo das URLs que o PKGBUILD referenciará. Neste caso, há apenas um.
Podemos ver que ele está apontando para uma página do GitHub para o projeto yay
.
A página do GitHub pertence a um usuário com o mesmo nome do mantenedor listado na página do AUR para este pacote. Estas são duas boas indicações de que este é um pacote seguro.
Mas vamos continuar e olhar um pouco mais fundo.
Procure pelos comandos de download
Use o recurso less
search para pesquisar no arquivo os usos de wget
ou curl
. Ambas as ferramentas podem ser usadas para recuperar arquivos remotos. Um PKGBUILD bem-comportado não deve ter necessidade de tal atividade.
Se você encontrar alguma ocorrência, trate-a como uma bandeira vermelha e não instale o pacote até ter certeza de que é benigno. Qual é a URL que os comandos wget
ou curl
estão referenciando? Eles parecem legítimos e relacionados ao pacote?
Se você pode obter a confirmação de uma fonte confiável de que o PKGBUILD é confiável e foi escrito de uma forma que não segue as convenções, você ainda pode optar por instalá-lo.
Procure por rm, mv e outros comandos perigosos
Da mesma forma, não há necessidade de um arquivo PKGBUILD conter os comandos rm
ou mv
, nem eles precisam fazer referência a nada no diretório “/dev”. Se o PKGBUILD chamar diretamente pacman
, ou mencionar systemctl
, systemd
ou qualquer outro componente vital do sistema, como grub
, trate o arquivo PKGBUILD como perigoso e não o execute.
Você pode executar as etapas que usamos até agora, mesmo que não consiga ler scripts de shell. Se você conhece algum script de shell, pode revisar o código real no PKGBUILD.
Desconfie de código ofuscado
As pessoas que escrevem códigos mal-intencionados geralmente tentam ocultar suas intenções, ofuscando-as. Eles usam uma sintaxe minimalista, concisa e impenetrável, por isso é difícil decifrar o que eles estão tentando fazer. Se você vir alguma linha que use redirecionamento ou chame sed
ou awk
, trate-a como suspeita.
Copiar essas linhas e soltá-las em um analisador on-line, como o Explainshell.com, irá descompactá-las para que você possa ver o que elas realmente fazem. Se você se deparar com uma confusão densa de colchetes, ponto-e-vírgula e e comercial, vale a pena usar um analisador on-line para verificar novamente se você interpretou corretamente o que a linha está tentando fazer. Mas, em geral, código difícil de ler é um sinal de alerta.
Seu /home deve ser seu castelo
As compilações e compilações do PKGBUILD ocorrem em um ambiente chroot
.
Esses são mini sistemas de arquivos isolados que permitem aos desenvolvedores processos de sandbox, limitando seu acesso ao restante do sistema de arquivos do computador e reduzindo o acesso a outros comandos do sistema.
Se o PKGBUILD estiver manipulando diretamente seu diretório inicial, trate isso como um sinalizador de aviso. Certifique-se de entender completamente o que está fazendo antes de decidir executá-lo.
Você pode ajudar outros usuários do AUR
Com pacotes extremamente populares, é muito provável que você esteja seguro. Devido ao grande número de usuários, os problemas são detectados e relatados mais rapidamente. Você pode fazer sua parte relatando quaisquer problemas que encontrar e votando em bons pacotes para melhorar sua reputação.
Se você descobrir que há um problema com um pacote que faz com que você não queira instalá-lo, poderá ficar em apuros porque precisava desse pacote. Um caminho a seguir é pedir nos fóruns sugestões de outros pacotes que possam atender a essa necessidade específica.
O Linux geralmente tem muitas maneiras de esfolar qualquer gato.
RELACIONADO: Como instalar o Arch Linux a partir de uma GUI