¿Cómo instalo paquetes desde AUR?

61

Arch Linux tiene el AUR (Arch User Repository), una colección de paquetes creados por el usuario. ¿Cómo instalo estos paquetes en Arch Linux ARM?

Ghanima
fuente
2
Parece que ya hay muchos paquetes aur proporcionados a través del repositorio "aur". Lo encontré por accidente. pacman -S su paquete podría funcionar realmente. Funciona con cower y gmrender-resurrect-git, por ejemplo.
enigmáticoFísico

Respuestas:

53

De acuerdo con la página Building Packages de Arch Linux ARM, debe hacerlo.

  1. Instala los elementos esenciales de construcción. Estos son necesarios para compilar paquetes en Arch Linux ARM.

    $ sudo pacman -S kernel26-headers file base-devel abs
    
  2. Obtenga el PKGBUILD. Necesita descargar el tarball que desee. Puede encontrar los tarballs para programas en la AUR .

  3. Haz los paquetes. A continuación, debe ejecutar makepkgpara generar un paquete que pacman pueda instalar.

    $ makepkg -Acs
    

    La -Aopción ignora la arquitectura de Arch de destino. La -copción limpia el directorio después de makepkgterminar e -sinstala las dependencias necesarias.

    Se recomienda que NO se ejecute makepkgcomo root ya que puede causar daños permanentes en su sistema. Sin embargo, si realmente necesita ejecutarlo como root, use la --asrootopción

  4. Instala el paquete. makepkgdebería haber creado un archivo en el directorio con el tipo de archivo .pkg.tar.xz. Debe instalar este paquete utilizando la -Uopción con pacman.

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

    Asegúrese de reemplazar x.pkg.tar.xzcon el nombre real del paquete.


fuente
Definir paquetes de forma manual definitivamente no se recomienda para usuarios novatos. De hecho, todos deberían usar Yaourt. Hace que todo el proceso sea simple.
Jivings
Todavía necesita esos paquetes y editar el PKGBUILD para compilar para armv6h arch.
Anglepoise
55
@Jivings En realidad, la razón por la cual yaourt y otros ayudantes de AUR no están en el repositorio oficial es que se supone que debes aprender a instalar paquetes extranjeros manualmente antes de usar una herramienta automatizada.
PyRulez
2
el paquete 'abs' no está presente en el repositorio
dmnc
sigue kernel26-headerssiendo el actual? No encontré nada al respecto con google. Y el grupo base-develcontiene file.
user3123159
34

La solución más fácil es usar Yaourt (herramienta de repositorio de otro usuario) .

Puedes instalar con:

pacman -S yaourt

Y luego sincronizar con el AUR:

yaourt -Syy

Luego puede buscar paquetes de AUR:

yaourt package-name

Lo que proporcionará indicaciones interactivas para la instalación.

O si conoce el nombre del paquete exactamente:

yaourt -S package-name

La mayoría de los comandos pacman son los mismos para yaourt.

Jivings
fuente
¿Cuál es la diferencia entre pacmany yaourt?
Alex Chamberlain
Yaourt también verifica el AUR y los repositorios oficiales. Los paquetes AUR también tienen más posibilidades de personalización.
Jivings
Esto ya no funciona. ¿Cuál es la solución oficial?
tekknolagi
2
pacman -S yaourtno funciona y no puedo agregar archlinuxfrya que aparentemente no alojanarmv6h
tekknolagi
1
@tekknolagi yaourtsolía estar en el repositorio principal de Arch Arm. Tal vez lo eliminaron ... Pero aún puede construirlo desde la fuente, que se explica en el artículo de AUR en Arch Wiki. Y hay un archivo de paquete aquí . ¡Espero que eso ayude!
Jivings
10

Todas las respuestas anteriores están desactualizadas. Mi respuesta no es muy buena, pero espero que evite el problema de quedar desactualizada.

La wiki oficial explica, en detalle, cómo se instala / crea un paquete que no es parte de pacman (empaquetador y proveedor a partir de esta fecha).

Tanto el empacador como el yaourt están marcados como obsoletos en AUR. (Esto puede cambiar en el futuro).

PPPaul
fuente
¡Buena respuesta! Recomiendo usar makepkg -si también (después de verificar el archivo PKGBUILD)
smoothware
7

Utilizo Packer para este propósito, que en mi opinión es una alternativa más rápida que yaourt.

Simplemente agregue estas dos líneas a su /etc/pacman.conf:

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

Luego puede instalar / actualizar el empaquetador a través de pacman:

# pacman -Sy packer

Y use Packer de la misma manera que usa Pacman:

$ packer -S some_aur_package

Además, si no desea actualizar todos los paquetes, incluidos los de AUR:

$ packer -Syu

Packer se ejecutará primero pacman -Syupara actualizar los paquetes desde los repositorios oficiales, luego actualizará todos los paquetes de AUR.

brkt
fuente
4

¡IMPORTANTE! yaourtes inseguro y obsoleto según la wiki: https://wiki.archlinux.org/index.php/AUR_helpers

Si bien la respuesta de @Jivings fue mejor en el `12, recomendaría instalar uno de los administradores de paquetes de arco más seguros y con más funciones (y sugiero que alguien actualice la respuesta de @Jivings ya que tiene la mayor visibilidad).

Estoy usando aurmany cavarlo. Tiene todas las características, es seguro y el cli funciona casi exactamente como pacman. 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

Luego puede seguir una guía de pacman casi exactamente pero usando en aurmanlugar de pacman. La siguiente guía fue tomada de https://www.digitalocean.com/community/tutorials/how-to-use-arch-linux-package-management y me ayudó a comenzar:


Empezando

Arch Linux proporciona servicios de administración de paquetes similares a los que se encuentran en otras distribuciones modernas de Linux. Esta es una guía para las operaciones comunes de administración de paquetes.

Antes de continuar, asegúrese de que las bases de datos de sus paquetes estén actualizadas con:

sudo pacman -Sy

buscando

Favoreciendo la brevedad sobre la intuición, la mayoría de las operaciones de administración de paquetes en Arch Linux aparecen en el formato:

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

Por ejemplo, el comando normal para buscar repositorios de pacman es

pacman -Ss <package> 

...

Alternativamente, puede usar pacman -Qs con la desventaja de no resaltar el color.

pacman -Qs linux

Si desea resaltar el color con pacman -Ss, puede descomentar Color desde /etc/pacman.conf. Sin embargo, destaca diferentes cosas que pacsearch, por lo que es posible que desee probar ambas y ver cuál le gusta más.

sudo vi /etc/pacman.conf

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

Consiguiendo información

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

Si pacman -Qi no pasa argumentos, devuelve todos los paquetes en el sistema. Puede buscar esta salida para obtener información especializada sobre los paquetes instalados.

Por ejemplo, si desea obtener cada paquete y su tamaño:

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

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

...

Mientras que pacman -Qi proporciona información sobre los paquetes instalados, pacman -Si consulta en la base de datos la información recuperada más recientemente sobre un paquete.

pacman -Si linux

pacman -Ql enumera todos los archivos asociados con un paquete.

pacman -Ql vi

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

...

El nombre del paquete en cada línea puede hacer que la salida sea más difícil de usar en un script. pacman -Qlq (es decir, "lista de consultas pacman, silenciosa") no imprimirá el nombre del paquete.

pacman -Qlq vi

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

...

Puedes usar pacman -Qlq | grep bin para encontrar todos los archivos en ese paquete que están en una carpeta bin (y, por lo tanto, es probable que sean archivos ejecutables). Esto es útil cuando el comando asociado con un paquete es diferente del nombre del paquete.

pacman -Qql pacman | grep bin

Instalando

La forma típica de instalar o actualizar un paquete estándar es pacman -S.

sudo pacman -S <package>

Los paquetes a menudo tienen un patrón similar en sus nombres. Los corchetes se pueden usar como atajo.

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

A veces es posible que desee descargar un paquete para fines de archivo sin instalarlo. pacman -Sw descargará un paquete a la carpeta de caché.

sudo pacman -Sw <package>

Si se ha descargado un paquete, o si conoce la URL, puede instalarlo directamente.

sudo pacman -U <package_path>

Actualizaciones

Como pacman gira en torno a la idea de "sincronizar" un paquete con el repositorio remoto, pacman -Sactualizará un paquete si ya está instalado.

Pacman puede enumerar paquetes que están desactualizados.

pacman -Qu

Desafortunadamente, no muestra la versión del paquete en el repositorio, por lo que no podrá saber qué tan desactualizado está cada paquete. Si esto es importante para usted, es posible que desee buscar administradores de paquetes de terceros o escribir un script que vincule la versión del paquete obtenida de pacman -Qi y pacman -Si.

Puede obtener la versión de pacman -Qi o pacman -Si usando una expresión regular.

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

3.8.4-1

Y luego escriba un script que muestre las versiones una al lado de la otra.

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 proporciona una forma de actualizar todos sus paquetes a la vez, pero no se recomienda porque Arch es una distribución de lanzamiento continuo. Si surgen problemas, puede tomar tiempo determinar cuáles son las causas.

sudo pacman -Syu

Degradaciones

Arch Linux no mantiene oficialmente paquetes obsoletos. En su lugar, deberá confiar en la caché de su paquete y en lugares como Arch Rollback Machine. Cache

Cada paquete descargado con pacman se almacena en / 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

...

Si desea volver a un paquete en su caché, simplemente instálelo directamente.

pacman -U <path_to_cached_file>

Máquina de retroceso de arco

Arch Rollback Machine es una colección de instantáneas del espejo oficial de Arch Linux. Al momento de escribir esto, se remonta a cuatro meses. El ARM está actualmente alojado en http://seblu.net/a/arm , aunque esto podría cambiar en el futuro.

Los paquetes ARM se pueden instalar de forma remota utilizando 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

No es exactamente conveniente buscar en el ARM paquetes más antiguos. Afortunadamente, existen herramientas que facilitan esto:

downgrade
downgrader

Buscan versiones anteriores en el caché y el ARM. Su uso es lo que esperarías.

downgrade <package>
downgrader <package>

Ambas herramientas están en el AUR, por lo que la forma más fácil de instalarlas será con un ayudante como yaourt.

Nota: El ARM es un proyecto no oficial y se ha cerrado en el pasado, por lo que puede ser una buena idea evitar borrar el caché en caso de que el ARM se caiga o cambie de ubicación nuevamente. Si desea lanzar su propio ARM, parece que hay un proyecto NodeJS en github. Eliminación

Retire un paquete, siempre que nada dependa de él. Deje sus dependencias instaladas.

sudo pacman -R <package>

Retire un paquete, siempre que nada dependa de él. Elimine sus dependencias que no son requeridas por nada más.

sudo pacman -Rs <package>

Forzar la eliminación de un paquete. Este es el comando que alcanzará para borrar el paquete de su sistema y reinstalarlo cuando reinstalar solo no es suficiente.

sudo pacman -Rdd <package>
mjd2
fuente
Para eliminar completamente un paquete:aurman -Rsn <package>
mjd2
0

Lo primero que debe hacer es descargar el paquete de AUR. Para hacerlo, git clone http://aur.archlinux.org/package.gitaunque parezca que está descargando un .gitarchivo, la salida será un directorio.

cd packagepara encontrar un PKGBUILDarchivo Esto se usará en el siguiente paso.

Finalmente, ejecute este comando para compilar e instalar el paquete que acaba de descargar. makepkg -Sri. Si desea una explicación exhaustiva de lo que significa cada una de esas letras, puede ejecutar makepkg -hdonde se explicarán todas.

Ashish
fuente
2
Bienvenido a Stack Exchange, Ashish ... ¿puedes explicar un poco tu respuesta? ¿Por qué habría que hacer lo anterior, qué hacen las declaraciones, etc.?
Phil B.