Apt Pinning Stable-Testing-Unstable
Bueno la verdad que me imagino que sabrán hacerlo pues es la misma configuración normal solo que el truco estaba ( para que los programas cumplieran dependencias y demas) en usar aptitude en vez de apt. También en la configuración del Preference los pin priority bueno aquí le dejo el tutoríal que prepare de varias fuentes:
****NOTA: Ya tengo mi sistema configurado y he instalado mas de 23 aplicaciones en las que incluyen testing y unstable como pidgin, evolution, revelation, y mas. el problema que tuve era mas de dependencias que de otras cosas pero algunas tuve que hacerlo manualmente, no muchas solo como 7 pero mi sistema funciona perfecto, lo único que me falta es instalar aplicaciones de KDE ya que no me gustan ninguna de ellas solo uso de gnome, pero probare instalando el K3B y veré si no se funde todo jejje.
##################################### Repositorios Stable/Testing/Unstable ########################################
##### Main #####
### GNU/Linux Debian - Stable
deb http://ftp.us.debian.org/debian stable main non-free contrib
### GNU/Linux Debian - Testing
deb http://ftp.us.debian.org/debian testing main non-free contrib
### GNU/Linux Debian - Unstable
deb http://ftp.us.debian.org/debian unstable main non-free contrib
#### Seguridad ####
### GNU/Linux Debian - Stable
deb http://security.debian.org/ stable/updates main contrib non-free
### GNU/Linux Debian - Testing
deb http://security.debian.org/ testing/updates main contrib non-free
#### Multimedia ####
### GNU/Linux Debian Multimedia - Stable
deb http://www.debian-multimedia.org/ lenny main
#### Repositorios Adicionales ####
### Volatiles
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
#### Actualizamos el sistema ####
# aptitude update##### Archivo Preferences ####
Se crea el siguiente archivo
# gedit /etc/apt/preferencesy se copia el siguite contenido en el
Package: *
Pin: release a=stable
Pin-Priority: 990
Package: *
Pin: release a=testing
Pin-Priority: 700
Package: *
Pin: release a=unstable
Pin-Priority: 100
El pinning puede ser redirigido a un archivo, un origen, la versión de un paquete, un componente, etc...
Con "o=" se especifica el origen; es decir, la distribución del paquete, con "a=" la rama (sarge, sid, stable, etc...).
En Pin-Priority colocamos un número que nos indique la prioridad, aquí pongo el significado de estos:
- 1001 El paquete NUNCA será remplazado. No se puede actualizar o envejecer de ninguna manera.
- 1000 El efecto es casi igual, ahora no se podrá envejecer a la versión indicada.
- 990 El paquete se podrá actualizar a una versión superior de la publicación definida como “preferente” en apt.conf.
- 500 El paquete se podrá actualizar a una versión superior de cualquier repositorio disponible en sources.list
- 100 Otras versiones de cualquier publicación tendrá preferencia sobre la versión indicada en la parte de Pin. De hecho la versión indicada en Pin solo se instalará si no hay otra disponible y el paquete no esta instalado aun.
- -1 Paquete despreciado, totalmente contrario a la prioridad 1001, el paquete nunca se instalará.
Suficiente de esto, dejo un ejemplo:
Package: perl
Pin: version 5.8*
Pin-Priority: 1001Aquí podemos ver que el paquete perl-5.8* no es sustituible por ningún otro. Para más información pueden consultar “man apt_preferences”.
Mi preference es el siguiente:
Package: *
Pin: release a=stable
Pin-Priority: 990
Package: *
Pin: release a=testing
Pin-Priority: 700
Package: *
Pin: release a=unstable
Pin-Priority: 100
Así uso los paquetes de testing, los paquetes de unstable que no están en testing también los muestra. Lo mismo sucede con los paquetes que solo están en experimental.
A raíz de estos resultados, cabría preguntarse: ¿Es viable hacer una desactualización en Debian?.
Respuesta: teóricamente sí, aunque en la práctica es complicado y lo más probable es que traiga de su mano complicaciones. Ha de notarse que el sistema de paquetes de Debian está preparado para actualizar paquetes, no para desactualizarlos.
Si aun así, por simple curiosidad, quieres saber como se podría desactualizar un paquete o la distribución entera, bastaría con indicar que la versión del paquete o la rama deseada tenga una prioridad superior a 1000.
#### Este dato es rastreado de modo inequívoco por APT cuando "hurga" el interior de los directorios "release" presente en todos los repositorios oficiales.
Ejemplos:
Ejemplo 1:
# cd /var/lib/apt/lists
# cat www.rarewares.org_debian_packages_unstable_._Releasecuya salida será:
Archive: unstable
Origin: xmixahlx
Label: xmixahlx_rarewares-unstable
Architecture: i386
# cat www.debian-multimedia.org_dists_unstable_Release
Origin:
Unofficial Multimedia Packages
Label: Unofficial Multimedia Packages
Suite: unstable
Version: None
Codename: sid
Date: Sat, 28 Jun 2008 10:21:17 UTC
Architectures: alpha amd64 armel hppa ia64 i386 mipsel powerpc sparc
Components: main
Description: This repository is mostly non-free
..............Ejemplo 2:
#cat security.debian.org_dists_testing_updates_ReleaseOrigin: Debian
Label: Debian-Security
Suite: testing
Version: None
Codename: lenny
Date: Sat, 28 Jun 2008 09:30:14 UTC
Architectures: amd64 alpha arm armel hppa i386 ia64 mips mipsel powerpc s390 sparc
Components: updates/main updates/contrib updates/non-free
Description: Debian testing Security Updates
.................Donde:
* Archive o Suite = nos indica la rama a que pertenecen los paquetes (stable, testing. etc.);
* Components = indica el tipo de componente (main, contrib, non-free);
* Origin = especifica el propietario del repositorio;
* Label = identifica el repositorio;
* Architectures = la arquitectura de los paquetes contenidos en el repositorio (i386, sparc, etc.).
#### Ahora creamos el archivo apt-conf que falta a la fiesta! el siguiente es mi apt.conf decidí dejar stable como base ya que tendría un sistema mas confiable ####
# gedit /etc/apt/apt.confAgregamos lo siguiente:
APT::Default-Release "stable";
APT::Cache-Limit 100000000;
Apt::Get::Purge;
APT::Clean-Installed;
APT::Get::Fix-Broken;
APT::Get::Fix-Missing;
APT::Get::Show-Upgraded "true";#### Hacemos nuevamente la actualización de la base de datos de paquetes: ####
# aptitude updatey Listo ya tienes tu sistema en Stable/Testing/Unstable cabe mencionar que todo el sistema estará en la rama que tenga en ese momento, yo en mi caso instale Debian desde cero y luego configure el pinning para luego actualizar y comenzar a configurarlo e instalar los paquetes que me interesaban en la rama correspondiente:
#### De ahora en adelante tendremos varias posibilidades para instalar un paquete: ####
1. El método "normal":
# aptitude install nombre_paqueteque utiliza paquetes provenientes de la versión impuesta por defecto (en este caso stable) en apt.conf.
2. O usando la opción '-t':
# aptitude install -t rama nombre_paqueteque realizará la instalación del paquete deseado para la versión especificada, resolviendo las dependencias automáticamente.
3. O indicando la rama:
# aptitude install /RamaGracias a todos los que me ayudaron con esto... espero que el tuto le funcione revisenlo ( los uqe mas saben de esto) y cualquier cosa me avisan.