Manual de Gentoo: SPARC/Portage/Árbol personalizado
Utilizar un subconjunto del repositorio Gentoo
Excluir paquetes y categorías
Puede realizar una actualización selectiva de ciertas categorías/paquetes e ignorar el resto. Esto se realiza indicando a rsync que excluya categorías/paquetes durante el proceso emerge --sync.
Para que este método funcione, la verificación del manifiesto debe estar deshabilitada. Esto reducirá la seguridad del repositorio. Para deshabilitar la verificación, deshabilite el indicador USE
rsync-verify
en el paquete sys-apps/portage o configure sync-rsync-verify-metamanifest=no
(consulte man 5 portage) en la línea de repos.conf correspondiente al repositorio de ebuilds de Gentoo.Necesita definir el nombre del archivo que contiene los patrones de exclusión en la variable PORTAGE_RSYNC_EXTRA_OPTS de su /etc/portage/make.conf:
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"
games-*/*
Excluir partes de los repositorios de ebuilds, especialmente en el repositorio de ebuild de Gentoo, puede generar problemas de dependencias. Los paquetes nuevos permitidos pueden depender de paquetes nuevos pero excluidos. Las exclusiones no son compatibles, proceda teniendo en cuenta este riesgo.
Añadir ebuilds no oficiales
Crear un repositorio de ebuilds personalizado
Creación manual
Es posible instruir a Portage para que utilice ebuilds que no están oficialmente disponibles a través del repositorio de ebuilds de Gentoo. Para hacerlo, cree un nuevo directorio (por ejemplo, /var/db/repos/localrepo) en el que almacenar los ebuilds de terceros. Este nuevo repositorio requerirá la misma estructura de directorios que el repositorio oficial de Gentoo.
root #
mkdir -p /var/db/repos/localrepo/{metadata,profiles}
root #
chown -R portage:portage /var/db/repos/localrepo
A continuación, elija un nombre significativo para el repositorio. El siguiente ejemplo usa "repolocal" como nombre:
root #
echo 'localrepo' > /var/db/repos/localrepo/profiles/repo_name
A continuación, defina la EAPI utilizada para los perfiles dentro del repositorio:
root #
echo '8' > /var/db/repos/localrepo/profiles/eapi
Indique a Portage que el repositorio maestro es el repositorio principal de ebuilds de Gentoo, y que el repositorio local no debe sincronizarse automáticamente (ya que no está respaldado por una fuente externa como un servidor rsync, servidor espejo git u otro tipo de repositorio):
masters = gentoo
auto-sync = false
thin-manifests = true
sign-manifests = false
Finalmente, hay que habilitar el repositorio para el sistema local creando un archivo de configuración de repositorio dentro de /etc/portage/repos.conf. Esto informará a Portage dónde se puede localizar nuestro repositorio personalizado:
[repolocal]
location = /var/db/repos/localrepo
Opcional: Crear un repositorio usando eselect repository
Como alternativa, se puede crear rápidamente un repositorio de ebuilds personalizado utilizando el módulo de repositorio de eselect (desde app-eselect/eselect-repository). En el siguiente ejemplo, sustituya localrepo
por un nombre de su elección:
root #
eselect repository create localrepo
Adding localrepo to /etc/portage/repos.conf/eselect-repo.conf ... Repository <ebuild_repository_name> created and added
Un repositorio vacío llamado "localrepo" estará disponible en /var/db/repos/localrepo.
Trabajar con múltiples repositorios
Para quienes deseen desarrollar varios repositorios de ebuild, probar paquetes antes de que lleguen al repositorio Gentoo o quieran usar ebuilds no oficiales de varias fuentes, el paquete app-eselect/eselect-repository también proporciona herramientas para ayudar a mantener los repositorios actualizados. Consulte también el artículo sobre eselect repository.
Añadir un repositorio con eselect repository
Por ejemplo, para habilitar el repositorio GURU:
root #
eselect repository enable guru
La actualización de los repositorios agregados con estos métodos se realizará automáticamente en cada sincronización:
root #
emerge --sync
Software no mantenido por Portage
Usar Portage con programas auto-mantenidos
En algunos casos querrá configurar, instalar y mantener programas por sí mismo sin que Portage automatice el proceso, incluso aunque Portage pueda suministrarle esos programas. Conocidos son los casos de paquetes como las fuentes del núcleo y los controladores de Nvidia. Puede configurar Portage para que conozca cuando un determinado paquete ha sido instalado manualmente en el sistema. Este proceso recibe el nombre de inyectar y está soportado por Portage a través del archivo /etc/portage/profile/package.provided.
Por ejemplo, si quiere informar a Portage sobre gentoo-sources-6.6.21 wh el cual ha sido instalado manualmente, añada la siguiente línea a /etc/portage/profile/package.provided:
sys-kernel/gentoo-sources-6.6.21
En este archivo se usan las versiones sin un operador
=
.