Manual de Gentoo: HPPA/Portage/Archivos
Archivos de Portage
Directivas de configuración
Portage viene con una configuración predefinida guardada en /usr/share/portage/config/make.globals. Toda la configuración de Portage se realiza a través de variables. Las variables de Portage y lo que significan se describen más adelante.
Como muchas directivas de configuración varían de unas arquitecturas a otras, Portage también posee algunos archivos de configuración que son parte de perfil. Su perfil está apuntado por el enlace simbólico /etc/portage/make.profile; las configuraciones de Portage se realizan en los archivos make.defaults de su perfil y de todos los perfiles padres. Explicaremos algo más sobre perfiles y el directorio /etc/portage/make.profile más adelante.
Al cambiar una variable de configuración, no modifique /usr/share/portage/config/make.globals ni make.defaults. En su lugar, utilice /etc/portage/make.conf, que tiene prioridad sobre los archivos anteriores. Para más información, consulte el archivo /usr/share/portage/config/make.conf.example. Como su nombre indica, este es solo un archivo de ejemplo; Portage no lo lee.
También puede definir una variable de configuración para Portage como una variable de entorno, pero no es recomendable.
Información específica del perfil
Ya se ha nombrado el directorio /etc/portage/make.profile. Este es un enlace simbólico a un perfil; por defecto, uno dentro de /var/db/repos/gentoo/profiles/, aunque se pueden crear perfiles en otros lugares y apuntar a ellos. El perfil al que apunta este enlace simbólico es el perfil al que se adhiere el sistema.
Un perfil contiene información específica para Portage sobre cada arquitectura, tal como una lista de paquetes que pertenecen al sistema correspondiente con ese perfil, una lista de paquetes que no funcionan (o están enmascarados) para ese perfil, etc.
Configuración específica de usuario
Cuando sea necesario cambiar el comportamiento de Portage, habrá que modificar ciertos archivos dentro de /etc/portage/. Se recomienda encarecidamente usar archivos dentro de /etc/portage/; se desaconseja encarecidamente sobrescribir el comportamiento de Portage mediante variables de entorno.
Dentro de /etc/portage/ puede crear los siguientes archivos:
- package.mask el cual especifica los paquetes que no quiere que Portage instale en su sistema nunca
- package.unmask especifica los paquetes que quiere que Portage instale a pesar de haber sido desaconsejados por los desarrolladores de Gentoo
- package.accept_keywords especifica los paquetes que quiere que Portage instale a pesar de no haber sido considerados adecuados para su sistema o arquitectura (todavía)
- package.use especifica la lista de ajustes USE que quiere utilizar para unos determinados paquetes sin tener que utilizarlos para todo el sistema
No es necesario que sean archivos; también pueden ser directorios que contengan uno o más archivos con la configuración correspondiente. Puede encontrar más información sobre el directorio /etc/portage/, junto con una lista completa de los archivos que se pueden crear, en la página del manual de Portage:
user $
man portage
Cambiar la ubicación de archivos y directorios de Portage
Los archivos de configuración mencionados anteriormente no se pueden almacenar en otro lugar; Portage siempre los buscará en esas ubicaciones exactas. Sin embargo, Portage utiliza muchas otras ubicaciones para diversos fines: compilación de paquetes, almacenamiento de código fuente, ubicaciones de repositorios, etc. Todas estas tienen ubicaciones predeterminadas, pero se pueden modificar a gusto del usuario mediante /etc/portage/make.conf.
Todos estos propósitos tienen unas direcciones predeterminadas muy claras pero puede cambiarlas por las que más le gusten indicándolo en /etc/portage/make.conf. El resto de este capítulo explica los lugares destinados a un propósito especial que utiliza Portage y como puede ser modificada su ubicación en el sistema de archivos.
Sin embargo, este manual no debe usarse como referencia: para obtener más detalles, consulte las páginas del manual portage
y make.conf
:
user $
man portage
user $
man make.conf
Almacenamiento de archivos
El repositorio de ebuilds de Gentoo
La ubicación predeterminada del repositorio de ebuilds de Gentoo es /var/db/repos/gentoo. /var/db/repos/gentoo. Esta ubicación se define mediante el archivo predeterminado repos.conf, que se encuentra en /usr/share/portage/config/repos.conf. Para modificar la ubicación predeterminada, copie este archivo a /etc/portage/repos.conf/gentoo.conf y cambie la configuración location. Al almacenar el repositorio de ebuilds de Gentoo en otro lugar (modificando esta variable), no olvide cambiar el enlace simbólico /etc/portage/make.profile según corresponda.
Después de cambiar la configuración de location en /etc/portage/repos.conf/gentoo.conf, se recomienda alterar también las siguientes variables en /etc/portage/make.conf, ya que, debido a la forma en que Portage maneja las variables, no notarán el cambio de ubicación: PKGDIR, DISTDIR y RPMDIR.
Binarios precompilados
Aunque Portage no utiliza binarios precompilados de forma predeterminada, cuenta con un amplio soporte para ellos. Cuando se le pide a Portage que trabaje con paquetes precompilados, los buscará en /var/cache/binpkgs. Esta ubicación está definida por la variable PKGDIR.
Código fuente
El código fuente de las aplicaciones se guarda por defecto en /var/cache/distfiles. Esta ubicación viene definida por la variable DISTDIR.
Base de datos de Portage
Portage guarda el estado del sistema (que paquetes están instalados, qué archivos pertenecen a cada paquete, ...) en /var/db/pkg.
¡No modificar los ficheros de estado del sistema manualmente!. Podría romper el conocimiento que tiene Portage sobre el sistema.
Caché de Portage
La caché de Portage (con fechas de modificacion, paquetes virtuales, información del árbol de dependencias, ...) se guarda en /var/cache/edb. Esta ubicación es una caché real: se puede borrar si no se está ejecutando ninguna aplicación que tenga relación con Portage en este momento.
Construir aplicaciones
Archivos temporales de Portage
Los archivos temporales de portage se guardan por defecto en /var/tmp/. Esta ubicación se define en la variable PORTAGE_TMPDIR.
Directorio de construcción
Portage crea directorios de compilación específicos dentro de /var/tmp/portage/ para cada paquete que emerge . Esta ubicación viene definida por la variable PORTAGE_TMPDIR añadiendo portage/.
Ubicación del sistema de archivos live
Por defecto, Portage instala todas los archivos en el sistema de ficheros activo (/), pero puede cambiarse esta configuración a través de la variable de entorno ROOT. Esto es útil cuando quiera crear nuevas imágenes compiladas.
Funciones de registro
Registro de ebuilds
Portage puede crear un registro por ebuild, pero solamente cuando la variable PORT_LOGDIR esté configurada y apuntando a una dirección con permisos de escritura para Portage (usuario Portage). De manera predeterminada está variable está desactivada. Si no configura PORT_LOGDIR no recibirá los registros con el sistema de registro actual, aunque tal vez reciba algún registro del nuevo sistema elog.
Si no se configura PORT_LOGDIR, no se almacenarán registros de compilación en el sistema de registro habilitado (aunque los usuarios pueden recibir algunos registros desde el nuevo elog de soporte).
Portage ofrece un control muy ajustable sobre el registro de sistema mediante el uso de elog:
- PORTAGE_ELOG_CLASSES: Aquí los usuarios pueden definir los tipos de mensajes que se registrarán. El valor de la variable puede ser cualquier combinación separada por espacios de
info
,warn
,error
,log
yqa
.info
: Registra los mensajes "einfo" impresos por un ebuild.warn
: Registra los mensajes "ewarn" impresos por un ebuild.error
: Registra los mensajes "eerror" impresos por un ebuild.log
: Registra los mensajes "elog" encontrados en algunos ebuilds.qa
: Registra los mensajes "QA Notice" impresos por un ebuild.
- PORTAGE_ELOG_SYSTEM: Selecciona el o los módulos que procesarán los mensajes de registro. Si se deja vacío, se deshabilita el registro. Se puede usar cualquier combinación separada por espacios de
save
,custom
,syslog
,mail
,save_summary
ymail_summary
. Se debe usar al menos un módulo para usar elog.save
: Guarda un registro por paquete en $PORT_LOGDIR/elog, o /var/log/portage/elog si $PORT_LOGDIR no está definido.custom
: Pasa todos los mensajes a un comando definido por el usuario en $PORTAGE_ELOG_COMMAND; esto se explicará más adelante. **syslog
: Envía todos los mensajes al registrador del sistema instalado.mail
: Pasa todos los mensajes a un servidor de correo definido por el usuario en $PORTAGE_ELOG_MAILURI; esto se explicará más adelante. Las funciones de correo de elog requieren >=portage-2.1.1.save_summary
: Similar a guardar, pero fusiona todos los mensajes en $PORT_LOGDIR/elog/summary.log, o /var/log/portage/elog/summary.log si $PORT_LOGDIR no está definido.mail_summary
: Similar a mail, pero envía todos los mensajes en un solo correo cuando emerge finaliza.
- PORTAGE_ELOG_COMMAND: Esto solamente se usa al activarse el módulo
custom
. Aquí podemos especificar una orden con la cual se procesarán los mensajes de registro. Observe que puede hacer uso de dos variables de entorno: ${PACKAGE} es el nombre del paquete y la versión, mientras que ${LOGFILE} es la ruta absoluta del archivo de registro. A continuación se muestra un posible uso:
PORTAGE_ELOG_COMMAND="/ruta/al/ejecutable/registrador -p '\${PACKAGE}' -f '\${LOGFILE}'"
- PORTAGE_ELOG_MAILURI: Contiene la configuración del módulo mail, tal como dirección, usuario, contraseña, servidor de correo y número de puerto. Por defecto está configurado a "root@localhost localhost". Aquí presentamos un ejemplo para un servidor SMTP que requiere autenticación con nombre de usuario y contraseña en un puerto en particular (el puerto por defecto es el 25):
PORTAGE_ELOG_MAILURI="usuario@algun.dominio
usuario:password@smtp.algun.dominio:995"
- PORTAGE_ELOG_MAILFROM: Permite configurar la dirección "from" de los correos de registro; su valor por defecto es "Portage".
- PORTAGE_ELOG_MAILSUBJECT: Permite la creación de una línea de asunto para los correos de registro. Note que puede hacer uso de dos variables de entorno: ${PACKAGE} mostrará el nombre y la versión del paquete, mientras que ${HOST} es el nombre del dominio completo del anfitrión donde está corriendo Portage. Aquí está un posible uso:
PORTAGE_ELOG_MAILSUBJECT="El paquete \${PACKAGE} fue instalado en \${HOST} con algunos mensajes"
Si ha usado enotice con Portage-2.0.*, elimine enotice, ya que es incompatible con elog.