Arch User Repository

El Arch User Repository (AUR) es un repositorio impulsado por la comunidad para los usuarios de Arch. Contiene descripciones de paquetes (PKGBUILDs) que permiten compilar un paquete desde el código fuente con makepkg y luego instalarlo mediante pacman. El AUR fue creado para organizar y compartir nuevos paquetes de la comunidad y para ayudar a acelerar la inclusión de paquetes populares en el repositorio de la comunidad. Este documento explica cómo los usuarios pueden acceder y utilizar el AUR.

Un buen número de nuevos paquetes que entran en los repositorios oficiales comienzan en el AUR. En el AUR, los usuarios pueden contribuir con sus propias construcciones de paquetes (PKGBUILD y archivos relacionados). La comunidad AUR tiene la capacidad de votar por los paquetes en el AUR. Si un paquete se vuelve lo suficientemente popular -siempre que tenga una licencia compatible y una buena técnica de empaquetado- puede entrar en el repositorio de la comunidad (accesible directamente por pacman o abs).

Advertencia: Los paquetes AUR son contenidos producidos por los usuarios. Estos PKGBUILD son completamente no oficiales y no han sido investigados a fondo. Cualquier uso de los archivos proporcionados es bajo su propio riesgo.

Cómo empezar

Los usuarios pueden buscar y descargar PKGBUILDs desde la interfaz web de AUR. Estos PKGBUILDs pueden ser construidos en paquetes instalables usando makepkg, y luego instalados usando pacman.

  • Asegúrese de que el grupo de paquetes base-devel está instalado en su totalidad (pacman -S --needed base-devel).
  • Observe las #FAQ para obtener respuestas a las preguntas más comunes.
  • Es posible que desee ajustar /etc/makepkg.confpara optimizar el proceso de construcción a su sistema antes de construir paquetes desde el AUR. Se puede obtener una mejora significativa en los tiempos de construcción de paquetes en sistemas con procesadores multinúcleo ajustando la variable MAKEFLAGS, utilizando varios núcleos para la compresión o utilizando un algoritmo de compresión diferente. Los usuarios también pueden habilitar las optimizaciones del compilador específicas del hardware a través de la variable CFLAGS. Ver makepkg#Tips and tricks para más información.

También es posible interactuar con el AUR a través de SSH: escriba ssh [email protected] help para obtener una lista de comandos disponibles.

Historia

Al principio, había ftp://ftp.archlinux.org/incoming, y la gente contribuía simplemente subiendo el PKGBUILD, los archivos suplementarios necesarios, y el propio paquete construido al servidor. El paquete y los archivos asociados permanecían allí hasta que un mantenedor de paquetes veía el programa y lo adoptaba.

Entonces nacieron los repositorios de usuarios de confianza. A ciertos individuos de la comunidad se les permitió alojar sus propios repositorios para que cualquiera pudiera utilizarlos. El AUR se expandió sobre esta base, con el objetivo de hacerlo más flexible y más utilizable. De hecho, a los mantenedores de AUR se les sigue llamando TUs (Trusted Users).

Entre 2015-06-08 y 2015-08-08 el AUR hizo la transición de la versión 3.5.1 a la 4.0.0, introduciendo el uso de repositorios Git para la publicación de los PKGBUILDs.Los paquetes existentes fueron abandonados a menos que sus mantenedores los migraran manualmente a la nueva infraestructura.

Repositorios Git para los paquetes de AUR3

El Archivo AUR en GitHub tiene un repositorio para cada paquete que estaba en AUR 3 en el momento de la migración.Alternativamente, existe el repositorio aur3-mirror que proporciona lo mismo.

Instalación y actualización de paquetes

La instalación de paquetes desde el AUR es un proceso relativamente sencillo. Esencialmente:

  1. Adquirir los archivos de compilación, incluyendo el PKGBUILD y posiblemente otros archivos necesarios, como las unidades systemd y los parches (a menudo no el código real).
  2. Verificar que el PKGBUILD y los archivos que lo acompañan no son maliciosos o poco fiables.
  3. Ejecutar makepkg -si en el directorio donde se guardan los archivos. Esto descargará el código, resolverá las dependencias con pacman, lo compilará, lo empaquetará e instalará el paquete.
Nota: El AUR no está soportado, por lo que cualquier paquete que instales es tu responsabilidad de actualizarlo, no la de pacman. Si los paquetes en los repositorios oficiales se actualizan, tendrá que reconstruir cualquier paquete AUR que dependa de esas bibliotecas.

Requisitos previos

Primero asegúrese de que las herramientas necesarias están instaladas instalando el grupo base-devel en su totalidad, que incluye make y otras herramientas necesarias para compilar desde el código fuente.

Consejo: Utilice la bandera --needed al instalar el grupo base-devel para omitir los paquetes que ya tiene en lugar de reinstalarlos.
Nota: Los paquetes en el AUR asumen que el grupo base-devel está instalado, es decir, no enumeran los miembros del grupo como dependencias de compilación explícitamente.

A continuación, elija un directorio de compilación adecuado. Un directorio de construcción es simplemente un directorio donde el paquete será hecho o «construido» y puede ser cualquier directorio. Los ejemplos en las siguientes secciones utilizarán ~/builds como el directorio de construcción.

Adquirir archivos de construcción

Localizar el paquete en el AUR. Esto se hace utilizando el campo de búsqueda en la parte superior de la página de inicio de AUR. Al hacer clic en el nombre de la aplicación en la lista de búsqueda, aparece una página de información sobre el paquete. Lea la descripción para confirmar que se trata del paquete deseado, anote cuándo se actualizó el paquete por última vez y lea los comentarios.

Hay varios métodos para adquirir los archivos de compilación de un paquete:

  • Clone su repositorio git, etiquetado como «Git Clone URL» en los «Detalles del paquete» en su página AUR. Este es el método preferido, una de cuyas ventajas es que puede obtener fácilmente las actualizaciones del paquete a través de git pull.
$ git clone https://aur.archlinux.org/package_name.git
  • Descargue una instantánea, ya sea haciendo clic en el enlace «Descargar instantánea» en «Acciones del paquete» en la parte derecha de su página AUR, o en un terminal:
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/package_name.tar.gz
Nota: El archivo de la instantánea está comprimido, y debe ser extraído (preferiblemente en un directorio reservado para las construcciones AUR): tar -xvf package_name.tar.gz

Adquirir una clave pública PGP si es necesario

Comprobar si un archivo de firma en forma de .sig o .asc es parte de la matriz de fuentes PKGBUILD, si ese es el caso, entonces adquirir una de las claves públicas que figuran en la matriz PKGBUILD validpgpkeys. Consulte makepkg#Signature checking para más información.

Construya e instale el paquete

Cambie los directorios al directorio que contiene el PKGBUILD del paquete.

$ cd package_name
Advertencia: Compruebe cuidadosamente el PKGBUILD, cualquier archivo .install, y cualquier otro archivo en el repositorio git del paquete para los comandos maliciosos o peligrosos. En caso de duda, no construya el paquete y busque consejo en los foros o en la lista de correo. Ya se ha encontrado código malicioso en paquetes.

Ver el contenido de todos los archivos proporcionados. Por ejemplo, para usar el pager less para ver PKGBUILD haga:

$ less PKGBUILD
Consejo: Si está actualizando un paquete, puede querer ver los cambios desde el último commit.

  • Para ver los cambios desde el último commit de git puede usar git show.
  • Para ver los cambios desde el último commit usando vimdiff, haga git difftool @~..@ vimdiff. La ventaja de vimdiff es que se ve todo el contenido de cada archivo junto con indicadores sobre lo que ha cambiado.

Haz el paquete. Después de confirmar manualmente el contenido de los archivos, ejecute makepkg como un usuario normal:

$ makepkg -si
  • -s/--syncdeps resuelve e instala automáticamente cualquier dependencia con pacman antes de construir. Si el paquete depende de otros paquetes AUR, tendrá que instalarlos manualmente primero.
  • -i/--install instala el paquete si se construye con éxito. Alternativamente, el paquete construido puede ser instalado con pacman -U package_name.pkg.tar.zst.

Otras banderas útiles son

  • -r/--rmdeps elimina las dependencias de tiempo de construcción después de la construcción, ya que ya no son necesarias. Sin embargo, estas dependencias pueden necesitar ser reinstalado la próxima vez que el paquete se actualiza.
  • -c/--clean limpia los archivos temporales de construcción después de la construcción, ya que ya no son necesarios. Estos archivos suelen ser necesarios sólo cuando se depura el proceso de construcción.
Nota: El ejemplo anterior es sólo un breve resumen del proceso de construcción. Se recomienda encarecidamente leer los artículos makepkg y ABS para obtener más detalles.

Actualización de paquetes

En el directorio que contiene el PKGBUILD del paquete, primero debe actualizar los archivos y los cambios mediante el comando

$ git pull

y luego ejecutar

$ makepkg -si

para actualizar el paquete.

Comentarios

Comentar los paquetes

La Interfaz Web de AUR tiene una facilidad de comentarios que permite a los usuarios proporcionar sugerencias y comentarios sobre las mejoras del colaborador de PKGBUILD.

Consejo: Evite pegar parches o PKGBUILDs en la sección de comentarios: rápidamente se vuelven obsoletos y acaban ocupando mucho espacio innecesariamente. En su lugar, envíe esos archivos por correo electrónico al mantenedor, o incluso utilice un pastebin.

Python-Markdown proporciona la sintaxis básica de Markdown para dar formato a los comentarios.

Nota:

  • Esta implementación tiene algunas diferencias ocasionales con las reglas de sintaxis oficiales.
  • Los hashtags del paquete en el repositorio Git y las referencias a los tickets de Flyspray se convierten en enlaces automáticamente.
  • Los comentarios largos se colapsan y pueden expandirse bajo demanda.

Votar por los paquetes

Una de las actividades más sencillas para todos los usuarios de Arch es navegar por el AUR y votar por sus paquetes favoritos utilizando la interfaz online. Todos los paquetes son susceptibles de ser adoptados por una UT para su inclusión en el repositorio de la comunidad, y el recuento de votos es una de las consideraciones en ese proceso; ¡a todos nos interesa votar!

Regístrese en el sitio web de AUR para obtener la opción «Votar por este paquete» mientras navega por los paquetes. Después de registrarse también es posible votar desde la línea de comandos con aurvoteAUR, aurvote-gitAUR o aur-auto-vote-gitAUR.

Alternativamente, si ha configurado la autenticación ssh, puede votar directamente desde la línea de comandos utilizando su clave ssh. Esto significa que no tendrá que guardar o escribir su contraseña de AUR.

$ ssh [email protected] vote package_name

Etiquetado de paquetes fuera de fecha

En primer lugar, debe marcar el paquete fuera de fecha indicando los detalles de por qué el paquete está obsoleto, preferiblemente incluyendo enlaces al anuncio de la versión o el nuevo tarball de la versión.

También debe tratar de ponerse en contacto con el mantenedor directamente por correo electrónico. Si no hay respuesta del mantenedor después de dos semanas, puede presentar una solicitud de orfandad. Ver AUR submission guidelines#Requests para más detalles.

Nota: Los paquetes VCS no se consideran desactualizados cuando cambia el pkgver y no deben marcarse en este caso.

Debugging the package build process

  1. Asegúrese de que su entorno de construcción está actualizado actualizando antes de construir nada.
  2. Asegúrese de que tiene el grupo base-devel instalado.
  3. Utilice la opción -s con makepkg para comprobar e instalar todas las dependencias necesarias antes de iniciar el proceso de construcción.
  4. Pruebe la configuración predeterminada de makepkg.
  5. Vea Makepkg#Troubleshooting para problemas comunes.

Si tiene problemas para construir un paquete, primero lea su PKGBUILD y los comentarios en su página AUR.

Es posible que un PKGBUILD esté roto para todos. Si no puedes resolverlo por tu cuenta, informa al mantenedor (por ejemplo, publicando los errores que obtienes en los comentarios de la página AUR). También puede buscar ayuda en el foro AUR Issues, Discussion & PKGBUILD Requests.

La razón podría no ser trivial después de todo. Custom CFLAGS, LDFLAGS y MAKEFLAGS pueden causar fallos. Para evitar problemas causados por la configuración particular de su sistema, construya los paquetes en un chroot limpio. Si el proceso de construcción sigue fallando en un chroot limpio, el problema es probablemente con el PKGBUILD.

Vea Creating packages#Checking package sanity about using namcap. Si desea que se revise un PKGBUILD, publíquelo en la lista de correo aur-general para obtener comentarios de los TU y de otros miembros de AUR, o en el foro de Creación de &Paquetes de modificación. También puede buscar ayuda en el canal IRC #archlinux-aur en Freenode.

Enviar paquetes

Los usuarios pueden compartir PKGBUILDs usando el Repositorio de Usuarios de Arch. Ver las directrices de envío de AUR para más detalles.

Traducción de la interfaz web

Ver i18n.txt en el árbol de fuentes de AUR para obtener información sobre la creación y el mantenimiento de la traducción de la interfaz web de AUR.

FAQ

¿Qué tipo de paquetes se permiten en el AUR?

Los paquetes en la AUR son simplemente «build scripts», es decir, recetas para construir binarios para pacman. Para la mayoría de los casos, todo está permitido, sujeto a las directrices de utilidad y alcance, siempre y cuando cumpla con los términos de licencia del contenido. Para otros casos, en los que se menciona que «no se puede enlazar» a las descargas, es decir, a los contenidos que no son redistribuibles, sólo se puede utilizar el propio nombre del archivo como fuente. Esto significa y requiere que los usuarios ya tengan la fuente restringida en el directorio de construcción antes de construir el paquete. En caso de duda, pregunte.

¿Cómo puedo votar los paquetes en el AUR?

Véase #Votar paquetes.

¿Qué es un usuario de confianza / TU?

Un Usuario de Confianza, abreviado TU, es una persona que es elegida para supervisar el AUR y el repositorio de la comunidad. Son los que mantienen los PKGBUILDs populares en la comunidad, y en general mantienen el AUR en funcionamiento.

¿Cuál es la diferencia entre el Repositorio de Usuarios de Arch y el repositorio de la comunidad?

El Repositorio de Usuarios de Arch es donde se almacenan todos los PKGBUILDs que los usuarios envían, y deben ser construidos manualmente con makepkg. Cuando los PKGBUILDs reciben suficiente interés de la comunidad y el apoyo de una UT, se mueven al repositorio de la comunidad (mantenido por las UT), donde los paquetes binarios pueden ser instalados con pacman.

Foo en el AUR está desactualizado; ¿qué debo hacer?

Vea #Etiquetado de paquetes desactualizados.

Mientras tanto, puede intentar actualizar el paquete usted mismo editando el PKGBUILD localmente. A veces, las actualizaciones no requieren cambios en el proceso de construcción o del paquete, en cuyo caso basta con actualizar la matriz pkgver o source.

Foo en el AUR no compila cuando ejecuto makepkg; ¿qué debo hacer?

Probablemente se está perdiendo algo trivial, vea #Debugging the package build process.

ERROR: Una o más firmas PGP no pudieron ser verificadas; ¿qué debo hacer?

Lo más probable es que no tenga la(s) clave(s) pública(s) necesaria(s) en su llavero personal para verificar los archivos descargados. Ver Makepkg#Signature checking para más detalles.

¿Cómo puedo crear un PKGBUILD?

Consulte las directrices de envío de AUR#Reglas de envío, luego vea crear paquetes.

Tengo un PKGBUILD que me gustaría enviar; ¿puede alguien comprobarlo para ver si hay algún error?

Hay varios canales disponibles para enviar su paquete para su revisión; vea #Debugging the package build process.

¿Cómo conseguir que un PKGBUILD entre en el repositorio de la comunidad?

Por lo general, se requieren al menos 10 votos para que algo se mueva a la comunidad. Sin embargo, si una UT quiere apoyar un paquete, a menudo se encontrará en el repositorio.

Alcanzar el mínimo requerido de votos no es el único requisito, tiene que haber una UT dispuesta a mantener el paquete. Las UTs no están obligadas a mover un paquete al repositorio de la comunidad aunque tenga miles de votos.

Por lo general, cuando un paquete muy popular se queda en el AUR es porque:

  • Arch Linux ya tiene otra versión de un paquete en los repositorios
  • Su licencia prohíbe la redistribución
  • Ayuda a recuperar los PKGBUILDs enviados por los usuarios. Los ayudantes AUR no están soportados por definición.

Ver también Reglas para los paquetes que entran en la Repo comunitaria.

¿Cómo puedo acelerar los procesos de construcción repetidos?

Ver Makepkg#Mejorar los tiempos de compilación.

¿Cuál es la diferencia entre los paquetes foo y foo-git?

Muchos paquetes AUR vienen en versiones «estables» de lanzamiento y «inestables» de desarrollo. Los paquetes de desarrollo suelen tener un sufijo que denota su sistema de control de versiones y no están pensados para un uso regular, pero pueden ofrecer nuevas características o correcciones de errores. Como estos paquetes sólo descargan el último código fuente disponible cuando se ejecuta makepkg, su pkgver() en el AUR no refleja los cambios de la corriente principal. Asimismo, estos paquetes no pueden realizar una suma de comprobación de autenticidad en ninguna fuente VCS.

Vea también Mantenimiento del sistema#Uso de paquetes de software probados.

¿Por qué ha desaparecido foo del AUR?

Es posible que el paquete haya sido adoptado por una UT y esté ahora en el repositorio de la comunidad.

Los paquetes pueden ser eliminados si no cumplían las reglas de presentación. Consulte los archivos aur-requests para conocer el motivo de la eliminación.

Nota: El repositorio git de un paquete eliminado suele seguir estando disponible. Vea las directrices de envío de AUR#Requests para más detalles.

Si el paquete solía existir en AUR3, puede que no haya sido migrado a AUR4. Consulta los repositorios #Git de los paquetes de AUR3 donde se conservan.

¿Cómo puedo saber si alguno de mis paquetes instalados ha desaparecido de AUR?

La forma más sencilla es comprobar el estado HTTP de la página AUR del paquete:

$ comm -23 <(pacman -Qqm | sort) <(curl https://aur.archlinux.org/packages.gz | gzip -cd | sort)

¿Cómo puedo obtener una lista de todos los paquetes AUR?

  • Usa aurpkglistde python3-aurAUR

Ve también

  • Interfaz web de AUR
  • Lista de correo de AUR
  • DeveloperWiki:AUR Cleanup Day

Deja una respuesta

Tu dirección de correo electrónico no será publicada.