Repositorio de ebuilds

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Ebuild repository and the translation is 96% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
Resources
Resources

Un repositorio de ebuilds, coloquialmente conocido como un overlay, es una estructura de directorios y ficheros utilizados para añadir y extender paquetes disponibles en el gestor de paquetes del sistema. Los desarrolladores de Gentoo también utilizan los repositorios de ebuilds como base de entrenamiento y una zona de espera de nuevos ebuilds. Los repositorios de ebuilds pueden contener ebuilds de una o más EAPIs.

Los sitemas con Gentoo instalado normalmente disponen de un único repositorio de ebuilds disponible para el sistema lladamdo repositorio de ebuilds de Gentoo, contiene ebuilds que son mantenidas por los desarrolladores oficiales de Gentoo y por miembros de la comunidad (a través del projecto de mantenedores representantes). Los administradores de sistemas pueden añadir repositorios adicionales de ebuilds al sistema mediante diversas utilidades y métodos descritos más abajo.

Repositorios

Los repositorios de ebuilds no son más (o menos) que un conjunto de ficheros (ebuilds, ficheros de metadatos, ...). Éstos se pueden obtener de repositorios públicos (git, CVS, SVN ...) o descargarse como ficheros empaquetados (tarballs) y desempaquetarse manualmente en el sistema. Se recomienda utilizar repositorios gestionados por terceros de confianza. Cualquier repositorio de ebuilds instalado causará que Portage mire en los ficheros de overlay para decidir qué software instalar. Si se obtiene código comprometido desde un repositorio de ebuilds, entonces se podrían instalar paquetes comprometidos en el sistema.

La forma actual por defecto para gestionar repositorios es a través de /etc/portage/repos.conf que, como otras localizaciones de Portage, también puede ser un directorio.

Las definiciones de repositorio dentro de /etc/portage/repos.conf/ también informan a Portage si el repositorio se puede actualizar y cómo se puede realizar. Con todo esto, la lanzar emerge --sync se actualizarán todos los repositorios.

Un método ya obsoleto pero aún permitido es utilizar la variable PORTDIR_OVERLAY dentro de /etc/portage/make.conf. Esta variable puede apuntar a más de una localización adicional en el sistema de ficheros donde se pueden localizar repositorios. Sin embargo es preferible utilizar el directorio /etc/portage/repos.conf/.

Para más información leer sobre /etc/portage/repos.conf y el artículo de Portage/Sync.

Prioridades

Cada repositorio de ebuilds tiene su propia prioridad única. Esto asegura que en el caso de que una versión en particular se encuentre en varios repositorios de ebuilds, la resolución de la misma no es ambigua. Los ebuilds de los repositorios con números de prioridad más altos (por ejemplo 60) tienen preferencia sobre los ebuilds de repositorios con menores prioridades (por ejemplo 50).

Se puede obtener la lista de repositorio de ebuilds y sus prioridades consultando la salida de las siguientes ordenes (Buscar la palabra "Repositories"):

user $emerge --info --verbose
user $portageq repos_config /

El repositorio de Gentoo tendrá una prioridad de -1000. Esto implica que, por lo general, el resto de repositorios de ebuilds tienen mayor precedencia ya que se les asigna un prioridad mayor. Este es el comportamiento por defecto ya que los repositorios de ebuilds se han diseñado para "colocarse encima" del repositorio de Gentoo.

Herramientas disponibles

Existen algunas herramientas de soporte para integrar los repositorios de ebuilds.

Layman

La aplicación layman facilita la gestión y actualización de múltiples repositorios de ebuilds adicionales. Se trata de una aplicación de la línea de órdenes a través de la cual se pueden listar los repositorios de ebuilds disponibles al público, suscritos o no suscritos así como la actualización de esos repositorios.

Se ofrece soporte tanto para el método make.conf como para el método repos.conf.

Para más información, consultar Layman y Project:Portage/Sync#Layman_configuration.

emaint

Lea el artículo Sync (Portage project) y man 1 emaint.

eix

eix-sync es un envoltorio para emerge --sync (que de hecho arranca emaint sync --auto) seguido de eix-update. Para más detalles, leer el artículo sobre Eix y su página del manual man 1 eix.

eselect-repository

eselect repository maintains /etc/portage/repos.conf entries for Portage to access and synchronize. See Eselect/Repository article for details.

Utilización

Hacer emerge de un paquete duplicado

Cuando se trabaja con repositorios de ebuilds es posible encontrarse en la situación en que existen varias versiones del mismo paquete en diferentes repositorios de ebuilds. Se puede indicar a Portage que instale paquetes específicos desde un repositorio de ebuilds específico usando la notación :::

root #emerge --ask category/atom::repository-name

Se puede utilizar la misma notación para diferentes instrucciones de emerge, incluyendo la desinstalación de un paquete mediante --depclean.

Buenas prácticas

Generación de cache

Cuando se instalan repositorios de ebuilds muy voluminosos, a Portage le puede llevar mucho tiempo realizar operaciones como la resolución de dependencias. Esto es debido a que los repositorios de ebuilds no suelen contener una caché para los metadatos.

Generar una caché local para metadatos lanzando emerge --regen después de sincronizar los repositorios de ebuilds:

root #emaint sync --allrepos
root #( ulimit -n 4096 && emerge --regen )

Hay que ser cuidadoso ya que emerge --regen lleva bastante tiempo y no se recomienda a los usuarios de rsync ya que rsync actualiza la caché usando caché del servidor (la mayoría de los usuarios de portage son usuarios rsync). Estos usuarios deberían simplemente lanzar emerge --sync (o eix-sync) para regenerar la caché. Probablemente solo los usuarios de repositorios de ebuilds muy voluminosos deberían correr emerge --regen.

Enmascaramiento de repositorios de ebuild instalados pero inseguros

Cuando se utilizan repositorios de ebuilds con muchos paquetes o se cree que son de baja o desconocida calidad, es una buena práctica enmascarar todo el repositorio de ebuilds.

ARCHIVO /etc/portage/package.maskEnmascarar todos los paquetes de un repositorio de ebuilds
*/*::nombre-del-repositorio

Después de esto, desenmascarar los paquetes que se instalarán.

ARCHIVO /etc/portage/package.unmaskDesenmascarar un paquete específico en un repositorio de ebuilds
foo/bar::nombre-del-repositorio

Véase también

Recursos externos