APT_PREFERENCES(5)

NAME
apt_preferences - Fichero de preferencias de APT

DESCRIPCIóN

El fichero de preferencias de APT /etc/apt/preferences se puede usar para controlar las versiones de los paquetes seleccionados.

Cuando el fichero sources.list(5) contiene referencias a más de una distribución (por ejemplo, estable y pruebas). APT asigna una prioridad a cada versión disponible. 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 que ejemplar se seleccionará para la instalación.

Puede 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.

  ¿CóMO ASIGNA APT LAS PRIORIDADES?

Si no existe el fichero de preferencias o 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, >>distribución objetivo<< (n. t. del inglés target release), que recibe una prioridad 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). 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. Asigna:

prioridad 100
    a la versión instalada (si existe).

prioridad 500
    a la versión que ni está instalada ni pertenece a la distribución objetivo.

prioridad 990
    a las versiones que no están instaladas pero 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 al resto.

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

•   Nunca instalar una versión anterior de un paquete en lugar de la instalada a menos que la prioridad de la versión disponible supere 1000 (Dese 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. Tenga en consideración que instalar una versión anterior del paquete puede ser peligroso).

•   Instalar 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 proporcionado la opción --reinstall se instala la que no está instalada.

Típicamente, la versión instalada del paquete (prioridad 100) no es tan reciente como la disponible a través de sources.list(5) (prioridad 500 o 990). Entonces el paquete se actualizará cuando se ejecute apt-get install algún-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 cuando se ejecute apt-get install algún-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 cuando se ejecute apt-get install algún-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 las asignaciones 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 o dos formas: una específica y otra general.

•   La forma específica asigna una prioridad ("Pin-Priority") a un paquete concreto y se aplica a una versión 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".
    Package: perl
    Pin: version 5.8*
    Pin-Priority: 1001

•   La forma general asigna una prioridad a todas las versiones de los paquetes en una distribución (esto es, a todas las versiones de paquetes provenientes de un fichero Release), o a todos las versiones de un paquete que provienen de un sitio concreto en internet, identificado por su nombre de dominio. Esta forma general del fichero de preferencias de APT sólo se aplica a grupos de paquetes. Por ejemplo, el siguiente registro hace que asigne una prioridad alta a todas las versiones disponibles desde un sitio local.
    Package: *
    Pin: origin ""
    Pin-Priority: 999
    Un aviso acerca de la palabra clave usada en "origin": no debe de confundirse con el origen ("Origin:") de una distribución tal y como se especifica en el fichero Release. Lo que sigue a "Origin:" en un fichero Release no es una 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 "unstable".
    Package: *
    Pin: release a=unstable
    Pin-Priority: 50
    El siguiente registro asigna una prioridad alta a todas las versiones de los paquetes pertenecientes a la distribución que tiene como nombre de Archivo "stable" y como número de versión "3.0".
    Package: *
    Pin: release a=unstable, v=3.0
    Pin-Priority: 50

  ¿CóMO INTERPRETA APT LAS PRIORIDADES?

Las prioridades (P) asignadas en el fichero de preferencias deben ser números enteros. 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 la versión instalada sea más reciente.

100 < P <=500
    la versión se instala a menos que exista un ejemplar perteneciente a otra distribución o la versión instalada sea más reciente.

0 < P <=100
    la versión sólo se instala si no hay ninguna versión del paquete instalado.

P < 0
    la versión nunca se instala.

Si uno de los registros de forma específica descritos arriba coinciden con una versión disponible de un paquete, el registro determina la prioridad de la versión. En caso de que esto no sea así, si cualquier número de registros de forma 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
Entonces:

•   La versión más reciente disponible del paquete perl se instala mientras que el número de versión empieze con "5.8". Si se encuentra disponible cualquier versión 5.8* de perl y la versión instalada es 5.9*, entonces se instala la versión5.8*.

•   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 inestable sólo se instalarán si se seleccionan para instalar y no hay ninguna versión del paquete instalado.

  DETERMINACIóN DE LA VERSIóN DEL PAQUETE Y DE LAS PROPIEDADES DE LA DISTRIBUCIóN

Los recursos del 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 encuentra normalmente en el directorio .../dists/nombre-dist/ componente/arquitectura, por ejemplo, .../dists/stable/main/binary-i386/Packages. El fichero consiste en una serie de registros de varias líneas, uno por cada paquete disponible en ese directorio. Para montar un repositorio de APT sólo son significativas dos de las líneas de cada registro:

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 normalmente se encuentra en el directorio .../dists/nombre-dist, por ejemplo, .../dists/stable/Release, o .../dists/woody/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:

La línea Archive:
    Indica el nombre del archivo al que pertenecen todos los paquetes del árbol de directorios. Por ejemplo, la línea "Archive: 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 de estable. 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 a=stable

La línea Version:
    Indica la versión de la distribución. Por ejemplo, los paquetes en árbol pueden pertenecer a la versión 3.0 de Debian GNU/Linux. Dese cuenta de que pruebas e inestable no tienen una versión asignada porque no han sido liberadas. 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 ejemplares son de la sección main, ésto asegura que su licencia se ajusta a las 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 procedencia más común es Debian. 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 o=Debian

La línea Label:
    nombra la etiqueta de los paquetes en los árboles de directorios del fichero Release. Normalmente es Debian. 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 l=Debian

Todos los ficheros Packages y Release que se obtienen de los recursos de sources.list(5) se guardan en el directorio /var/lib/apt/lists, o en el directorio definido por la variable Dir::State::Lists, que puede estar definida 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 inestable.

  LíNEAS OPCIONALES EN UN 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.

La línea Pin-Priority: es opcional. Si se omite, APT asigna una prioridad un número menor que la última prioridad especificada en una línea que empieze con Pin-Priority: release ....

EJEMPLOS

  SIGUIENDO LA DISTRIBUCIóN ESTABLE

El siguiente fichero de preferencias de APT provoca que APT asigne una prioridad mayor de la que asigna por omisión (500) a todos los ejemplares de la distribución estable y una prioridad más baja al resto de las 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) apropiado 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 estable.
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 de pruebas, el paquete no se actualizará de nuevo amenos que se ejecute de nuevo la orden.
apt-get install paquete/testing

  SIGUIENDO LA DISTRIBUCIóN DE PRUEBAS O INESTABLE

El siguiente fichero de preferencias de APT provocará que APT asigne mayor prioridad a las versiones de la distribución de pruebas, una prioridad menor a los paquetes de la distribución inestable, 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 la órdenes siguientes hace que APT actualice los paquetes a la última versión de la distribución de pruebas.
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 inestable. Más tarde, apt-get upgrade actualizarán el paquete a la última versión de la distribución de pruebas si es más reciente que la versión instalada, de otro modo, se instalará la versión más reciente de la distribucióninestable si es más reciente que la versión instalada.
apt-get install paquete/unstable

VéASE ADEMáS

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

FALLOS

Vea la página de fallos de APT <URL:http://bugs.debian.org/src:apt>. Si desea avisar de un fallo en APT, vea /usr/share/doc/debian/bug-reporting.txt o la orden reportbug(1).

AUTOR

APT fue escrito por el equipo de APT <apt@packages.debian.org>.

TRADUCTOR

Traducción de Rubén Porras Campo <debian-l10n-spanish@lists.debian.org>