====== Apt-Pinning ====== **(Trabajo en progreso)** ===== Introducción ===== Quienes utilizan Debian GNU/Linux regularmente, seguramente habrán notado que aunque este sistema operativo tiene gran estabilidad, sus paquetes pueden quedar obsoletos con respecto a las últimas versiones estables que van lanzando sus desarrolladores. Afortunadamente, existe una alternativa para aquellos que tengan un espíritu no tan conservador, conocida como //apt-pinning//. Este método permite utilizar un sistema operativo fundamentalmente estable, pero con versiones más recientes de aquellos paquetes que interesan. **Nota:** Antes de utilizar pinning, siempre es recomendable verificar si el paquete deseado ha sido agregado ya al repositorio //backports//, ya que tomarlo de este origen ocasiona menos conflictos en el sistema. Al utilizar //apt-pinning//, el responsable de garantizar la compatibilidad de los paquetes es el usuario, por lo que Debian no alienta el uso de //apt-pinning// sin una cuidadosa consideración. ===== Configuración ===== En su nivel más básico, //apt-pinning// utiliza dos archivos: ''/etc/apt/sources.list'' y ''/etc/apt/preferences''. Además es importante el uso del parámetro ''target'', que se combina con la rama que se pretende utilizar. ==== Configurar los orígenes ==== El primer paso consiste en configurar el archivo ''/etc/apt/sources.list'' para que incluya las ramas deseadas. Un ejemplo simple sería este: #Stable deb http://ftp.us.debian.org/debian stable main non-free contrib deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free #Testing deb http://ftp.us.debian.org/debian testing main non-free contrib deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free #Unstable deb http://ftp.us.debian.org/debian unstable main non-free contrib deb http://non-us.debian.org/debian-non-US unstable/non-US main contrib non-free Evidentemente, este ejemplo puede ampliarse agregando las entradas ''deb-src'' u otros repositorios como ''security.debian.org''. ==== Configurar las preferencias ==== El próximo paso consiste en crear (o modificar) el archivo ''/etc/apt/preferences''. Es allí donde verdaderamente ocurre el //pinning//. Este archivo tiene diferentes maneras de configurarse que no son del todo consistentes entre sí y de las cuales depende la manera en que el sistema interpreta los parámetros, por lo que probablemente sea recomendable utilizar un ejemplo como el siguiente: Package: * Pin: release o=Debian,a=stable Pin-Priority: 800 Package: * Pin: release o=Debian,a=testing Pin-Priority: 500 Package: * Pin: release o=Debian,a=unstable Pin-Priority: 300 Package: * Pin: release o=Debian Pin-Priority: -10 El parámetro ''Package'' define el paquete para el cual se desea utilizar //pinning//. En este caso, al colocar un asterisco se admitirán todos los paquetes, pero también podría colocarse el nombre de algún paquete en particular.((El asterisco no puede utilizarse de comodín para completar nombres de paquetes.)) El parámetro ''Pin'' especifica la rama a utilizar, o la versión del paquete si se especificó un nombre. En este caso se han configurado tres ramas, pero podrían utilizarse solo dos.((El parámetro ''Pin'' también podría utilizarse para especificar un repositorio existente en otro servidor, pero esto no lo cubriremos aquí.)) El parámetro ''Pin-Priority'' establece la prioridad de los diferentes Pin, observe que este ejemplo tiene un valor mayor en el Pin ''stable'', por lo que se priorizará sobre ''testing'' y ''unstable''. la última entrada tiene un valor negativo, lo cual implica que no se instalará nunca un paquete de otra rama, como por ejemplo ''experimental''. Para conocer las prioridades de cada origen, puede utilizarse el comando ''apt-cache policy''. Si lo que se desea es conocer las prioridades de uno o varios paquetes, puede ejecutarse lo siguiente: apt-cache policy nombrepaquete1 [nombrepaquete2] [...] ==== Actualización ==== Una vez configurados los archivos necesarios, es preciso actualizar los listados de paquetes disponibles: apt-get update ===== Uso de apt-pinning ===== Hay dos maneras de utilizar apt-pinning: ===== Referencias ===== [[http://jaqque.sbih.org/kplug/apt-pinning.html|Apt-pinning for beginners (John H. Robinson)]] \\ [[http://manpages.debian.net/man/5/apt_preferences|apt_preferences (Debian)]] \\ [[http://www.debian.org/doc/manuals/repository-howto/repository-howto|Repository howto (Debian)]] \\ [[http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html|Apt howto (Debian)]] \\ [[http://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_tweaking_candidate_version|Reference on apt-pinning (Debian)]] \\ [[http://wiki.debian.org/DebianExperimental|Debian experimental (Debian)]] \\ [[http://www.xs4all.nl/~carlo17/howto/debian.html#errata|Pinning errata (Carlo Wood)]] \\ [[http://www.argon.org/~roderick/apt-pinning.html|Apt-pinning (Roderick Schertler)]] \\ [[https://help.ubuntu.com/community/PinningHowto|pinning howto (Ubuntu)]] \\ [[https://help.ubuntu.com/community/AptGetHowTo|Apt-get howto (Ubuntu)]]