Como instalo pacotes do AUR?

61

O Arch Linux possui o AUR (Arch User Repository), uma coleção de pacotes criados pelo usuário. Como instalo esses pacotes no Arch Linux ARM?

Ghanima
fonte
2
Parece que existem muitos pacotes aur já fornecidos pelo repositório "aur". Eu encontrei por acidente. pacman -S yourpackage pode realmente funcionar. Ele funciona com cower e gmrender-resurrect-git, por exemplo.
EnigmaticPhysicist

Respostas:

53

De acordo com a página Construindo Pacotes no Arch Linux ARM, você precisa.

  1. Instale os fundamentos da construção. Isso é necessário para compilar pacotes no Arch Linux ARM.

    $ sudo pacman -S kernel26-headers file base-devel abs
    
  2. Obtenha o PKGBUILD. Você precisa baixar o tarball que deseja. Você pode encontrar os tarballs para programas no AUR .

  3. Faça os pacotes. Em seguida, você precisa executar makepkgpara gerar um pacote que o pacman pode instalar.

    $ makepkg -Acs
    

    A -Aopção ignora a arquitetura Arch de destino. A -copção limpa o diretório após a conclusão makepkge -sinstala as dependências necessárias.

    É aconselhável que você NÃO execute makepkgcomo root, pois isso pode causar danos permanentes ao seu sistema. Se você realmente precisa executá-lo como root, use a --asrootopção

  4. Instale o pacote. makepkgdeve ter criado um arquivo no diretório com o tipo de arquivo .pkg.tar.xz. Você deve instalar este pacote usando a -Uopção com pacman.

    $ sudo pacman -U x.pkg.tar.xz
    

    Certifique-se de substituir x.pkg.tar.xzpelo nome do pacote real.


fonte
Construir pacotes manualmente definitivamente não é recomendado para usuários iniciantes. De fato, todos devem usar Yaourt. Isso torna todo o processo simples.
Jivings
Você ainda precisa desses pacotes e editar o PKGBUILD para compilar para o armv6h arch.
Anglepoise
5
@Jivings Na verdade, todo o motivo pelo qual yaourt e outros auxiliares do AUR não estão no repositório oficial é que você deve aprender a instalar pacotes estrangeiros manualmente antes de usar uma ferramenta automatizada.
PyRulez
2
O pacote 'abs' não está presente no repositório
dmnc 4/17/17
o kernel26-headersainda é real? Não encontrou nada sobre isso com o google. E o grupo base-develcontém file.
user3123159
34

A solução mais fácil é usar o Yaourt (outra ferramenta de repositório de usuários) .

Você pode instalar com:

pacman -S yaourt

E depois sincronize com o AUR:

yaourt -Syy

Você pode procurar pacotes AUR:

yaourt package-name

O que fornecerá avisos interativos para instalação.

Ou se você souber exatamente o nome do pacote:

yaourt -S package-name

A maioria dos comandos pacman são os mesmos para yaourt.

Jivings
fonte
Qual é a diferença entre pacmane yaourt?
Alex Chamberlain
Yaourt também verifica o AUR e os repositórios oficiais. Os pacotes AUR também têm mais possibilidades de personalização.
Jivings
Isso não funciona mais. Qual é a solução oficial?
Tekknolagi
2
pacman -S yaourtnão funciona e eu não posso adicionar archlinuxfrcomo aparentemente eles não hospedamarmv6h
tekknolagi
11
O @tekknolagi yaourtcostumava estar no repositório principal do Arch Arm. Talvez eles o tenham removido ... Mas você ainda pode construí-lo a partir da fonte, o que é explicado no artigo do AUR no Arch Wiki. E há um arquivo de pacote aqui . Espero que ajude!
Jivings
10

Todas as respostas acima estão desatualizadas. Minha resposta não é muito boa, mas espero evitar a questão de ficar desatualizado.

O wiki oficial explica, em detalhes, como alguém instala / constrói um pacote que não faz parte do pacman (packer e yaourt a partir desta data).

O packer e o yaourt estão sinalizados como desatualizados no AUR. (Isso pode mudar no futuro).

PPPaul
fonte
Boa resposta! Eu recomendo usar o makepkg -si também (depois de verificar o arquivo PKGBUILD) #
smoothware
7

Eu uso o empacotador para esse fim, que na minha opinião é uma alternativa mais rápida ao yaourt.

Basta adicionar estas duas linhas ao seu /etc/pacman.conf:

[archlinuxfr]
Server = http://repo.archlinux.fr/$arch

Em seguida, você pode instalar / atualizar o empacotador via pacman:

# pacman -Sy packer

E use o empacotador da mesma maneira que você usa o pacman:

$ packer -S some_aur_package

Além disso, se você não deseja atualizar todos os pacotes, incluindo os do AUR:

$ packer -Syu

O Packer executará primeiro pacman -Syupara atualizar os pacotes dos repositórios oficiais, depois atualizará todos os pacotes AUR.

brkt
fonte
4

IMPORTANTE! yaourté inseguro e reprovado de acordo com o wiki: https://wiki.archlinux.org/index.php/AUR_helpers

Embora a resposta do @Jivings tenha sido a melhor em `12, eu recomendaria instalar um dos gerenciadores de pacotes de arco mais seguros e com mais recursos (e eu sugiro que alguém atualize a resposta do @Jivings, pois ela tem mais visibilidade).

Eu estou usando aurmane cavar. Possui todos os recursos, é seguro e o CLI funciona quase exatamente como o pacman. Para instalar:

cd ~/Downloads
git clone https://aur.archlinux.org/aurman.git
cd aurman
makepkg -Acs
# Change xxx below to downloaded version
sudo pacman -U aurman-xxx.pkg.tar.xz

Em seguida, você pode seguir um guia pacman quase exatamente, mas usando em aurmanvez de pacman. O seguinte guia foi retirado de https://www.digitalocean.com/community/tutorials/how-to-use-arch-linux-package-management e eu comecei:


Começando

O Arch Linux fornece recursos de gerenciamento de pacotes semelhantes aos encontrados em outras distribuições modernas do Linux. Este é um guia para operações comuns de gerenciamento de pacotes.

Antes de prosseguir, verifique se os bancos de dados do pacote estão atualizados com:

sudo pacman -Sy

Procurando

Favorecendo a brevidade à intuitividade, a maioria das operações de gerenciamento de pacotes no Arch Linux aparece no formato:

pacman -<a-z><a-z>.

Por exemplo, o comando normal para pesquisar repositórios pacman é

pacman -Ss <package> 

...

Como alternativa, você pode usar pacman -Qs com a desvantagem de não destacar cores.

pacman -Qs linux

Se você deseja destacar cores com pacman -Ss, pode descomentar Color em /etc/pacman.conf. No entanto, ele destaca coisas diferentes da pesquisa de pacs; portanto, você pode tentar as duas e ver qual delas gosta mais.

sudo vi /etc/pacman.conf

...
# Misc options
#UseSyslog
Color
#TotalDownload
CheckSpace
#VerbosePkgLists
...

Obtendo informações

pacman -Qi displays basic information about an installed package.

pacman -Qi linux

Name           : linux
Version        : 3.8.4-1
Description    : The linux kernel and modules
Architecture   : x86_64
URL            : http://www.kernel.org/
Licenses       : GPL2
Groups         : base
Provides       : kernel26=3.8.4
Depends On     : coreutils  linux-firmware  kmod  mkinitcpio>=0.7
Optional Deps  : crda: to set the correct wireless channels of your country
Required By    : None
Optional For   : None
Conflicts With : kernel26
Replaces       : kernel26
Installed Size : 64728.00 KiB
Packager       : Tobias Powalowski <[email protected]>
Build Date     : Wed Mar 20 21:16:17 2013
Install Date   : Fri Mar 29 01:02:14 2013
Install Reason : Explicitly installed
Install Script : Yes
Validated By   : Unknown

Se pacman -Qi não passar nenhum argumento, ele retornará todos os pacotes no sistema. Você pode pesquisar essa saída para obter informações especializadas sobre pacotes instalados.

Por exemplo, se você deseja obter cada pacote e seu tamanho:

pacman -Qi | grep -e "Name" -e "Installed Size"

Name           : a52dec
Installed Size : 244.00 KiB
Name           : aalib
Installed Size : 768.00 KiB

...

Enquanto o pacman -Qi fornece informações sobre pacotes instalados, o pacman -Si consulta o banco de dados para obter as informações recuperadas mais recentemente sobre um pacote.

pacman -Si linux

pacman -Ql lista todos os arquivos associados a um pacote.

pacman -Ql vi

vi /usr/
vi /usr/bin/
vi /usr/bin/edit
vi /usr/bin/ex
vi /usr/bin/vedit
vi /usr/bin/vi

...

O nome do pacote em cada linha pode tornar a saída mais difícil de usar em um script. pacman -Qlq (ou seja, "lista de consultas pacman, quiet") não imprimirá o nome do pacote.

pacman -Qlq vi

/usr/
/usr/bin/
/usr/bin/edit
/usr/bin/ex
/usr/bin/vedit
/usr/bin/vi

...

Você pode usar pacman -Qlq | grep bin para encontrar todos os arquivos desse pacote que estão em uma pasta bin (e, portanto, são provavelmente arquivos executáveis). Isso é útil quando o comando associado a um pacote é diferente do nome do pacote.

pacman -Qql pacman | grep bin

Instalando

A maneira típica de instalar ou atualizar um pacote padrão é pacman -S.

sudo pacman -S <package>

Os pacotes geralmente têm um padrão semelhante em seus nomes. Parênteses podem ser usados ​​como um atalho.

sudo pacman -S lua-{sec,socket,zlib}

Às vezes, você pode querer baixar apenas um pacote para fins de arquivamento sem instalá-lo. pacman -Sw fará o download de um pacote para a pasta cache.

sudo pacman -Sw <package>

Se um pacote tiver sido baixado ou se você souber o URL, poderá instalá-lo diretamente.

sudo pacman -U <package_path>

Atualizações

Como o pacman gira em torno da idéia de "sincronizar" um pacote com o repositório remoto, pacman -Sele atualizará um pacote se ele já estiver instalado.

Pacman pode listar pacotes desatualizados.

pacman -Qu

Infelizmente, ele não exibe a versão do pacote no repositório, portanto, você não poderá dizer como está desatualizado cada pacote. Se isso for importante para você, convém procurar gerenciadores de pacotes de terceiros ou escrever um script que amarre a versão do pacote obtida de pacman -Qi e pacman -Si.

Você pode obter a versão do pacman -Qi ou pacman -Si usando uma expressão regular.

pacman -Qi linux | grep "Version" | sed 's/^Version\s*:\s//'

3.8.4-1

E, em seguida, escreva um script que mostre as versões lado a lado.

for i in $(pacman -Qqu)
do
  printf "$i: "
  printf "$(pacman -Qi "$i" | grep 'Version' | sed 's/^Version\s*:\s//') "
  echo   "$(pacman -Si "$i" | grep 'Version' | sed 's/^Version\s*:\s//')"
done

O Pacman fornece uma maneira de atualizar todos os seus pacotes de uma só vez, mas não é recomendado porque o Arch é uma distribuição de lançamento contínuo. Se surgirem problemas, pode levar tempo para determinar quais são as causas.

sudo pacman -Syu

Downgrades

O Arch Linux não mantém oficialmente pacotes obsoletos. Em vez disso, você precisará confiar no cache do pacote e em locais como o Arch Rollback Machine. Cache

Todo pacote baixado com pacman é armazenado em / var / cache / pacman / pkg.

ls /var/cache/pacman/pkg | grep linux

linux-3.11.6-1-x86_64.pkg.tar.xz
linux-3.9.7-1-x86_64.pkg.tar.xz

...

Se você deseja reverter para um pacote em seu cache, basta instalá-lo diretamente.

pacman -U <path_to_cached_file>

Máquina de reversão de arco

A Arch Rollback Machine é uma coleção de capturas instantâneas do espelho oficial do Arch Linux. No momento da redação deste artigo, ele remonta a quatro meses. O ARM está atualmente hospedado em http://seblu.net/a/arm , embora isso possa mudar no futuro.

Os pacotes ARM podem ser instalados remotamente usando pacman -U.

pacman -U http://seblu.net/a/arm/2013/08/31/extra/os/x86_64/apache-2.2.25-1-x86_64.pkg.tar.xz

Não é exatamente conveniente procurar pacotes antigos no ARM. Felizmente, existem ferramentas que facilitam isso:

downgrade
downgrader

Eles pesquisam versões mais antigas no cache e no ARM. Seu uso é o que você esperaria.

downgrade <package>
downgrader <package>

Ambas as ferramentas estão no AUR, portanto, a maneira mais fácil de instalá-las será com um ajudante como o yaourt.

Nota: O ARM é um projeto não oficial e foi fechado no passado, portanto, pode ser uma boa ideia evitar limpar o cache, caso o ARM fique inativo ou mude de local novamente. Se você deseja lançar seu próprio ARM, parece haver um projeto NodeJS no github. Remoção

Remova um pacote, desde que nada dependa dele. Deixe suas dependências instaladas.

sudo pacman -R <package>

Remova um pacote, desde que nada dependa dele. Remova suas dependências que não são necessárias por mais nada.

sudo pacman -Rs <package>

Forçar a remoção de um pacote. Este é o comando que você procurará para apenas limpar o pacote do seu sistema e reinstalar quando reinstalar sozinho não for suficiente.

sudo pacman -Rdd <package>
mjd2
fonte
Para remover completamente um pacote:aurman -Rsn <package>
mjd2
0

A primeira coisa que você precisa fazer é baixar o pacote do AUR. Para fazer isso: git clone http://aur.archlinux.org/package.gitMesmo que pareça que você está baixando um .gitarquivo, a saída será um diretório.

cd packagepara encontrar um PKGBUILDarquivo. Isso será usado na próxima etapa.

Por fim, execute este comando para compilar e instalar o pacote que você acabou de baixar. makepkg -Sri. Se você deseja uma explicação abrangente do significado de cada uma dessas letras, pode executar makepkg -honde elas serão explicadas.

Ashish
fonte
2
Bem-vindo ao Stack Exchange, Ashish .. você pode elaborar um pouco da sua resposta - por que as opções acima precisam ser feitas, o que as declarações fazem, etc.?
Phil