Páginas

lunes, agosto 25, 2008

Ramas de debian y como mezclarlas

Hoy voy a comentar como mezclar ramas de debian, para que tu ordenador o servidor esté a la última.

La rama stable (estable) hace referencia a versiones estables de los paquetes, llevan más tiempo funcionando y se sabe al 100% que funcionan correctamente y no dan ningún tipo de problemas. Lo que ocurre es que suelen ser versiones más antiguas que los paquetes actuales, y puede que haya una nueva aplicación que queramos probar o utilizar y todavía no se haya incluído en esta rama. Actualmente se llama etch.

La rama testing (en pruebas) son versiones en fase de pruebas, paquetes y aplicaciones más recientes que se incluirán en la siguiente versión estable de Debian, ahora mismo la siguiente a Etch (actual y estable) será Lenny. Pueden dar algún tipo de contratiempo, aunque por lo que he leído son versiones bastante probadas e incluir esta rama en nuestros repositorios es bastante seguro.

La rama unstable (inestable) o sid (Still In Development), lo último de lo último, son paquetes que todavía no son estables al 100% o no se han testeado lo suficiente, o están en ese proceso, pueden dar algunos problemas, pero si quieres estar a al última…

Por último la rama experimental entiendo que deben ser paquetes muy muy nuevos en proceso de correcciones, pruebas, etc. Experimentales como la propia palabra indica.

Por tanto las fases por la que pasan los paquetes sería de esta manera: experimental, unstable, testing y stable.

Se pueden mezclar algunas ramas en los repositorios entre sí, aunque esto quizás pudiera dar algún tipo de problema, asi que te recomiendo que lo hagas con precaución.

La manera de pasar de una rama a otra sería modificando nuestra sources.list. Para pasar de la rama estable a la de pruebas, tendriamos que modificar donde pone etch o stable por testing o lenny. Ejemplo:

De Stable o Etch:

deb http://ftp.fr.debian.org/debian/ etch main contrib non-free

A Testing o Lenny:

deb http://ftp.fr.debian.org/debian/ lenny main contrib non-free

Después, haríamos como normalmente hacemos cuando se modifica la lista de repositorios:

aptitude update
aptitude upgrade


Mezclando ramas de Debian

Suponiendo que tienes Debian estable, y quieras mezclar los paquetes de ella con los de testing, empieza por añadir sus entradas al sources.list:

# Debian etch
deb http://http.us.debian.org/debian stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://http.us.debian.org/debian stable main contrib non-free
deb http://security.debian.org stable/updates main contrib non-free

# Debian sid
deb http://ftp.se.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.se.debian.org/debian/ testin main contrib non-free

deb http://ftp.se.debian.org/debian-non-US testing/non-US main contrib non-free
deb-src http://ftp.se.debian.org/debian-non-US testing/non-US main contrib non-free

Lo siguiente, es editar o crear el fichero /etc/apt/apt.conf, y dejar esta línea:

APT::Default-Release "stable";

Ahora, a pesar de las entradas de Testing, tu sistema no se actualizará con los paquetes de esa distribución, ya que la distribución por defecto es la estable. Tan solo lo haría así, si se lo especificas explícitamente:

luna:~# apt-get dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

luna:~# apt-get dist-upgrade -t unstable -s
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done

..........................

287 packages upgraded, 60 newly installed, 87 to remove and 2 not upgraded.

Ahora es cuando podemos probar a instalar algún paquete que no estaba en Ech, indicando la distribución en el apt. En mi caso, probaré con un paquete que no empiece a dar problemas de dependencias:

luna:~# apt-get install -t unstable xpmumon
Reading Package Lists... Done
Building Dependency Tree... Done
1 packages upgraded, 0 newly installed, 0 to remove and 365 not upgraded.
Need to get 16.6kB of archives. After unpacking 4096B will be used.
Get:1 http://ftp.se.debian.org sid/main xpmumon 1.2.0 [16.6kB]
Fetched 16.6kB in 1s (10.6kB/s)
(Reading database ... 54123 files and directories currently installed.)
Preparing to replace xpmumon 1.1.0 (using .../xpmumon_1.2.0_powerpc.deb) ...
Unpacking replacement xpmumon ...
Setting up xpmumon (1.2.0) ...

En general, el apt es bastante listo (como no). Si elegís para instalar un paquete que no esté en estable, el solito lo busca en testing, pero no os hará nada si este no puede instalarse. Si queréis que lo actualice, has de especificarlo de nuevo:

luna:~# apt-get install gtkpbbuttons -s
Reading Package Lists... Done
Building Dependency Tree... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.

Since you only requested a single operation it is extremely likely that the package is simply not installable and a bug report against that package should be filed.
The following information may help to resolve the situation:

Sorry, but the following packages have unmet dependencies:
gtkpbbuttons: Depends: libc6 (>= 2.3.1-1) but 2.2.5-11.2 is to be installed
Depends: pbbuttonsd (>= 0.4.8) but it is not going to
be installed
E: Sorry, broken packages


luna:~# apt-get install -t unstable gtkpbbuttons -s
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
libc6 libc6-dev libdb1-compat locales pbbuttonsd
The following packages will be REMOVED:
libnss-db
The following NEW packages will be installed:
gtkpbbuttons libdb1-compat pbbuttonsd
3 packages upgraded, 3 newly installed, 1 to remove and 361 not upgraded.
Remv libnss-db (2.2-6.2 Debian:unstable)
Inst libdb1-compat (2.1.3-7 Debian:unstable) []
Inst libc6-dev (2.3.1-14 Debian:unstable) []
Inst locales (2.3.1-14 Debian:unstable) []
Inst libc6 (2.3.1-14 Debian:unstable)
Conf libdb1-compat (2.1.3-7 Debian:unstable)
Conf libc6 (2.3.1-14 Debian:unstable)
Inst pbbuttonsd (0.5.2-1 Debian:unstable)
Inst gtkpbbuttons (0.5.2-1 Debian:unstable)
Conf libc6-dev (2.3.1-14 Debian:unstable)
Conf locales (2.3.1-14 Debian:unstable)
Conf pbbuttonsd (0.5.2-1 Debian:unstable)
Conf gtkpbbuttons (0.5.2-1 Debian:unstable)

Disclaimer ;-). No he hecho muchas pruebas, así que puede que en tu sistema los resultados no sean exáctamente los mismos.

En el último ejemplo, no he hecho la instalación, sino que he usado la opción "-s" para simularla. Si hubiera instalado el paquete, hubiera actualizado como consecuencia la libc6, y esto seguramente me hubiera estropeado el sistema operativo al mezclar cosas que no deberían mezclarse. Asi que antes de instalar nada, prueba la opción "-s".

Ahora al buscar un paquete se te van a salir mezcladas las dos ramas con 'apt-cache search', por lo que instalaremos apt-show-versions.

apt-get install apt-show-versions

Ahora ya depende de que es lo que quieras hacer más concretamente. Por ejemplo:

luna:~# apt-show-versions -a -p xpmumon
xpmumon 1.2.0 install ok installed
xpmumon 1.1.0 stable
xpmumon 1.1.0 testing
xpmumon 1.2.0 unstable
xpmumon/unstable uptodate 1.2.0

Y en el propio apt-cache, también puedes usar la opción "-a", y podrás ver las versiones.


Artículo sacado de: http://www.bulma.net/body.phtml?nIdNoticia=1699

No hay comentarios:

Mi blog de negocios

Gracias por visitar esta web. Aquí encontrarás mi nuevo blog sobre negocios en la nube: www.tunegocioenlanube.net