This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
Repositorio de ebuilds
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.
- Cuando se utiliza el método make.conf, layman gestiona un archivo dedicado de configuración que debe ser cargado por make.conf
- Cuando se utiliza repos.conf, layman gestiona el fichero /etc/portage/repos.conf/layman.conf directamente.
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.
/etc/portage/package.mask
Enmascarar todos los paquetes de un repositorio de ebuilds*/*::nombre-del-repositorio
Después de esto, desenmascarar los paquetes que se instalarán.
/etc/portage/package.unmask
Desenmascarar un paquete específico en un repositorio de ebuildsfoo/bar::nombre-del-repositorio
Véase también
- Proyecto de Overlays. El proyecto oficial de Gentoo de soporte de repositorios de ebuilds.
- Guía de Overlays (Proyecto Overlays). Una guía de usuario escrita por el proyecto Overlay.
- Guía del desarrollador de Overlays en Gentoo. Este documento se conserva únicamente por razones históricas. La guía actual se mantiene en Project:Overlays/Overlays guide.
- Definiendo un repositorio personalizado. La sección del manual de Gentoo