O que é o AUR no Arch Linux e você deve usá-lo?

Logotipo do Arch Linux no site ArchWiki.

O AUR é uma das joias da coroa do Arch Linux, fornecendo milhares de pacotes de software adicionais. Mas esse repositório controlado pelo usuário é seguro para uso ou você deve evitá-lo?

O que é o AUR?

O AUR ( Arch User Repository ) é um repositório de software conduzido pela comunidade que fornece mais de 85.000 pacotes de software para usuários do Arch Linux. Ao contrário de outros repositórios 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 construção de pacote, chamados PKGBUILDs. Estes são scripts de shell executados pela makepkgferramenta Arch. Quando makepkgexecutado, 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 makepkgfunciona em conjunto de maneira semelhante a um MAKEFILE e ao makeutilitário.

As instruções do PKGBUILD baixam arquivos de código-fonte e outros arquivos necessários para criar o arquivo do pacote. A pacmanferramenta é chamada automaticamente para instalar o software do arquivo do pacote.

Correndo o risco de causar 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. Podem ser pacotes de código aberto ou fechado, ou até mesmo software comercial. Pacotes AUR que obtiverem votos suficientes dos usuários podem ser promovidos para um repositório Arch regular 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 que contenha erros perigosos ou intenções maliciosas.

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 apagou seu diretório inicial se você já tivesse movido o diretório Steam para um novo local.

Recomendado:  Análise do Edifier S1000W: alto-falantes ultraflexíveis que soam bem em qualquer lugar

Mais sinistro foi o incidente em 2005, quando um pacote AUR órfão foi assumido por um novo mantenedor que adicionou deliberadamente código malicioso ao arquivo PKGBUILD . Esses exemplos são antigos e incomuns, mas as mesmas coisas podem acontecer novamente.

Claro, se você tiver habilidade suficiente, poderá revisar o conteúdo do arquivo PKGBUILD você mesmo. 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 extrair uma grande quantidade de código-fonte do aplicativo, teoricamente isso também deverá ser verificado.

Outros perigos no uso do AUR são baseados na distribuição. Nem todas as distribuições baseadas em Arch são suficientemente semelhantes ao 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. Manjaro, por exemplo, não oferece suporte oficial ao AUR , embora seja baseado em 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, existem 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 do pacote descreve o pacote, quais dependências ele possui, quais pacotes dependem dele e outras informações úteis. Comece sua investigação indo ao AUR e procurando seu pacote.

A barra de pesquisa no site AUR

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 confiável.

Os detalhes do pacote AUR para os pacotes ayya, com os votos e números de popularidade destacados

A reputação da embalagem é uma boa indicação da sua confiabilidade. Quanto mais pessoas o usarem e votarem nele, mais confortável você se sentirá em usá-lo.

Verifique 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.

Os detalhes do pacote AUR para os pacotes ayya, com as datas do primeiro envio e da última atualização destacadas

A data da “Última atualização” informará se o pacote está sendo mantido ativamente. Pacotes que ficaram inativos por muito tempo devem ser tratados com cautela.

O URL upstream é um local válido?

Verifique também o “URL upstream” e verifique se ele leva a uma página da web ou repositório de código válido para o pacote ou projeto. Se isso não acontecer, algo está errado.

Os detalhes do pacote AUR para os pacotes ayya, com o URL upstream destacado

Leia os comentários do usuário

Existem comentários de usuários no final de cada página do AUR. Eles 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 as questões levantadas. Há algum comentário recente? Este pacote ainda possui uma base de usuários ativa?

Recomendado:  Sua assinatura do Netflix está subindo de preço novamente

Cadastre-se e participe

Se você se cadastrar 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 os scripts de shell, ainda há algumas coisas que você pode verificar.

Verifique o conteúdo do PKGBUILD e de outros arquivos

Uma maneira comum de acessar o AUR é com uma linha de comando “AUR helper”, como yay, mas você também pode usar o AUR de maneira prática e manual.

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 o 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 atualizado pela última vez em maio de 2023. No momento em que este artigo foi escrito, essa era 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 “Detalhes do pacote” 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.

clone do git https://aur.archlinux.org/yay.git

Clonando o arquivo yay PKGBUILD de seu repositório git

Quando o download for concluído, mude para o novo diretório “yay”.

CD, sim

Alterando diretórios para a pasta yay.

Vamos ver quais arquivos temos .

eu

Listando os arquivos recuperados com ls

Existe um único arquivo, o arquivo PKGBUILD. Freqüentemente, há um ou dois arquivos auxiliares adicionais. Dê uma olhada nisso também. Usaremos lesspara ler nosso único arquivo.

menos PKGBUILD

Iniciando o visualizador de arquivos less para abrir o arquivo yay PKGBUILD

Quais URLs o arquivo PKGBUILD usa?

Um arquivo PKGBUILD bem formado que segue as convenções criará variáveis ​​para armazenar as URLs que ele usa. Isso nos dá uma lista organizada no topo do arquivo de URLs que o PKGBUILD fará referência. Neste caso, há apenas um.

Iniciando o visualizador de arquivos less para abrir o arquivo yay PKGBUILD

Podemos ver que ele está apontando para uma página GitHub do yayprojeto.

A página GitHub pertence a um usuário com o mesmo nome do mantenedor listado na página AUR deste pacote. Estas são duas boas indicações de que este é um pacote seguro.

Recomendado:  Como fazer backup (e restaurar) perfis do Mozilla Firefox

Mas continuaremos e olharemos um pouco mais profundamente.

Procure comandos de download

Use o lessrecurso de pesquisa para pesquisar no arquivo os usos de wgetoucurl . Ambas as ferramentas podem ser usadas para recuperar arquivos remotos. Um PKGBUILD bem comportado não deveria ter necessidade de tal atividade.

Se você encontrar alguma ocorrência, trate-a como um sinal de alerta e não instale o pacote até ter certeza de que é benigno. Qual é o URL ao qual os comandos wgetou curlestão se referindo? Eles parecem legítimos e relacionados ao pacote?

Se você conseguir 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 poderá optar por instalá-lo.

Procure rm, mv e outros comandos perigosos

Da mesma forma, não há necessidade de um arquivo PKGBUILD conter os comandos rmou mv, nem eles devem fazer referência a nada no diretório “/dev”. Se o PKGBUILD chamar diretamente pacmanou mencionar systemctl, systemdou 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.

Tenha cuidado com códigos ofuscados

As pessoas que escrevem códigos maliciosos muitas vezes tentam esconder suas intenções, ofuscando-as. Eles usam uma sintaxe minimalista, concisa e impenetrável, por isso é difícil decifrar o que estão tentando fazer. Se você vir alguma linha que use redirecionamento ou chamada sedou awk, trate-a como suspeita.

Copiar essas linhas e colocá-las em um analisador on-line, como o explicashell.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 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 construções do PKGBUILD ocorrem em um chrootambiente .

Esses são minisistemas de arquivos isolados que permitem aos desenvolvedores processar processos em sandbox, limitando seu acesso ao restante do sistema de arquivos do seu computador e reduzindo seu 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 compreender totalmente o que ele 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 a 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, você pode se encontrar em uma situação difícil porque precisava desse pacote. Um caminho a seguir é pedir sugestões em fóruns de outros pacotes que possam satisfazer essa necessidade específica.

O Linux geralmente tem muitas maneiras de esfolar qualquer gato.