apt_preferences

Autres langues

Langue: es

Autres versions - même langue

Version: 16 de Febrero 2010 (ubuntu - 25/10/10)

Section: 5 (Format de fichier)

NAME

apt_preferences - Fichero de preferencias de APT

DESCRIPCIóN

El fichero de preferencias de APT /etc/apt/preferences y los segmentos de fichero dentro del directorio /etc/apt/preferences.d/ se pueden usar para controlar las versiones de los paquetes seleccionados para su instalación.

Puede disponer de varias versiones de un mismo paquete cuando el fichero sources.list(5) contiene referencias a más de una distribución (por ejemplo, «stable» (estable) y «testing» (en pruebas)). APT asigna una prioridad a cada versión disponible, y limitado por las dependencias, apt-get selecciona la versión con mayor prioridad. El fichero de preferencias de APT modifica las prioridades asignadas por APT, dando control al usuario sobre qué versión se seleccionará para su instalación.

Puede que estén disponibles varios ejemplares de la misma versión de un paquete cuando el fichero «sources.list(5)» contenga referencias a más de una fuente. En este caso apt-get descarga el ejemplar que aparezca listado primero en el fichero «sources.list(5)». El fichero de preferencias de APT no modifica la elección del ejemplar, sólo la elección de la versión.

Las preferencias («preferences») son un gran poder en las manos de un administrador de sistemas, ¡pero también se pueden convertir en su mayor pesadilla si se usan sin cuidado! APT no se cuestionará si las preferencias contienen opciones erróneas, y por ello puede llevar a paquetes no instalables o tomar decisiones erróneas al actualizar paquetes. Pueden surgir más problemas si se mezclan varias publicaciones de distribución sin un correcto entendimiento de los siguientes párrafos. Los paquetes incluidos en una distribución específica no se revisan en combinación con otras distribuciones más antiguas o más recientes, y puede que no funcionen como esperado. Queda avisado.

Tenga en cuenta los ficheros en el directorio /etc/apt/preferences.d se analizan en orden alfanumérico ascendente y deben seguir las convenciones de nombre a continuación: Los ficheros no tienen extensión o la extensión «pref» y sólo deben contener caracteres alfanuméricos, guión (-), guión bajo (_) y punto (.). De no ser así, se ignorarán silenciosamente.

¿Cómo asigna APT las prioridades?

De no existir el fichero de preferencias, o si no hay ninguna entrada en éste que se pueda aplicar a una determinada versión, se asigna a la versión la prioridad de la distribución a la que pertenece. Es posible seleccionar una distribución, la >>distribución objetivo<< (n. t. del inglés target release), que recibe una prioridad predefinida mayor que el resto. La distribución objetivo se puede definir en la línea de órdenes al ejecutar apt-get o en el fichero de configuración de APT /etc/apt/apt.conf. Tenga en cuenta que esto tiene preferencia sobre cualquier otra prioridad definida en /etc/apt/preferencias, pero que no afecta al anclaje de paquetes específicos. Por ejemplo,

 apt-get install -t testing paquete
 
 APT::Default-Release "stable";
 

Si se ha especificado una distribución objetivo, APT usa el siguiente algoritmo para establecer las prioridades de cada versión de un paquete. Asignar:

priority 1

para las versiones procedentes de archivos que en sus ficheros Release están marcados como «NotAutomatic:yes», como en el archivo «experimental» de Debian.

prioridad 100

a la versión instalada (de existir).

prioridad 500

a las versiones que ni están instaladas ni pertenecen a la distribución objetivo.

prioridad 990

a las versiones que no están instaladas y que pertenecen a la distribución objetivo.

Si no se especifica ninguna distribución objetivo APT asigna prioridad 100 a todas las versiones de los paquetes instalados y 500 a las versiones no instaladas de paquetes. Las versiones procedentes de archivos que en sus ficheros Release están marcados como «NotAutomatic:yes» - estas versiones reciben la prioridad 1.

APT aplica las siguientes normas, expuestas por orden de precedencia, para determinar qué versión del paquete debe instalar.

• Nunca instala una versión anterior de un paquete en lugar de la instalada a menos que la prioridad de la versión disponible supere 1000 («Desactualizar» significa instalar una versión menos reciente de un paquete. Tenga en cuenta que ninguna de las prioridades que asigna APT por omisión superan 1000; éstas prioridades sólo se pueden establecer mediante el fichero de preferencias. Observe que instalar una versión anterior del paquete puede ser peligroso).
• Instala la versión de mayor prioridad.
• Si dos o más versiones tienen la misma prioridad, instala la más reciente (esto es, la que tiene un número de versión mayor).
• Si dos o más versiones tienen la misma prioridad y número de versión, pero o bien difieren en su meta-información o se ha introducido la opción --reinstall, se instalará la que no está instalada.

Generalmente, la versión instalada del paquete (prioridad 100) no es tan reciente como la disponible a través de las fuentes en «sources.list(5)» (prioridad 500 o 990). En este caso, el paquete se actualizará al ejecutar apt-get install paquete o apt-get upgrade.

Rara vez la versión instalada de un paquete es más reciente que cualquiera de las versiones disponibles. En éste caso no se instalará la versión anterior del paquete al ejecutar apt-get install paquete o apt-get upgrade.

A veces, la versión instalada de un paquete es más reciente que la versión perteneciente a la distribución objetivo, pero no tan reciente como la versión de otra distribución. Este tipo de paquetes se actualizarán al ejecutar apt-get install paquete o apt-get upgrade porque al menos uno de los ejemplares disponibles tiene una prioridad mayor que la versión instalada.

El efecto de las preferencias sobre APT

El fichero de preferencias de APT permite al administrador del sistema controlar la asignación de prioridades. El fichero consiste en uno o más registros de varias líneas separados entre sí por espacios en blanco. Los registros pueden tener una de estos dos formatos: el específico o el general.

• El formato «específico» asigna una prioridad («Pin-Priority») a un paquete concreto y afecta a una versión especificada o rango de versiones. Por ejemplo, el siguiente registro asigna una prioridad alta a todas las versiones del paquete perl cuyo número de versión empiece con «5.8». Puede especificar varios paquetes separados por espacios.
 Package: perl
 Pin: version 5.8*
 Pin-Priority: 1001
 
• El formato «general» asigna una prioridad a todas las versiones de los paquetes en una distribución (esto es, a todas las versiones de paquetes listados en un fichero Release particular), o a todas las versiones de un paquete provenientes de un sitio concreto en Internet, identificado por su nombre de dominio.
Esta entrada con formato general en el fichero de preferencias de APT sólo afecta a grupos de paquetes. Por ejemplo, el siguiente registro asigna una prioridad alta a todas las versiones disponibles desde un sitio local.
 Package: *
 Pin: origin ""
 Pin-Priority: 999
 

Una nota de aviso: la palabra clave usada aquí es «origin», el cual se puede usar para coincidir con un nombre de sistema. El siguiente registro asignará una prioridad alta a todas las versiones disponibles desde el servidor identificado con el nombre de sistema «ftp.de.debian.org».

 Package: *
 Pin: origin "ftp.de.debian.org"
 Pin-Priority: 999
 

No se debe confundir con el origen («Origin») de una distribución tal y como se especifica un fichero Release. Lo que sigue a la etiqueta «Origin:» en un fichero Release no es la dirección de un sitio de Internet, sino el autor o el nombre del proveedor, tales como «Debian» o «Ximian».

El siguiente registro asigna una prioridad baja a todas las versiones de los paquetes pertenecientes a cualquier distribución que tenga como nombre de archivo de paquetes «unstable» (inestable).

 Package: *
 Pin: release a=unstable
 Pin-Priority: 50
 

El siguiente registro asigna una prioridad alta a todas las versiones de los paquetes pertenecientes a cualquier distribución que tenga como nombre clave «squeeze».

 Package: *
 Pin: release n=squeeze
 Pin-Priority: 900
 

El siguiente registro asigna una prioridad alta a todas las versiones de los paquetes pertenecientes a cualquier publicación que tenga como nombre de archivo de paquetes «stable» y como número de versión «3.0».

 Package: *
 Pin: release a=stable, v=3.0
 Pin-Priority: 500
 

¿Cómo interpreta APT las prioridades?

Las prioridades (P) asignadas en el fichero de preferencias deben ser números enteros positivos o negativos. Se interpretan (en general) del siguiente modo:

P > 1000

La versión se instala incluso si es una versión anterior a la instalada en el sistema.

990 < P <=1000

La versión se instala aunque no venga de la distribución objetivo, a menos que la versión instalada sea más reciente.

500 < P <=990

La versión se instala a menos que exista otro ejemplar disponible perteneciente a la distribución objetivo, o bien si la versión instalada es más reciente.

100 < P <=500

La versión se instala a menos que exista una versión disponible perteneciente a otra distribución, o si la versión instalada es más reciente.

0 < P <=100

La versión sólo se instala si no hay ninguna versión del paquete instalada.

P < 0

Evita la instalación de la versión.

Si cualquier registro con formato específico coincide con una versión disponible de un paquete, el registro determina la prioridad de la versión del paquete. De no ser así, y si cualquier número de registros con formato general coinciden con una versión, el primero determina la prioridad de la versión del paquete.

Por ejemplo, suponga que el fichero de preferencias de APT contiene los tres registros antes mencionados:

 Package: perl
 Pin: version 5.8*
 Pin-Priority: 1001
 
 Package: *
 Pin: origin ""
 Pin-Priority: 999
 
 Package: *
 Pin: release unstable
 Pin-Priority: 50
 

Por ello:

• La versión más reciente disponible del paquete perl se instalará siempre que el número de versión empiece con «5.8». De existir cualquier versión 5.8* disponible de perl, y si la versión instalada es 5.9*, se instalará la versión 5.8*, desactualizando el paquete.
• Cualquier otra versión de un paquete distinto de perl disponible desde el sistema local tiene prioridad sobre el resto de las versiones, incluso sobre los pertenecientes a la distribución objetivo.
• Otras versiones que tengan un origen distinto al sistema local listadas en «sources.list(5)» y que pertenezcan a la distribución unstable sólo se instalarán si se seleccionan para su instalación y si no hay ninguna versión del paquete ya instalado.

Determinar la versión del paquete y las propiedades de la distribución

Los recursos listados en el fichero «sources.list(5)» deben proporcionar los ficheros Packages y Release. Éstos describen los paquetes disponibles en cada uno de los sitios.

El fichero Packages se suele encontrar en el directorio .../dists/nombre-dist/componente/arquitectura, por ejemplo, .../dists/stable/main/binary-i386/Packages. Este fichero consiste en una serie de registros de varias líneas, uno por cada paquete disponible en ese directorio. Sólo dos líneas en cada registro son relevantes a la hora de definir las prioridades de APT:

La línea Package:

indica el nombre del paquete.

La línea Version:

indica el número de versión del paquete.

El fichero Release se suele encontrar en el directorio .../dists/nombre-dist, por ejemplo .../dists/stable/Release o .../dists/lenny/Release. El fichero consiste en registros de una sola línea que se aplican a todos los paquetes por debajo del directorio padre. Al contrario que el fichero Packages, casi todas las líneas del fichero Release son relevantes para las prioridades de APT:

Las líneas Archive: o Suite:

indican el nombre del archivo al que pertenecen todos los paquetes del árbol de directorios. Por ejemplo, la línea «Archive: stable» o «Suite: stable» especifica que todos los paquetes en el árbol de directorios por debajo del directorio raíz marcado en el fichero Release están en un archivo «stable» (estable). Para especificar una preferencia de acuerdo con este parámetro tendrá que insertar la siguiente línea en el fichero de preferencias de APT:
 Pin: release a=stable
 

La línea Codename:

indica el nombre de la distribución a la que pertenecen todos los paquetes del árbol de directorios. Por ejemplo, la línea «Codename: squeeze» especifica que todos los paquetes en el árbol de directorios por debajo del directorio padre marcado en el fichero Release pertenecen a la versión llamada squeeze. Para especificar una preferencia de acuerdo con este parámetro tendrá que poner una de las siguientes líneas en el fichero de preferencias de APT:
 Pin: release n=squeeze
 

La línea Version:

nombra la versión de la publicación. Por ejemplo, los paquetes en el árbol pueden pertenecer a la versión 3.0 de Debian GNU/Linux. Observe que, generalmente, testing y unstable no tienen una versión asignada porque no se han publicado. Para especificar una preferencia de acuerdo con este parámetro tendrá que poner una de las siguientes línea en el fichero de preferencias de APT:
 Pin: release v=3.0
 Pin: release a=stable, v=3.0
 Pin: release 3.0
 

La línea Component:

indica la licencia asociada a los paquetes en el árbol de directorios correspondiente al fichero Release. Por ejemplo, la línea Component: main especifica que todos los paquetes en el árbol de directorios pertenecen a la sección main, lo cual asegura que su licencia se ajusta a las Directrices sobre software libre de Debian (DFSG). Para especificar una preferencia de acuerdo con este parámetro tendrá que poner la siguiente línea en el fichero de preferencias de APT:
 Pin: release c=main
 

La línea Origin:

indica la procedencia de los paquetes en el árbol de directorios del fichero Release. La fuente más común es Debian. Puede definir esta fuente en el fichero de preferencias de APT mediante la siguiente línea:
 Pin: release o=Debian
 

La línea Label:

nombra la etiqueta de los paquetes en los árboles de directorios del fichero Release. Generalmente, es Debian. Puede definir esta etiqueta en el fichero de preferencias de APT mediante la siguiente línea:
 Pin: release l=Debian
 

Todos los ficheros Packages y Release obtenidos de los recursos en «sources.list(5)» se guardan en el directorio /var/lib/apt/lists, o en el directorio definido por la variable Dir::State::Lists, que se puede definir en el fichero apt.conf. Por ejemplo, el fichero debian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release contiene los ficheros Release obtenidos de debian.lcs.mit.edu para la arquitectura binary-i386 de la sección contrib de la distribución «unstable» (inestable).

Líneas opcionales en el registro de preferencias de APT

Cada registro en el fichero de preferencias de APT puede comenzar con una o más líneas que tengan como primera palabra Explanation:. Útil para comentarios.

EJEMPLOS

Seguir la distribución «stable» (estable)

El siguiente fichero de preferencias de APT provoca que APT asigne una prioridad mayor de la que asigna por omisión (500) a todas las versiones de paquete de la distribución stable y una prioridad más baja al resto de versiones de paquetes de otras distribuciones Debian.

 Explanation: Desinstalar o no instalar los ejemplares que no
 Explanation: pertenecen a la distribución estable
 Package: *
 Pin: release a=stable
 Pin-Priority: 900
 
 Package: *
 Pin: release o=Debian
 Pin-Priority: -10
 

Con un fichero «sources.list(5)» adecuado y el fichero de preferencias mostrado anteriormente, cualquiera de las siguientes órdenes de APT hace que o bien todo el sistema o bien sólo algunos paquetes se actualicen a la última versión en stable.

 apt-get install paquete
 apt-get upgrade
 apt-get dist-upgrade
 

La siguiente orden hace que APT actualice un paquete a la última versión de la distribución testing, el paquete no se actualizará de nuevo a menos que se ejecute la orden otra vez.

 apt-get install paquete/testing
 

Seguir la distribución «testing» (en pruebas) o «unstable» (inestable)

El siguiente fichero de preferencias de APT provocará que APT asigne mayor prioridad a las versiones de la distribución testing, una prioridad menor a los paquetes de la distribución unstable, y una prioridad prohibitiva a los paquetes de otras distribuciones de Debian.

 Package: *
 Pin: release a=testing
 Pin-Priority: 900
 
 Package: *
 Pin: release a=unstable
 Pin-Priority: 800
 
 Package: *
 Pin: release o=Debian
 Pin-Priority: -10
 

Con un fichero sources.list(5) adecuado y el fichero de preferencias anterior cualquiera de las siguientes órdenes hará que APT actualice los paquetes a la última versión de la distribución testing.

 apt-get install paquete
 apt-get upgrade
 apt-get dist-upgrade
 

La siguiente orden hace que APT actualice un determinado paquete a la última versión de la distribución unstable. Más tarde, apt-get upgrade actualizará el paquete a la última versión de la distribución testing si es más reciente que la versión instalada. De otro modo, se instalará la versión más reciente de la distribuciónunstable si es más reciente que la versión instalada.

 apt-get install paquete/unstable
 

Seguir la evolución de una publicación por el nombre

El siguiente fichero de preferencias de APT provocará que APT asigne una prioridad superior a la predeterminada (500) a todas las versiones de paquetes pertenecientes a un nombre de distribución especificado, y una prioridad prohibitivamente baja a las versiones de paquetes pertenecientes a otras distribuciones de Debian, nombres clave y archivos Debian. Tenga en cuenta que con esta preferencia, APT seguirá la migración de una publicación desde el archivo testing a stable y por último oldstable. Si desea seguir, por ejemplo, el progreso en testing obviando el nombre de la publicación, debería usar los ejemplos de configuración mencionados anteriormente.

 Explanation: Eliminar o no instalar cualquier paquete de Debian cuya versión sea
 Explanation: distinta a aquellos en las distribuciones de nombre squeeze o sid
 Package: *
 Pin: release n=squeeze
 Pin-Priority: 900
 
 Explanation: El nombre clave de Debian «unstable» siempre es sid
 Package: *
 Pin: release n=sid
 Pin-Priority: 800
 
 Package: *
 Pin: release o=Debian
 Pin-Priority: -10
 

Con un fichero «sources.list(5)» adecuado y el fichero de preferencias mostrado anteriormente, cualquiera de las siguientes órdenes provocará que APT actualice los paquetes a la última versión de la distribución llamada squeeze.

 apt-get install paquete
 apt-get upgrade
 apt-get dist-upgrade
 

La siguiente orden hace que APT actualice un determinado paquete a la última versión de la distribución sid. Más tarde, apt-get upgrade actualizará el paquete a la última versión de la distribuciónsqueeze si es más reciente que la versión instalada. De otro modo, se instalará la versión más reciente de la distribución sid si es más reciente que la versión instalada.

 apt-get install paquete/sid
 

FICHEROS

/etc/apt/preferences

Ficheros de preferencias de versión. Aquí puede especificar el anclaje ("pinning"), una preferencia para conseguir ciertos paquetes a partir de una fuente diferente o de una versión diferente de una distribución. Opción de configuración: Dir::Etc::Preferences.

/etc/apt/preferences.d/

Fragmentos de fichero para las preferencias de la versión. Opción de configuración: Dir::Etc::PreferencesParts.

VéASE TAMBIéN

apt-get(8) apt-cache(8) apt.conf(5) sources.list(5)

BUGS

m[blue]Página de errores de APTm[][1]. Si quiere informar de un error en APT, consulte /usr/share/doc/debian/bug-reporting.txt o use la orden reportbug(1).

TRADUCCIÓN

La traducción al español la realizaron Ismael Fanlo, Carlos Mestre, Rudy Godoy, Gustavo Saldumbide, Javier Fernández-Sanguino y Rubén Porras Campo entre los años 2003 y 2004. La traducción fue actualizada por Francisco Javier Cuadrado y Omar Campagne Polaino entre los años 2009 y 2010.

Tenga en cuenta que este documento puede contener secciones sin traducir. Esto es intencionado para evitar perder contenido cuando la traducción no está actualizada con respecto al documento original.

AUTHOR

Equipo de APT

NOTES

1.
Página de errores de APT
http://bugs.debian.org/src:apt