Come installo i pacchetti da AUR?


61

Arch Linux ha AUR (Arch User Repository), una raccolta di pacchetti creati dagli utenti. Come posso installare questi pacchetti su Arch Linux ARM?


2
Sembra che ci siano molti pacchetti aur già forniti attraverso il repository "aur". L'ho trovato per caso. pacman -S il tuo pacchetto potrebbe effettivamente funzionare. Funziona con cower e gmrender-resurrect-git, per esempio.
enigmatico

Risposte:


53

Secondo la pagina Pacchetti di costruzione di Arch Linux ARM, è necessario.

  1. Installa gli elementi essenziali della build. Questi sono necessari per compilare pacchetti su Arch Linux ARM.

    $ sudo pacman -S kernel26-headers file base-devel abs
    
  2. Ottieni il PKGBUILD. Devi scaricare il tarball che desideri. Puoi trovare i tarball per i programmi presso l' AUR .

  3. Crea i pacchetti. Successivamente è necessario eseguire makepkgper generare un pacchetto che pacman può installare.

    $ makepkg -Acs
    

    L' -Aopzione ignora l'architettura Arch di destinazione. Al termine, l' -copzione pulisce la directory makepkge -sinstalla le dipendenze necessarie.

    Si consiglia di NON eseguire makepkgil root come può causare danni permanenti al sistema. Se hai davvero bisogno di eseguirlo come root, usa l' --asrootopzione.

  4. Installa il pacchetto. makepkgdovrebbe aver creato un file nella directory con il tipo di file .pkg.tar.xz. È necessario installare questo pacchetto utilizzando l' -Uopzione con pacman.

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

    Assicurati di sostituire x.pkg.tar.xzcon il nome del pacchetto effettivo.


La creazione manuale di pacchetti non è assolutamente consigliata agli utenti inesperti. In effetti, tutti dovrebbero usare Yaourt. Rende l'intero processo semplice.
Jivings,

Hai ancora bisogno di quei pacchetti e di modificare PKGBUILD per compilare per armv6h arch.
Anglepoise

5
@Jivings In realtà, l'intera ragione per cui yaourt e altri aiutanti AUR non sono nel repository ufficiale è che dovresti imparare come installare manualmente pacchetti stranieri prima di utilizzare uno strumento automatizzato.
PyRulez,

2
Il pacchetto 'abs' non è presente nel repository
dmnc il

è kernel26-headersancora attuale? Non ho trovato nulla al riguardo con google. E il gruppo base-develcontiene file.
user3123159

34

La soluzione più semplice è quella di utilizzare Yaourt (Yet AnOther User Repository Tool) .

Puoi installare con:

pacman -S yaourt

E quindi sincronizzare con AUR:

yaourt -Syy

È quindi possibile cercare pacchetti AUR:

yaourt package-name

Che fornirà istruzioni interattive per l'installazione.

O se conosci esattamente il nome del pacchetto:

yaourt -S package-name

La maggior parte dei comandi di pacman sono gli stessi per il tuo soggiorno.


Qual è la differenza tra pacmane yaourt?
Alex Chamberlain,

Yaourt controlla anche l'AUR e i repository ufficiali. I pacchetti AUR hanno anche più possibilità di personalizzazione.
Jivings,

Questo non funziona più. Qual è la soluzione ufficiale?
tekknolagi,

2
pacman -S yaourtnon funziona e non posso aggiungere archlinuxfrcome apparentemente non ospitanoarmv6h
tekknolagi

1
@tekknolagi yaourtera nel repository principale di Arch Arm. Forse l'hanno rimosso .... Ma puoi ancora costruirlo dalla fonte, che è spiegato nell'articolo AUR su Arch Wiki. E c'è un file di pacchetto per questo qui . Spero che aiuti!
Jivings,

10

Tutte le risposte di cui sopra sono obsolete. La mia risposta non è molto buona, ma spero di evitare il problema di diventare obsoleto.

La wiki ufficiale spiega in dettaglio come si procede all'installazione / costruzione di un pacchetto che non fa parte di pacman (packer e yaourt a partire da questa data).

Sia packer che yaourt sono contrassegnati come non aggiornati in AUR. (questo potrebbe cambiare in futuro).


Buona risposta! Consiglio di usare anche makepkg -si (dopo aver controllato il file PKGBUILD)
smoothware

7

Uso il packer per questo scopo, che a mio avviso è un'alternativa più veloce al tuo sapore.

Aggiungi queste due righe al tuo /etc/pacman.conf:

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

Quindi è possibile installare / aggiornare il packer tramite pacman:

# pacman -Sy packer

E usa packer praticamente nello stesso modo in cui usi pacman:

$ packer -S some_aur_package

Inoltre, se non desideri aggiornare tutti i pacchetti compresi quelli dell'AUR:

$ packer -Syu

Packer verrà eseguito pacman -Syuper aggiornare i pacchetti dai repository ufficiali, quindi aggiornerà tutti i pacchetti AUR.


4

IMPORTANTE! yaourtè insicuro e deprecato secondo il wiki: https://wiki.archlinux.org/index.php/AUR_helpers

Mentre la risposta di @Jivings era la migliore in `12, consiglierei di installare uno dei gestori di pacchetti arch più sicuri e ricchi di funzionalità (e suggerisco a qualcuno di aggiornare la risposta di @Jivings in quanto ha più visibilità).

Sto usando aurmane scavare. Ha tutte le funzionalità, è sicuro e il cli funziona quasi esattamente come Pacman. Installare:

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

Quindi puoi seguire una guida pacman quasi esattamente ma usando al aurmanposto di pacman. La seguente guida è stata presa da https://www.digitalocean.com/community/tutorials/how-to-use-arch-linux-package-management e mi ha fatto iniziare:


Iniziare

Arch Linux offre funzionalità di gestione dei pacchetti simili a quelle presenti in altre moderne distribuzioni Linux. Questa è una guida alle operazioni comuni di gestione dei pacchetti.

Prima di procedere oltre, assicurarsi che i database dei pacchetti siano aggiornati con:

sudo pacman -Sy

Ricerca

Favorendo la brevità sull'intuitività, la maggior parte delle operazioni di gestione dei pacchetti in Arch Linux appaiono nel formato:

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

Ad esempio, il normale comando per la ricerca dei repository pacman è

pacman -Ss <package> 

...

In alternativa, puoi usare pacman -Qs con il rovescio della medaglia senza evidenziazione del colore.

pacman -Qs linux

Se si desidera evidenziare il colore con pacman -Ss, è possibile rimuovere il commento da Color /etc/pacman.conf. Evidenzia cose diverse rispetto a pacsearch, tuttavia, quindi potresti voler provare entrambi e vedere quale ti piace di più.

sudo vi /etc/pacman.conf

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

Ottenere informazioni

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 <tpowa@archlinux.org>
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 non viene passato argomenti, restituisce tutti i pacchetti nel sistema. È possibile cercare questo output per ottenere informazioni specializzate sui pacchetti installati.

Ad esempio, se si desidera ottenere ciascun pacchetto e le sue dimensioni:

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

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

...

Mentre pacman -Qi fornisce informazioni sui pacchetti installati, pacman -Si richiede al database le informazioni più recenti recuperate su un pacchetto.

pacman -Si linux

pacman -Ql elenca tutti i file associati a un pacchetto.

pacman -Ql vi

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

...

Il nome del pacchetto su ogni riga può rendere l'output più difficile da usare in uno script. pacman -Qlq (ovvero "elenco di query pacman, quiet") non stampa il nome del pacchetto.

pacman -Qlq vi

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

...

Puoi usare pacman -Qlq | grep bin per trovare tutti i file in quel pacchetto che si trovano in una cartella bin (e quindi sono probabilmente file eseguibili). Ciò è utile quando il comando associato a un pacchetto è diverso dal nome del pacchetto.

pacman -Qql pacman | grep bin

Installazione

Il modo tipico di installare o aggiornare un pacchetto standard è pacman -S.

sudo pacman -S <package>

I pacchetti hanno spesso uno schema simile nei loro nomi. Le parentesi possono essere utilizzate come scorciatoie.

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

A volte potresti voler semplicemente scaricare un pacchetto a scopo di archiviazione senza installarlo. pacman -Sw scaricherà un pacchetto nella cartella cache.

sudo pacman -Sw <package>

Se è stato scaricato un pacchetto o se si conosce l'URL, è possibile installarlo direttamente.

sudo pacman -U <package_path>

aggiornamenti

Poiché pacman ruota attorno all'idea di "sincronizzare" un pacchetto con il repository remoto, pacman -Saggiornerà un pacchetto se è già installato.

Pacman può elencare i pacchetti non aggiornati.

pacman -Qu

Sfortunatamente, non visualizza la versione del pacchetto nel repository, quindi non sarai in grado di dire quanto sia obsoleto ogni pacchetto. Se questo è importante per te, potresti voler esaminare i gestori di pacchetti di terze parti o scrivere uno script che collega la versione del pacchetto ottenuta da pacman -Qi e pacman -Si.

Puoi ottenere la versione da pacman -Qi o pacman -Si usando un'espressione regolare.

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

3.8.4-1

E poi scrivi uno script che mostri le versioni fianco a fianco.

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

Pacman fornisce un modo per aggiornare tutti i pacchetti contemporaneamente, ma non è consigliabile perché Arch è una distribuzione a rilascio continuo. Se sorgono problemi, può essere necessario del tempo per determinare quali sono le cause.

sudo pacman -Syu

declassamenti

Arch Linux non mantiene ufficialmente i pacchetti obsoleti. Invece, dovrai fare affidamento sulla cache del pacchetto e su luoghi come Arch Rollback Machine. nascondiglio

Ogni pacchetto scaricato con pacman è archiviato in / 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 desideri ripristinare un pacchetto nella cache, installalo direttamente.

pacman -U <path_to_cached_file>

Arch Rollback Machine

Arch Rollback Machine è una raccolta di istantanee del mirror ufficiale di Arch Linux. Al momento della stesura di questo documento, risale a quattro mesi fa. Il ARM è attualmente ospitato su http://seblu.net/a/arm , anche se questo potrebbe cambiare in futuro.

I pacchetti ARM possono essere installati in remoto utilizzando 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

Non è esattamente comodo sfogliare ARM per i pacchetti più vecchi. Fortunatamente, ci sono strumenti che rendono questo più facile:

downgrade
downgrader

Cercano versioni precedenti nella cache e in ARM. Il loro utilizzo è quello che ti aspetteresti.

downgrade <package>
downgrader <package>

Entrambi gli strumenti sono in AUR, quindi il modo più semplice per installarli sarà con un aiuto come il tuo.

Nota: ARM è un progetto non ufficiale ed è stato chiuso in passato, quindi potrebbe essere una buona idea evitare di svuotare la cache nel caso in cui ARM si blocchi o cambi nuovamente posizione. Se desideri creare il tuo ARM, sembra che ci sia un progetto NodeJS su github. Rimozione

Rimuovere un pacchetto, purché nulla dipenda da esso. Lasciare le sue dipendenze installate.

sudo pacman -R <package>

Rimuovere un pacchetto, purché nulla dipenda da esso. Rimuovi le sue dipendenze che non sono richieste da nient'altro.

sudo pacman -Rs <package>

Forza la rimozione di un pacchetto. Questo è il comando che dovrai raggiungere per cancellare il pacchetto dal tuo sistema e reinstallarlo quando la reinstallazione da sola non è sufficiente.

sudo pacman -Rdd <package>

Per rimuovere completamente un pacchetto:aurman -Rsn <package>
mjd2

0

La prima cosa che devi fare è scaricare il pacchetto dall'AUR. Per farlo: git clone http://aur.archlinux.org/package.gitanche se sembra che tu stia scaricando un .gitfile, l'output sarà una directory.

cd packageper trovare un PKGBUILDfile. Questo sarà usato nel prossimo passaggio.

Infine, esegui questo comando per compilare e installare il pacchetto che hai appena scaricato. makepkg -Sri. Se vuoi una spiegazione esauriente del significato di ciascuna di quelle lettere, puoi correre makepkg -hdove saranno tutte spiegate.


2
Benvenuto in Stack Exchange, Ashish ... puoi approfondire un po 'la tua risposta - perché dovrebbe essere fatto quanto sopra, cosa fanno le dichiarazioni, ecc.?
Phil B.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.