AdministraciónDrake

En AdministraciónDrake, encontrarás artículos y trucos sobre la administracion de Mandriva Linux.

Si quieres colaborar con un artículo sobre administracion de Mandriva cuélgalo en AdministraciónDrake.


Actualización del sistema de una versión a otra más reciente de Mandriva

Actualizando Mandrake vía urpmi

Este articulo es un remix del articulo original[*] de HnZeKtO, y los comentarios de:

  • advocatux
  • NoP
  • luca
  • ohzaru
  • PnJ
  • presi
  • sinner

[*] publicado en Libertonia el 4 de Nov de 2003.

Es de sobra conocidos por todos o casi todos, el método de actualización vía internet que tiene la distribución Debian GNU/Linux, el famoso y potente apt. Con él, mediante una serie de sencillas instrucciones puede tener tu sistema actualizado.

Bueno, pues en Mandrake Linux, a partir de la versión 8.x viene de serie su propio sistema de actualización del sistema, urpmi.

Con este artículo lo que pretendo es más o menos explicar cómo pasar de una versión anterior de Mandrake a la última versión 9.2, esto es extrapolable a cualquier versión de Mandrake realizando unas pequeñas modificaciones en las direcciones de los medios.

Pues manos a la obra. Lo suyo es empezar por eliminar cualquier medio que existiera anteriormente, esto es lo recomendable, aunque también se pueden mantener algunos medios y luego seleccionar los que se desea para actualizar el sistema. Para eliminar todos los medios ejecutamos como root:

[root@BlogDRAKE ~]# urpmi.removemedia -a

Y ahora tocaría ir añadiendo los medios que corresponden a la versión en cuestión, en nuestro caso, Mandrake 9.2. Se puede hacer de dos formas, o bien añadimos los medios mediante urls HTTP o FTP, o bien nos descargamos las ISOs de la distribución y las usamos como fuente. Lo suyo es usar las URLs, así se puede añadir también los medios de contrib y el nuevo jpackage (multitud de paquetes relacionados con Java).

Se puede utilizar el Easy Urpmi, para generar todos los medios disponibles a partir de varios mirrors FTP o HTTP, pero yo prefiero seleccionar un mirror FTP cercano y buscar las urls a manita, cuestión de manías y costumbres, porque ya lo hacía así desde antes que existiera el Easy Urpmi.

Primero toca añadir el medio principal de Mandrake 9.2:

[root@BlogDRAKE ~]# urpmi.addmedia mdk92.main
 ftp://ftp.rediris.es/mirror/mandrake/9.2/i586/Mandrake/RPMS
 with ../base/hdlist.cz

Ahora el respectivo del contrib que tiene los paquetes que no se incluyeron en la distribución de 3 CDs de la Download Edition principalmente por motivos de espacio.

[root@BlogDRAKE ~]# urpmi.addmedia mdk92.contrib 
ftp://ftp.rediris.es/mirror/mandrake/9.2/contrib/i586
 with ../../i586/Mandrake/base/hdlist2.cz

Y por último el contrib jpackage, si es que nos interesa.

[root@BlogDRAKE ~]# urpmi.addmedia mdk92.jpackage
 ftp://ftp.rediris.es/mirror/mandrake/9.2/contrib/jpackage/i586
 with ./hdlist.cz

Una cosa a tener en cuenta, es que podemos usar los synthesis.hdlist*.cz, que suelen ocupar bastante menos, porque lleva menos información sobre los paquetes (descripciones y demás cosas irrelevantes).

En el caso de que se haya optado por usar las ISOs, se puede montar en modo loop y añadirlas como si fueran repositorios locales:

[root@BlogDRAKE ~]# mkdir /mnt/mdk1 /mnt/mdk2 /mnt/mdk3

[root@BlogDRAKE ~]# mount -o loop -t iso9660 Mandrake-9.2-CD1.i586.iso /mnt/mdk1

[root@BlogDRAKE ~]# mount -o loop -t iso9660 Mandrake-9.2-CD2.i586.iso /mnt/mdk2

[root@BlogDRAKE ~]# mount -o loop -t iso9660 Mandrake-9.2-CD3.i586.iso /mnt/mdk3

[root@BlogDRAKE ~]# urpmi.addmedia mdk92.cd1 file:///mnt/mdk1/Mandrake/RPMS 
with ../base/hdlist1.cz

[root@BlogDRAKE ~]# urpmi.addmedia mdk92.cd1 file:///mnt/mdk2/Mandrake/RPMS2 
with /mnt/mdk1/Mandrake/base/hdlist2.cz

[root@BlogDRAKE ~]# urpmi.addmedia mdk92.cd1 file:///mnt/mdk3/Mandrake/RPMS3 
with /mnt/mdk1/Mandrake/base/hdlist3.cz

Ahora toca la llamada maestra de actualización global del sistema, primero lo ejecutamos en modo test para asegurarnos que no van a existir problemas y luego a darle caña:

[root@BlogDRAKE ~]# urpmi --test --auto-select --media mdk92.main mdk92.contrib mdk92.jpackage

Los media pueden cambiar en caso de que se haya elegido usar el repositorio local.

Y si es posible la instalación:

[root@BlogDRAKE ~]# urpmi --auto-select --media mdk92.main mdk92.contrib mdk92.jpackage

Después de un tiempo descargando (en el --test) y actualizando el sistema, solo bastará con reiniciar y comprobar que todo funciona perfectamente.

Un problema que yo me he encontrado ha sido al pasar de Mandrake 9.1 a 9.2, con los paquetes de KDE 3.1.3, que ahora están mucho mejor estructurados y separados por programas, mientras que antes era más por paquetes de programas relacionados, así que me encontré con que me faltaban cosas como el konsole o kmail, pero nada que no se pudiera solucionar con un urpmi konsole

Ni que decir tiene, que con esto nos ahorramos los problemas que han surgido con las unidades de CD de marca LG, ya que podemos instalar una Mandrake 9.1 cortita, y luego actualizar a 9.2 vía urpmi :)

Comentarios

Hola HnZeKtO.

Hola HnZeKtO.

¡Fite vieo! Pedazo de artículo te has marcado.

Como soy un BOFH peludo de esos, me permito comentar un par de detalles técnicos que, creo, añaden algo bueno a tu artículo.

  1. Utiliza la opción "--wget" cada vez que uses urpmi. Esta opción obliga a urpmi a usar el programa "wget" cada vez que necesite bajarse cualquier cosa. Por defecta, urpmi utiliza "curl". En mi experiencia, "curl" es inaceptablemente quejica y desiste de bajarse paquetes al mas mínimo timeout. Utilizando "wget", urpmi (casi) que no te fallará jamás.

  2. Además de añadir el medio principal de paquetes ("main"), es imprescindible añadir el medio de actualizaciones "updates". De esta forma, al acabar la instalación, tendremos el sistema completamente actualizado. Observa como uso "--wget" para bajarme la descripción hdlist.cz

    urpmi.addmedia --wget --update updates 
    ftp://ftp.rediris.es/pub/linux/distributions/mandrake/updates/9.2/RPMS/ 
    with ../base/hdlist.cz
    

  3. Después de añadir todos los medios que queramos (imprescindibles "main" y "updates"), actualizaremos el prorgama "urpmi".

    urpmi --wget  urpmi
    

  4. Nos aseguraremos que el directorio /var/cache/urpmi/ está en una partición de un tamaño suficiente como para que quepan todos los paquetes que vayamos a actualizar. Si tu /var/cache/urpmi está en una partición pequeña, mueve ese directorio a otra partición (casi seguro que tu partición /home/pr0n/ tiene muuucho espacio jejejeje) y crea un enlace simbólico para que urpmi no se queje: "ln -s /home/pr0n/urpmi /var/cache/urpmi".

  5. Al hacer la actualización, recomiendo estarse en el runlevel 3. Es decir, si está en el entorno gráfico, pásate a una terminal virtual con Ctrl-Alt-F1 . Allí, te logineas como root y pasas a runlevel 2 con la orden "telinit 3".

  6. Al hacer la actualización, también recomiendo usar "urpmi --auto-select --wget --noclean " El avispado lector observará que uso las opciones "--wget" (ya he explicado antes p.q.) y la opción "--noclean". Esta última opción nos garantizará que, si algo falla durante la instalación (por tener instalado algún paquete que no sea Mandrake-amigable), **no** tendremos que volver a bajarnos tooooooooooodos los paquetes cuando, después de arreglar el problema (desinstalando el paquete malvado) volvamos a ejecutar el comando. Nota: en una ADSL, el tiempo de bajada de los paquetes puede ser de 3 horas. Y, claro, no hace ninguna gracia tener que volver a estarse 3 horas bajándose paquetes.

  7. Ahora toca actualizar el kernel y reiniciar (para poder usar el nuevo kernel). Dependiendo de los contenidos de la configuración de urpmi (/etc/urpmi/skip.list y /etc/urpmi/inst.list ), igual tienes que bajarte "a mano" el paquete(s) del Kernel nuevo. Utiliza "rpm -qa | grep -i kernel" para saber qué paquetes de kernel tienes instalados y debes instalar.

  8. Si no se tiene la fuente de paquetes "updates", se instalará el kernel original de MDK 9.2 que "quema" algunas lectoras de CDROM de la marca LG. Y, cuando reinicies, el kernel "pirómano" ese te va a quemar el CDROM igualmente. Por ello, teniendo la fuente "updates", te vas a bajar el Kernel que ya no quema unidades LG y tu bolsillo será feliz.

Y creo que ya está.

Yo he probado a actualizar a MDK 9.2 via urpmi desde una MDK 9.0 y una MDK 9.1. Me he encontrado con algún problema debido a tener instalados rpms "guarros" de esos que te encuentras por ahí y los tienes para probar... y no los desinstalas nunca. Y, claro, así me va. Pero tras desinstalarlos ("urpme foobar"), todo ha ido perfecto. También actualicé una MDK 9.0 a MDK 9.2 via CDs (utilizando el rporgama de instalación), pero considero el método más... laborioso y complicado.

Salut,
Sinner

--
Sinner from the Prairy
Pogüered bai Mandrake
BOFHers Syndicate http://bofhers.org


Nos aseguramos...

Nos aseguraremos que el directorio /var/cache/urpmi/ está en una partición de un tamaño suficiente como para que quepan todos los paquetes que vayamos a actualizar.

Ya no hace falta: la versión de urpmi en la 9.2 descarga, instala y borra unos cuantos paquetes, después descarga, installa y borra unos cuantos más, y así hasta el final, así que no hace falta tener espacio en /var/cache/urpmi para todos los paquetes. Obviamente hay que evitar usar el --noclean (que tampoco debería ser necesario: si un grupo de paquete no se puede instalar, por defecto no se borran para poder reintentarlo sin repetir la descarga).

Al hacer la actualización, recomiendo estarse en el runlevel 3. Es decir, si está en el entorno gráfico, pásate a una terminal virtual con Ctrl-Alt-F1 . Allí, te logineas como root y pasas a runlevel 2 con la orden "telinit 3".

Tampoco creo que sea estrictamente necesario. Personalmente he hecho la actualización desde X (eso sí, después de unos cuantos paquetes he interrumpido y he relanzado urpmi desde una consola no X, por si me iba a cerrar el konsole desde el cual estaba actualizando, cosa que no ha occurrido) y usando el ordenador (visualizando un mozilla remoto, una sesión vnc y algún que otro programa en local). El unico inconveniente ha sido que el klaptop se pensaba que el portatil iba a batería (y estaba enchufado) y que encima no le quedaba carga.

Otro consejo mio es sacar una lista de paquetes instalados antes y después de la actualización. De esta manera es posible detectar que paquetes corresponden a librerias ya obsoletas que se pueden borrar y que paquetes urpmi (que todavía no es perfecto) no ha actualizado con --auto-select. Más detalles en el Mandrake Twiky community


Pues en mi experiencia...

Pues en mi experiencia, curl no me ha dado esos problemas, aunque puede que dependa del uso que hace de él urpmi, yo lo uso tal cual.


La realidad es que son dos aplicaciones para hacer cosas parecidas pero con enfoques distintos. Ambos pueden hacer muchas cosas en cambio hay otras cosas que las hace mejor uno que otro, incluso cosas que no hace uno y el otro sí y viceversa.


Para empezar curl es solo un cliente de la librería libcurl (similar a bzip2 y libbzip2) lo cual está muy bien pues ya no se trata de un simple programa de descarga, sino que permite exportar sus funcionalidades a otros proyectos.

Por otra parte, wget está más orientado a hacer mirrors de sitios y descargas recursivas, en cambio curl está más orientado a realizar descargas y subidas de ficheros individuales o bien de cualquier flujo de datos que no sea fichero, de hecho por defecto sus entradas y salidas son las estándares, esto permite por ejemplo cosas como planchar una iso en un cd directamente bajándola de un servidor ftp, obviamente esto a menos que se tenga una grabadora con proteccion de vacío de buffer y mucha paciencia, no es recomendable hacerlo si no es en una red local ;) de hecho yo en red local sí suelo hacerlo:

curl ftp://servidor/imagen.iso | cdrecord tsize=tamaño data -

En conclusión, yo creo que ninguno es mejor que otro, simplemente son distintos, usa el que más se acople a lo que quieres. Y perdón si me he desviado un poco del tema central.


Por argumentar el artículo...

Por argumentar el artículo y añadirle todo lo que le faltaba, sobre todo porque lo escribí anoche entre las 23:00 y las 0:00 y se me han quedado algunas cosillas, entre ellas lo del medio updates y el medio de PLF, que son otra serie de paquetes hechos por usuarios de Mandrake, que no se encuentran ni en la distribución main, ni en el contrib por motivos de licencias principalmente. Para añadirlo bastaría con:

urpmi.addmedia mdk92.plf ftp://ftp.cica.es/mirrors/Linux/plf/mandrake/9.2 with ./hdlist.cz

Lo escribo de memoria, porque estoy en el curro y no tengo acceso FTP en el proxy.

Con respecto a el uso de --wget, tienes razón, el curl suele ser bastante problemático, pero a mí es que siempre se me olvida ponerlo, así que no vendría mal añadir unos alias al .bashrc

alias urpmi.addmedia='urpmi.addmedia --wget'
alias urpmi.update='urpmi.update --wget'
alias urpmi='urpmi --wget'

Sobre ejecutarlo en runlevel 3, nada que objetar, sobre todo porque actualizando el servidor X o el escritorio podemos tener problemas por sockets ya abiertos y demás.

El --noclean también es una buena solución, quizás la ideal, aunque yo usé precisamente el --test para que descargue todo lo necesario por el --auto-select, y en caso de fallo avisa que falta algún paquete o no, evidentemente mantiene todas las descargas en /var/cache/urpmi

Ah por cierto, tu "ln -s /home/pr0n/urpmi /var/cache/urpmi" está al revés, primero se poner el directorio que existe y luego el link destino. ¡¡Perdóname por corregirte BOFH peludo!! ¡¡Por favor, no me borres la cuenta!! :)

Cayetano (HnZeKtO en irc.freenode.net)


Para instalaciones BOFH_only...

Para instalaciones BOFH_only no hace falta seguir leyendo. Para quien le guste validar que los paquetes que instala cuentan con una firma válida, a lo mejor le ahorro un dolor de hue^H^Hcabeza.

No sé exactamente por qué, pero MDK 9.2 tiene algunos problemas con la validación de firmas en algunas circunstancias.

En concreto, cuando actualicé una de las máquinas que tengo con MDK, me mareé un buen rato con este mensaje: "Firma no válida.((SHA1) DSA sha1 md5 (GPG) (MISSING KEY) GPG#22458a98 NOT OK)"

Mi receta casera (seguro que habrá otras mejores) es:

# gpg --recv-keys --keyserver www.mandrakesecure.net 22458a98
#gpg --export --armor 22458a98 > 22458a98.asc
#rpm --import 22458a98.asc

Abrir el Administrador de Soportes de Software, abrir el administrador de claves y añadir la nueva clave.

Abrir una cerveza, poner la mente en stand-by.
--
- Por una Europa libre de Patentes de Software - EuropeSwPatentFree


Tan sólo añadir al estupendo...

Tan sólo añadir al estupendo artículo de HnZeKtO (mas contrib/sinner) que, como a veces el ftp de RedIris anda demasiado solicitado, también teneis disponible el ftp del Cica.
--
- Por una Europa libre de Patentes de Software - EuropeSwPatentFree


Ahora el respectivo...

Ahora el respectivo del contrib que tiene los paquetes que no se incluyeron en la distribución de 3 CDs de la Download Edition principalmente por motivos de espacio.
En los CD ni siquiera se incluyen todos los paquetes de main, sencillamente porque no caben:

$ du -s /media/mandrake/9.2/i586
2,6G /media/mandrake/9.2/i586

(cuenta que no tengo copia de los SRPMS, así que esto es lo que tiene que ir en los cd: los RPMS más el instalador).

Los contribs no se incluyen porque no están controlados directamente por mandrake (aún que la diferencia es muy relativa) y ocupan algo más:

$ du -s /media/mandrake/9.2/contrib/i586/
2,7G /media/mandrake/9.2/contrib/i586


Yo en debian estaba...

Yo en debian estaba acostumbrado a añadir aplicaciones con kmenuedit y asociarles atajos de teclado (a xchat, kopete, konqueror y demás).

El caso es que en Mandrake, si uso kmenuedit, todos los cambios que realizo se pierden al reentrar en KDE. Supuestamente hay que usar menudrake, pero éste no permite asociar atajos de teclado para lanzar las aplicaciones. Y si se los asocio en el kcontrol no funcionan.

¿Cómo se les pueden asociar atajos, o al menos que no sea necesario usar menudrake y se pueda usar kmenuedit como en Debian?

Gracias... :)


Actualice mediante el urpmi...

Actualice mediante el urpmi de 9.1 a 9.2, pero tras usarla bien un par de dias se jodio el sistema de menus.

Es decir, no salian mas que 4 o 5 aplicacines en los menus de mandrake, daba igual que fuera bajo gnome o kde. Y no encontre la manera de volver a ponerselos bien.

Ademas de esto las KDE petaron de mala manera, no podia ejecutar konqueror en modo local, ni konsole ni practicamente nada que empezara por K.

Despues del desastre probe a actualizar a cooker a ver si actualizando bastantes cosas (no muchas al final) mejoraba la cosa, pero nada, volvi a instalarme desde los CDs de la 9.1 y 3 semanas sin problemas :)

A alguien mas le ha pasado? me arriesgo a volver a actualizar?


El problema de los menús...

Hola,

El problema de los menús es conocido por Mandrake. Algunos "afortunados" sufren ese problema.

El problema, hasta que lo arregle Mandrake, tiene solución fácil, de dos formas:

  • Desde la cónsola: escribe
    [sinner@mandrake sinner]$ update-menus -v
  • En modo GUI: lanza el "menudrake", donde verás toda la estructura de menús y dale a "guardar". Cuando acabe, vas a tener menús.

(nota: no se si tras ejecutar update-menus / menudrake necesitas salir de KDE y volver a entrar.)

Salut,
Sinner

--
Sinner from the Prairy
Pogüered bai Mandrake
BOFHers Syndicate http://bofhers.org


Yo ya llevo tres semanas...

Yo ya llevo tres semanas sin problemas con la Mandrake 9.2 y no sólo he pasado de 9.1 a 9.2, sino que ya llevo varios años sin reinstalar desde el CD, más o menos desde la 8.1, que por aquellos entonces sí que sufría algún problemilla, pero a partir de la 9.0, todo fino fino.

El único problema que he tenido ha sido el comentado en el artículo, que la haberse dividido los paquetes en subpaquetes, algunos de ellos no estaban instalados al principio, pero nada que no fuera fácilmente solucionable con urpmi.

Cayetano (HnZeKtO en irc.freenode.net)


He seguido los pasos que indicas...

He seguido los pasos que indicas con los consejos de Sinner y ha ido todo bien... bueno tuve un momento de pánico cuando no arrancaron las X. la solución, por si le pasa a alguien mas es desinstalar todos los paquetes de XFree* y volverlos a instalar.

Muchas gracias por vuestro trabajo!

Tras actualizar, no me funciona TAL-CUAL programa

Cuando se actualiza cualquier programa de servidor/demonio/servicio, por ejemplo samba, squid, mysql, apache... cabe la posibilidad que la vesion actual cambie algo de la configuracion por defecto.

Y dicho cambio puede que resulte en que el servicio/demonio deje de funcionar o no funcione como antes.

Al actualizar ese demonio/servicio, puede pasar alguna de estas 3 cosas:

1. te cree un fichero de configuracion por defecto y te mueva tu fichero de configuracion a uno con el nombre tipo foobar.old o foobar.conf.old o similar.

2. te cree un fichero de configuracion por defecto con el nombre tipo foobar.new o foobar.conf.new o foobar.conf.rpmnew o similar. Corres el riesgo que con el fichero de configuracion antigua, ese servicio/demonio no te funcione con la nueva version.

3. que la actualizacion no cambie nada.

Cuando uses Linux para dar algun servicio (usando un demonio o 'programa servidor' o como lo llames), y lo actualices, debes de prestar atencion a su actualizacion. Leete el log resultante.

El log de instalacion, des-instalaciones y actualizaciones de porgramas via urpmi/rpmdrake/MandrakeUpdate lo tienes en /var/log/urpmi.log

Por ejemplo, yo actualice Samba y mira el mensaje que me dejo en /var/log/urpmi.log

bla bla bla

4:samba-common warning: /etc/samba/smb.conf created as /etc/samba/smb.conf.rpmnew

bla bla bla

En resumen, que con Mandrake sea facil dar servicios no quita que te cargues de responsabilidad. Y, como ves, todas las acciones quedan escritas en un log, por lo que es facil saber por que falla algo y como arreglarlo.

Salut,

Sinner

Actualización fallida: paquetes que impiden a otros actualizarse

He actualizado a mandriva2007 desde 2006 con el DVD. Desde Easy Urpmi, y después de remover las actualizacione a partir del DVD, y encontrar los repositorios correspondientes, actualicé y todo fue bien, pero las tres últimas veces que lo he intentado se actualiza los repositorios, e incluso descarga los paquetes, pero cuando doy el comando urpmi --auto-select --force --auto, que debería descargar e instalar todo lo necesario, efectivamente descarga todos los paquetes pero cuando empieza a preparar la nstalación me dice lo siguiente Installation failed: file /etc/product.id from install of mandriva-release-2007.0-1mdv2007.0 conflicts with file from package mandriva-release-One-2007.0-1mdv2007.0 La tradución la entiendo, pero no sé seguir, no consigo saber que tie ne que ver el One que mi ordenador ni lo ha visto. Si alguien me puede ayudar lo agradecería, sino me veo instalando desde cero. Gracias

Actualizar Mandrakelinux de una versión previa a una nueva.

Este artículo formaba parte del que se publicó en el número 63 de la revista MundoLinux. De nuevo el copyright es mío, y no puedo aún autorizar su reproducción total o parcial, modificación o redistribución sin mi autorización expresa o del editor de la revista. La idea es conseguir que todo se convierta en un documento con algún tipo de licencia libre cuanto antes. Mientras tanto ahí está.

Está basado fundamentalmente en una actualización de versión de 9.1 a 9.2 de Mandrakelinux, pero los consejos que se dan en él pueden ser aplicados a cualquier cambio de versión. Por ejemplo un cambio de la 10.0 a 10.1 (que será liberada en menos de un mes para el público en general). Al final del documento señalo qué cambia para versiones posteriores de Mandrakelinux en el proceso de migración.

Espero que os sea de alguna utilidad :)


Actualizando el sistema


Hasta ahora no habíamos evaluado la opción de actualizar un sistema ya instalado. Teniendo en cuenta que llevamos ya más de un año de sección, es más que probable que los lectores habituales de la misma tengan ya una versión anterior de la distribución instalada. No solo eso, sino que además dicha instalación se encontrará configurada al gusto y con las necesidades del usuario cubiertas.

Sin embargo también tenemos el problema del tiempo de vida de los productos. Todas las versiones anteriores a la 9.0 ya han excedido el suyo y carecen de las necesarias actualizaciones de seguridad. Y la versión 9.0 sólo posee actualizaciones de la base del sistema hasta marzo del 2004 (mirar el cuadro 1 de enlaces para obtener más información). Desde ese punto de vista cualquier usuario con una distribución que ha excedido o está a punto de exceder su tiempo de vida, debería plantearse seriamente la migración.

Pero, ¿puede plantearse una migración que no conlleve excesivos quebraderos de cabeza? Eso es lo que hemos querido probar para este artículo. Y para ello los objetivos que nos planteamos fueron conservar en la medida de lo posible la misma configuración y datos del sistema. Los resultados obtenidos han sido variables, pero la conclusión es que es posible la migración aunque no esté exenta de problemas.

El primer paso que debemos dar es leer la página de erratas de Mandrake 9.2 (ver cuadro 1). Lo más importante sobretodo es el apartado de los problemas surgidos con los lectores de CDs LG. Hagamos como hagamos la instalación debemos tener en cuenta ese problema, que afortunadamente tiene su solución adjunta en dicho enlace.

Una vez que hemos comprobado dicha página procederemos a otro paso muy importante. Hacer un volcado de seguridad del sistema. Hay que tener en cuenta que todo puede fallar en esta vida, y en nuestra mano está que tenga una solución sencilla o no. Los datos más sensibles suelen encontrarse en los directorios /etc (donde está todos los archivos de configuración del sistema) y /home (que contiene quizás lo más importante en un sistema de escritorio, las cuentas de usuario).

A continuación hay otra cosa por hacer previa a la instalación. No es algo imprescindible pero sí recomendable puesto que podría dar algún problema posteriormente. Se trata de eliminar todas las fuentes de software configuradas para el sistema. Esto puede realizarse fácilmente como administrador del sistema y tecleando en una consola el comando urpmi.removemedia -a. Después, otro paso recomendable es volcar la lista de paquetes instalados a un fichero de texto, de forma que más tarde podamos saber qué paquetes se han actualizado y cuales no. Ejecutamos el comando rmp -qa | sort > paquetes-antiguos.txt . Tras estos cuatro primeros pasos podemos proceder a la actualización de nuestro sistema ¿Qué opciones hemos considerado? Básicamente dos.

Primer método de actualización (1)

La primera es la más sencilla aunque no la más eficiente. Si tenemos los CDs de la versión 9.2 reiniciamos el PC y comenzamos la instalación como haríamos para instalar por primera vez el sistema. En uno de los pasos intermedios del proceso, antes de la elección de las particiones a usar, el instalador detectará qué sistemas tenemos instalados en el disco duro. En caso de detectar alguna versión de Mandrake (en nuestras pruebas nunca ha fallado) nos ofrecerá las opciones de instalar un nuevo sistema Mandrake 9.2, o bien actualizar alguno de los existentes. Escogeremos la opción de actualización sobre el sistema que deseemos, y a partir de ese momento el proceso de actualización es automático.

Al terminar sería recomendable configurar una fuente de updates y realizar las actualizaciones de seguridad y de fallos correspondientes.

Si en nuestra versión anterior de Mandrake usábamos fuentes alternativas de software como Contrib y PLF, deberíamos ahora configurar dichas fuentes. Una forma sencilla es acudir a la web de Easy Urpmi Config y seguir las instrucciones de configuración que en ella se detallan (el enlace en el cuadro 1).

Una vez configuradas y si teníamos software instalado desde dichas fuentes, procederemos a la actualización de dichos programas o paquetes (si es que poseen versiones actualizadas). Para comprobar que no surgirán problemas, desde una consola de texto y como administrador del sistema teclearemos urpmi --test --auto-select --media contrib plf. Si este comando finaliza con éxito entonces podremos ya invocar el comando urpmi --auto-select --media contrib plf que realizará la actualización.

Segundo método de actualización (2)

El segundo método alternativo requiere de una buena conexión de red, tener un mirror local de la versión actual de Mandrake, o bien cargarse de paciencia. Pero se trata del método que mejor resultado nos ha dado. Consiste en definir como una fuente software, cualquiera de los mirrors disponibles de la versión actual de la distribución (la fuente main). Además, añadiremos la fuente de actualizaciones updates. Y Si hemos usado en la versión instalada las fuentes de Contrib y PLF también las configuraremos (de nuevo es sencillo realizar todos estos pasos con la ayuda de Easy Urpmi Config).

Es recomendable que en este momento, si se usa el modo gráfico se abandone y se pase a una consola de texto. Una forma sencilla es cerrar la sesión gráfica actual, pulsar las teclas CTRL-ALT-F1 simultáneamente, iniciar sesión como administrador de sistema y ejecutar telinit 3. Seguimos como administrador del sistema, y el paso a dar ahora es actualizar de forma independiente la propia herramienta URPMI. Ejecutamos urpmi urpmi. De esta forma evitaremos los problemas de las versiones anteriores y disfrutaremos de algunas nuevas características.

Algo que puede dar problemas de forma aleatoria son las claves de las firmas de los paquetes. En alguna de las instalaciones que hemos realizado urpmi insistía en que los paquetes de algunas fuentes carecían de firma válida. Para evitar este problema, importaremos a mano las firmas de cada una de las fuentes instaladas. Primero borraremos el archivo /var/lib/rpm/PubKeys . Para main y contrib las firmas se encuentran en el directorio de cualquier mirror mandrake/9.2/i586/Mandrake/base y se corresponden con los archivos pubkey y pubkey2. Se copian dichos archivos a nuestro sistema, y desde el mismo directorio donde estén se ejecuta en una consola de texto rpm --import pubkey pubkey2 . Para updates se procede de la misma forma con el archivo mandrake/updates/9.2/base/pubkey . Y para plf se descarga el archivo de firmas desde su web y se instala igual que las anteriores. Hay que tener en cuenta que en la fuente contrib hay muchos paquetes que no son producidos por Mandrake y cuyas firmas no coinciden por tanto con las instaladas. Si se instalara alguno de esos paquetes se producirá el aviso de firma no válida. El obtener dichas firmas queda fuera del objetivo de este artículo.


Llega el momento más delicado. La actualización en sí. En primer lugar comprobaremos que el proceso no dará problemas con el comando urpmi --test --auto-select --media main contrib updates plf. Si el resultado es correcto puede entonces pasarse a ejecutar urpmi --auto-select --media main contrib updates plf.
Una vez terminado el proceso, que con una conexión ADSL básica y partiendo de una Mandrake 9.1 con mucho software instalado duró más de cinco horas, podremos decir que tenemos nuestro sistema casi completamente actualizado a la última versión.

Pero antes de reiniciar y comprobar los cambios...

Problemas que pueden surgir tras la actualización


Una vez que comencemos a manejar el sistema podemos encontrarnos con diversos problemas. Nosotros hemos detectado los siguientes (entre paréntesis se indica para qué método puede surgir el problema):
(1) En la instalación desde CDs en modo texto no se da la opción de actualización del sistema. Sólo eso posible instalar un sistema nuevo.
(1,2) Algunos paquetes de KDE han sido divididos en subpaquetes debido a que instalaban muchos programas a veces no requeridos por el usuario. Esto implica que los que sí son habitualmente usados también hayan desaparecido. En KDE seguramente nos faltarán por ejemplo Kmail, Konsole, Kget, etc. Para recuperarlos podremos usar el rpmdrake buscando por el nombre de esos programas los paquetes que los incluyen para instalarlos.
(1,2) Si hubiéramos instalado programas que pertenecieran a alguna fuente de software no descrita aquí, pudiera surgir algún conflicto de versión o bien no actualizar dicho programa y que el mismo dejara de funcionar. Nosotros tuvimos dicho problema con el programa Evolution, instalado desde la fuente texstar que para esta nueva versión de Mandake no existe. La solución en estos casos es detectar dicho software, desinstalarlo junto con sus dependencias, y reinstalarlo posteriormente pero desde alguna de las fuentes descritas anteriormente.
(2) También pueden surgir problemas de versiones entre los paquetes de plf y el resto de fuentes. Si no queremos que esto ocurra podremos optar por no configurar esta fuente inicialmente, actualizar el sistema, y tras ello configurar la fuente e instalar los paquetes que deseemos de la misma.
(1,2) Para conocer con más precisión qué se ha instalado o actualizado y qué no, volcaremos la nueva lista de paquetes en otro fichero rpm -qa | sort > paquetes-nuevos.txt . Ahora realizaremos una comparación con el archivo generado al principio de la instalación comm -1 -2 paquetes-antiguos.txt paquetes-nuevos.txt > paquetes-no-actualizados.txt . Analizando el nuevo fichero obtenido observaremos tres posibilidades: que un paquete no se haya actualizado porque no tiene actualización disponible, porque ha dejado de existir o porque urpmi no ha sido capaz de localizar la nueva versión. El último caso se produce cuando el paquete con la nueva versión del programa tiene un nombre distinto al paquete instalado.
(2) Uno de los programas no actualizados, por cambio de nombre en el paquete, probablemente será el kernel de la nueva distribución. Es por tanto recomendable instalar el paquete del kernel que pertenecerá a la fuente updates.
(1,2) Puesto que la versión Download Edition ni ninguna de las fuentes nombradas tiene en principio paquetes con drivers propietarios (como hay para algunas tarjetas gráficas ATI y NVIDIA), es recomendable, antes de actualizar el sistema, desinstalarlos puesto que es muy probable que no funcionen con la nueva versión del kernel y necesiten de una reinstalación posterior.
(2) Si encontramos que los comandos urpmi de actualización fallan con frecuencia en las descargas, podemos probar de nuevo añadiendo la siguiente opción --wget.

Pruebas realizadas


Por supuesto la descripción de este proceso viene de una serie de pruebas experimentales realizadas por al autor. Las pruebas han consistido en actualizar a Mandrake 9.2 Download Edition los siguientes sistemas instalados todos desde CDs:
  • Mandrake 8.2 Download Edition configurado con fuentes contrib y updates (vía método 1 y 2): el sistema, configurado como uno de escritorio quedó impracticable usando el método 1 por la no actualización algunas librerías y parte del sistema (no se actualizaron ni KDE ni GNOME ni ninguno de sus componentes). Usando el método 2 prestando atención a los paquetes que se actualizan y cuales no para justo después arreglar la situación, dejó un sistema funcionando casi a la perfección.
  • Mandrake Prosuite 9.0 configurado sólo con la fuente updates (vía método 1): el sistema se encontraba configurado como servidor web y de correo, con X-Window y icewm como gestor de ventanas. La actualización funcionó a la perfección.
  • Mandrake 9.1 PowerPack con fuente updates (vía método 1): configurado como escritorio y sólo con el gestor KDE instalado. Sólo surgió un problema cuya causa fueron los drivers binarios de NVIDIA que al no poder ser actualizados en principio, no funcionaron con el nuevo kernel. Tuvo un arreglo sencillo tras la instalación.
  • Mandrake 9.1 Download Edition con fuentes updates, contrib, plf, unsupported y otras del MandrakeClub (commercial, test-rpms, fresh-rpms) (vía método 2 usando fuentes main, contrib y plf): configurado también como escritorio, con KDE, GNOME y WindowMaker, tuvo diversos problemas tras la instalación. Algunos programas instalados desde fuentes diversas no funcionaron correctamente (entre ellos Evolution y algunos componentes de GNOME). Se solucionó desinstalándolos y volviéndolos a instalar.

Consejos para instalar de cero y facilitar la actualización


Hemos visto que la actualización de la distribución a una nueva versión no es trivial. Pero si instalamos y mantenemos nuestro sistema con los consejos que expondremos a continuación, será más sencillo realizar dicho proceso. Para ello decidimos que el primer paso es instalar de cero el sistema. Independientemente del método escogido (instalación via CDs, red, etc), estas son nuestras recomendaciones (ojo, hablamos de entornos de escritorio):
  • Siempre es recomendable (sino imprescindible) hacer el correspondiente backup de todos aquellos datos importantes contenidos en el PC antes de realizar la instalación de un nuevo sistema operativo.
  • En el momento de realizar las particiones para la distribución, resulta interesante disponer de al menos tres particiones independientes, una para /home (cuentas de usuario), otra para /etc (ficheros de configuración), y una tercera, que podría dividirse en más según preferencias, para /. ¿Qué facilita esto? Por ejemplo, que si una actualización futura no se realiza con éxito y obtenemos un sistema impracticable, podríamos instalar otra versión de cero reutilizando el contenido de las particiones /etc y /home. Seguiríamos manteniendo nuestros ficheros de configuración del sistema, de los usuarios particulares, y el contenido de las cuentas de los usuarios.
  • A la hora de instalar software extra en el sistema debe tenerse en cuenta si entra en conflicto o sustituye software de Mandrake. Por regla general, utilizando las fuentes de software main, contrib, de actualizaciones(updates) y plf no surgen problemas. Dichas fuentes están siempre disponibles con cada nueva versión de Mandrake, lo que suele permitir una actualización correcta de todos los paquetes RPM instalados. Si instalamos software desde otras fuentes alternativas puede ocurrir que posteriormente no se actualice de forma correcta dicho software. Ni qué decir tiene, que el software que no figure en la base de datos RPM (porque se haya instalado a mano desde los fuentes por ejemplo) no será actualizado de forma alguna. El estado en que quedará ese software es impredecible. Conviene por tanto, que de instalarse software así, o de fuentes de paquetes RPMs alternativas, se desinstale antes de la actualización del sistema.
  • A veces de una versión a otra, los CDs de Mandrake no contienen exactamente los mismos programas empaquetados. Además la fuente main de software suele disponer incluso de más programas y paquetes que los CDs. Esto puede provocar que actualizar desde CD no sea la opción ideal. Los que dispongan de una buena conexión de red no deberían dudar en actualizar el sistema antiguo a la nueva versión usando las fuentes main y contrib tal y como se ha explicado anteriormente.
  • Cuando existen cambios de versiones importantes en los programas, la actualización suele fallar. Por ejemplo, en una Mandrake 8.2 la versión de KDE instalada es la 2.2, y en la 9.2 es 3.1. Y no se actualiza KDE. Esto es así porque los nuevos paquetes de KDE en ese caso no se consideran actualización de los antiguos sino paquetes de programas diferentes. Suele ser recomendable que en caso de querer instalar la nueva versión, se desinstale primero la antigua. En el caso de actualizaciones del kernel esto sucede siempre. Una nueva versión del kernel, aunque sea un cambio menor, siempre es diferente. Pero, de un tiempo a esta parte, ya no requiere de la desinstalación del anterior porque los paquetes del kernel ya van configurados de forma que la instalación de uno nuevo no entre en conflicto con los que estén instalados.


Cuadro 1 Bibliografía y Enlaces

Página de erratas de Mandrake 9.2
http://www.mandrakelinux.com/en/errata.php3

Easy Urpmi Config
http://plf.zarb.org/~nanardon/

Artículos de actualización de Mandrake
http://mandrake.vmlinuz.ca/bin/view/Main/UrpmiUpgradeIssues
http://libertonia.escomposlinux.org/story/2003/11/3/02824/2638

Artículos muy interesantes para pasar de Debian a Mandrake
http://libertonia.escomposlinux.org/story/2003/11/12/13748/839
http://libertonia.escomposlinux.org/story/2003/11/13/18617/519

Tiempo de vida de las versiones de Mandrake
http://www.mandrakesecure.net/en/productlifetime.php

Mirrors de Mandrake
http://www.mandrakelinux.com/en/ftp.php3


Cambios en el proceso a tener en cuenta para versiones posteriores de Mandrakelinux


  • Mientras que la versión 10.0 sigue ubicando las firmas de las fuentes de software en la misma ubicación que la descrita anteriormente (~/10.0/i586/Mandrake/base), para la versión 10.1 cambió la estructura interna de la distribución.
    Tanto las fuentes oficiales como sus archivos de firmas se localizan en sitios diferentes. Las fuentes de software oficiales están en 10.1/i586/media/ y los archivos de firmas y descripción de contenido de los fuentes (pubkey y hdlist) los encontraremos ahora en 10.1/i586/media/media_info/

Actualización a Mandrake 10.0 via urpmi

Voy a contar mi experiencia personal actualizando tres PC con Mandrake 9.2 a la versión 10.0 con urpmi. Existen documentos por ahí que explicam como se hace, pero aveces la realidad es otra y no todo es tan facil. Primero consigo todos los paquetes base (3171 paquetes, 2.8G) de un servidor ftp y tambien los updates y lo guardo todo en una partición del disco duro expresa para esto. De momento paso de los contrib y de plf. Paquetes base: ftp://ftp.rediris.es/pub/Linux/distributions/mandrakelinux/official/10.0/i586/Mandrake/RPMS/ Updates: ftp://ftp.rediris.es/pub/Linux/distributions/mandrakelinux/official/updates/10.0/RPMS/ Que no se diga que no pongo de donde saco los paquestes !!! Seguidamente entro en el centro de control mandrake y borro las fuentes antiguas y añado las nuevas (base y updates). Esto se puede hacer desde consola pero teniendo un linux funcionando no me voy a matar a teclear ;-) Por cierto, yo nunca me bajo los hdlist, dejo que mandrake se los cree a partir de los paquetes que encuentra, si hay alguno chungo se va a quejar y no te va a dejar añadir la fuente. Desinstala todo lo desinstalable, tendras menos problemas (juegos, etc ...) Si todo es correcto abro una consola no grafica como root y empieza el espectaculo ... # urpmi --test -v --no-verify-rpm urpmi : esto testea si es posible actualizar el instalador, normalmente acaba con un reconfortante “La instalación és posible”, si se queja de algun paquete instalado pues lo quito con kpackage y ya está. En mi caso sin problemas en los tres PC. # urpmi --test -v --no-verify-rpm --auto-select : testea si es posible actualizar todo el sistema, aquí suelen salir problemas con algunos paquetes KDE que se tienen que desinstalar. En mi caso los paquetes problematicos no han sido los mismos en los tres PC. Desinstalo los paquetes molestos y consigo el mensaje “La instalación es posible”. Genial, salgo del escritorio y .. # init 3 : no es necesario pero lo suelo hacer. # urpmi -v --no-verify-rpm urpmi : Llega el momento de la verdad, parece que todo funciona pero falla a mitad de instalación quejandose de unos paquetes que no han podido actualizarse por culpa de “otros” ... ni caso, le vuelvo a meter # urpmi -v --no-verify-rpm urpmi : En dos de los PC la segunda vez no se queja (??¿¿) y actualiza, en el tercero pues continua sin actualizar , ala, a quitar los paquetes “culpables” pero claro, ya estoy en consola y esto ya no es tan facil # man rpm : A mirar el manual ;-) # rpm -e “el paquete molesto” Y a probar otra vez # urpmi -v --no-verify-rpm urpmi ..... repetir el proceso anterior hasta conseguir actualizar urpmi. Seguidamente a por el resto del sistema: # urpmi -v –no-verify-rpm –auto-select : Si hay suerte se actualiza todo pero no, aqui tambien falla y se tiene que seguir el procedimiento anterior, normalmente le meto # urpmi -v –no-verify-rpm –auto-select otra vez y se actualizan unos cuantos paquetes mas, pero llega un punto en que solo da un inmenso error (pantallas y pantallas), presta atención para ver que paquete es el primer culpable del error y lo desinstalas com rpm -e “paquete” y repetir el proceso hasta conseguir un mensaje “Ya está todo instalado”. Cruzas los dedos y le metes un # init 0 y arrancas el PC. Ya tienes el sistema “casi” actualizado, pero sorpresa, ha desaparecido el centro de control mandrake !!!, no problem, entras en consola y como root tecleas # urpmi -v drak y te saldra una lista de paquetes de mandrake, instalas drakconf, drakxtools, hardrake, etc ... y ya está todo en su sitio. Seguidamente entras en el centro de control y acabas de instalar los paquetes que falten y actualizas el kernel de la forma habitual. Añades los contrib y plf y los actualizas tambien. Con kpackage vas mirando si han quedado paquetes antiguos (en mi caso kmail 3.1) mirando la fecha de instalación y los quitas (atención, algunos paquetes no se han actualizado ya que la version es la misma en mandrake 9.2 y 10.0), es un poco palo pero se mantiene el sistema limpio. Tengo la mania de correr los asistentes de mandrake (hardrake, etc...) para regenerar los archivos de configuración. En los tres PC al final de todo el proceso me ha quedado un Mandrake 10.0 perfectamente instalado. Espero que el escrito sea de ayuda. ticiajosep PD: Se aceptan todo tipo de correcciones, sugerencias, etc ...

Actualizando de Mandriva 2006 a 2007 vía urpmi

(Aviso para navegantes: ladrillo :P) Aprovechando que tenía unos días libres, decidí actualizarme de una vez de Mandriva 2006 a 2007. El modo de actualización que escogí fue utilizando urpmi. Dado que tengo que hacer actualizaciones de más equipos que el mío, escribí un pequeño resumen de los pasos que iba dando para tenerlos en cuenta a la hora de actualizar los demás equipos. Aquí dejo dicho resumen por si a alguien le fuese de alguna utilidad. Nótese que esto no es un manual ni nada similar, para eso ya está Actualizar Mandrakelinux de una versión previa a una nueva. Debe notarse también que si alguien está pensando en actualizarse de este modo y todo este tocho le da miedo, no debe asustarse. Por un lado yo soy muy tiquismiquis con las actualizaciones, y por otro había tocado cosas en el sistema que, de usar una Mandriva pura y dura (vamos, sin andar toqueteando ficheros de configuración del sistema, instalando software desde código fuente y demás) no habrían sido problema. Y además, siempre me enrollo como una persiana a la hora de contar cosas que podrían llevar mucho menos espacio :) Antes de empezar (o más adelante al encontrar un problema), es recomendable ojear las notas de publicación (en inglés) y las erratas de la nueva versión. Lo primero de todo es realizar la actualización en sí del sistema. Eliminé todos los repositorios utilizando urpmi.removemedia -a, y añadí los de la 2007 para x86 mediante Easy Urpmi. Para empezar, únicamente añadí main, main_updates, contrib y contrib_updates. No añadí ninguno de PLF ni backports porque primero quería actualizar puramente la distribución, y luego ya pondría los añadidos. Una vez añadidos los nuevos repositorios, me pasé a una consola en nivel de ejecución 3 (Ctrl+Alt+F1, entrar como root y ejecutar telinit 3) y actualicé el sistema mediante urpmi --auto-select. Algunos paquetes no se podían instalar, y otros tenían que desinstalarse para proceder con la actualización, así que tomé nota de ellos. Se puso a instalar y al terminar, hubo una serie de paquetes que no fue capaz de instalar debido a colisiones con antiguos paquetes. Por un lado, con los paquetes de OpenOffice.org 1.1.5 de la 2006, así como los de la 2, estos últimos habiendo sido instalados sin usar los repositorios oficiales de la 2006. Eliminé los paquetes problemáticos y volví a ejecutar urpmi --auto-select, instalándose ahora perfectamente los que faltaban relacionados con este problema. Pero también había otro problema, y era que KDE no podía actualizarse debido a lo siguiente:
instalando mandriva-kde-config-common-2007-28mdv2007.0.noarch.rpm desde
/var/cache/urpmi/rpms
Preparando...                    #############################################
Installation failed:
        file /usr/share/sounds/mdv-startup.wav from install of
mandriva-kde-config-common-2007-28mdv2007.0 conflicts with file from package
mandriva-kde-config-file-2006-10mdk
Para solucinar esto, primero desinstalé manualmente mediante rpm el paquete mandriva-kde-config-file (rpm -e --nodeps mandriva-kde-config-file-2006-10mdk) y luego instalé mediante urpmi su sustituto (urpmi mandriva-kde-config-common-2007-28mdv2007.0), para a continuación terminar la actualización (urpmi --auto-select). Para terminar con la actualización, ejecuté urpmi kernel, seleccioné el que me convenía, y luego instalé los fuentes con urpmi kernel-source. Ahora, toca reiniciar. Excelente, arranca ;) Entro en mi usuario y parece que todo está más o menos en su sitio. Ahora bien, las fuentes no están tan nítidas como deberían, y son demasiado pequeñas. El menú de KDE tiene alguna cosa mal, y faltan algunos iconos en kicker. KDE se queja de que no puede conectar con DCOP (lógico, ya que en esta versión DCOP se aparcó en favor de DBUS, por lo que será un mero problema de configuración). No tengo sonido, y el icono de dispositivos del escritorio no funciona, ya que dice que el protocolo "device" no está soportado. A primera vista, no hay nada más mal. El problema del sonido tiene fácil solución. Es un bug (reportado hace tiempo, aunque aún sin solucionar del todo) debido al cuál eliminaron el controlador OSS de la tarjeta de sonido en el kernel, por lo que hay que utilizar ALSA. Simplemente abrí HardDrake, cambié del controlador OSS al de ALSA y listo. Luego utilizando KMix puse el volumen a mi gusto y problema solucionado. Los iconos de kicker también se puede solucionar fácilmente simplemente añadiendo los que faltan mediante la opción "Añadir aplicación al panel". En cuanto al problema del icono de dispositivos, voy a sus Propiedades, pestaña Aplicación. Ahí indica el comando que ejecuta el icono. Sustituyo "device:/" por "media:/" en dicho comando, pues el primer protocolo era el que se utilizaba en la versión de KDE de Mandriva 2006, pero que ya no existe en ésta, sino que se utiliza el segundo. Problema solucionado, ya muestra los dispositivos como antes. Aunque dado que, al fin, vuelve a funcionar la opción de mostrar los dispositivos montados en el propio escritorio, la ventana de dispositivos para mí ya no tiene mucha utilidad :) Vamos ahora con el problema de las fuentes. En lo que respecta a la nitidez, simplemente fui al centro de control de KDE, sección Aspecto y temas->Fuentes, y en la configuración de "anti-aliasing" seleccioné "Estilo de pista: Completa". En cuanto al tamaño, realmente no era problema del ordenador, sino mío :) Como llevaba unas cuántas horas viendo las fuentes en consola y tengo las fuentes del servidor X a 75dpi, las veía demasiado pequeñas :P Me di cuenta al aumentar el tamaño de las mismas y ver que aquello cuadraba incluso menos que cuando estaban en pequeño ;) Queda solucionar el problema del menú y el de DCOP. Creo un nuevo usuario y compruebo si ambos problemas existen en dicho usuario. El del menú sí, y el de con DCOP, en contra de lo que me esperaba, también. Ataquemos primero a DCOP ;) Tras indagar por San Google, el problema parece provenir de KDESVN, un cliente de SVN en KDE. El bug es el siguiente: Couldn't connect DCOP signal. Won't receive any status notifications!. Y es un bug no reproducible, es decir, a veces pasa, a veces no, por lo que es muy divertido intentar buscarle solución :P Eliminé el servicio de menú para Konqueror de SVN para comprobar si el problema iba por ahí. En principio lo podré saber si en unos días no me volvió a dar más problemas ;) En cuanto al menú, falta la entrada de Personal, hay una serie de entradas que no siguen la estructura de menús de Mandriva (que es la que utilizo), y otras no se muestran. Lo de la entrada de Personal, es un bug: Cannot add "Home" icon to K-panel since K-menu does not have "Home" icon any more Lo de las entradas que no siguen la estructura de Mandriva, algunos son paquetes instalados de Mandriva, por lo que en esos casos es un bug del paquete (como en Khttrack: Missed category in desktop file). Otros, fueron paquetes instalados de código fuente. Por lo que sé, las entradas de los menús se obtienen a partir de los ficheros desktop instalados en determinadas ubicaciones. Según la sección sobre el sistema de menús XDG del wiki de Mandriva, los ficheros desktop se buscan en los subdirectorios de XDG_DATA_DIRS/applications. Ahora bien, yo no tengo esa variable de entorno establecida, por lo que supongo que utilizará las rutas por defecto, que la experiencia me muestra que son, al menos, /usr y /usr/local/. Al estar usando KDE, además de en los directorios de datos de XDG, parece ser que los ficheros desktop se buscan también en KDEDIRS/share/applnk. El fichero desktop, entre otras cosas, incluye las categorías a las que pertenece el paquete, lo que indica dónde se incluirá la entrada en el menú. Si el fichero desktop está instalado en algún subdirectorio de KDEDIRS/share/applnk y no incluye la entrada "Categories", en el menú aparecerá una nueva categoría llamada como el subdirectorio de applnk en que está el fichero desktop, y dentro de esa categoría una entrada para dicho fichero. No afirmo, pero en principio que los ficheros desktop se instalen en applnk en lugar de en el directorio de XDG puede considerarse un bug del paquete, y lo mejor es informar de él. Así mismo, el hecho de que no incluyan una categoría en el archivo desktop también puede considerarse un bug. Y mientras el bug se soluciona, la mejor opción es añadir manualmente la categoría al archivo desktop por nosotros mismos. Aquí se pueden ver las categorías de Mandriva y utilizar la que más se ajuste al paquete en cuestión. Por otra parte, están los paquetes que deberían mostrarse en el menú, pero no lo hacen. Si el paquete instala un fichero desktop en XDG_DATA_DIRS/applications o subdirectorios, debería aparecer una entrada en alguna parte del menú. Los motivos para que no aparezcan pueden ser:
  • que el fichero desktop contenga una entrada tipo "Hidden=true", por lo que no se muestra de forma explícita aunque incluya categorías.
  • que el fichero desktop no contenga una entrada Categories, lo que se puede considerar un bug
  • que el fichero desktop contenga una entrada Categories, pero las categorías no estén soportadas por el menú de Mandriva
En ese último caso, podría ser un "bug" de Mandriva o del paquete. ¿Por qué lo pongo entre comillas? Porque la especificación de XDG aún no es definitiva y hay algunas cosas que deben pulirse un poco aún, como las categorías y sus nombres. Así pues, hay algunas categorías de XDG que en Mandriva aún no están soportadas, y esto es deliberado, como puede verse en este bug: applications.menu lacks freedesktop.org categories. Por otra parte, las categorías que incluye el fichero desktop podría ser que no pertenezcan a las categorías de XDG, por lo que estaríamos en este caso ante un bug del paquete. Y ya que estamos, me decido a arreglar una cosa curiosa que me pasaba en la 2006: el lateral del menú de KDE tiene el texto de la Powerpack+, cuando yo utilizo la free. Así que hecho un ojo a los paquetes instalados cuyo nombre tengan powerpack en el nombre mediante rpm -qa --nosignature | grep powerpack y me muestra el paquete powerpackplus-kde-config. Intento desinstalarlo, pero intenta quitar todo KDE, así que hecho un ojo a las dependencias que muestra para justificar la desinstalación (urpme powerpackplus-kde-config > powerpack, de forma que la salida se redirige al archivo powerpack, que abierto con un editor de textos se puede consultar más fácilmente que en consola). La palabra powerpack no aparece en ningún sitio, pero sí kde-config. Compruebo si hay más paquetes llamados kde-config mediante urpmq -y kde-config, y me muestra una lista entre los que se encuentra free-kde-config. Una vez instalado este paquete, ya puedo desinstalar sin problemas el de powerpack. Todos estos ajustes fueron hechos a nivel de usuario. Como es lógico, también hay que comprobar que, a nivel de sistema, las cosas funcionan como deben. Al apagar el sistema, me doy cuenta de que se queda en "System halted" y no hace nada más. Simplemente habilito ACPI desde el centro de control, sección Arranque->Configurar cómo arranca el sistema y problema arreglado. Cuando se instala un paquete mediante urpmi y dicho paquete contiene ficheros de configuración del sistema ya existentes y que fueron modificados tras su instalación, los ficheros de configuración se dejan intactos, y el fichero de configuración del paquete se crea utilizando el sufijo .rpmnew. En caso de que se desinstale un paquete que contiene un fichero de configuración modificado, dicho fichero se renombra con el sufijo .rpmsave. Dado que la actualización fue de todo el sistema, es de esperar que existan ficheros de configuración del sistema que hayan sufrido alguno de los dos casos expuestos, por lo que se buscan los diversos ficheros en /etc cuyo nombre termine en rpmnew y en rpmsave (haciéndolo desde consola, el primer caso sería find /etc -iname "*.rpmnew"). Y ahora, se va echando un ojo a cada fichero de configuración y decidiendo qué hacer con ellos: usar el nuevo, o añadir al viejo los cambios que se incluyen en el nuevo. El comando diff, que muestra las diferencias entre los dos archivos que se le indique, es muy útil en estos casos. Y, como siempre, hay que hacer una copia de seguridad de los archivos que se eliminen, sustituyan o modifiquen, incluso si crees que no va a pasar nada, porque nunca sabes cuando un archivo va a ser utilizado por algún elemento que no se te ocurrió en un principio ;) (Por ejemplo, el fichero de configuración de KDM también lo usa Mdkkdm, que una vez te das cuenta tiene su lógica, pero en el momento puedes sustituirlo por el rpmnew sin darte cuenta de dicha dependencia, como uno que me conozco yo y que escribe estas líneas... :P ) Aprovechando que al cambiar el fichero de configuración Mdkkdm dejó de funcionar, sustituí éste por GDM, ya que Mdkkdm ya no existe en Mandriva 2007 (era un paquete que quedaba sin actualizar de la 2006). En principio iba a usar KDM, pero en el repositorio contrib hay un paquete llamado "gdm-more-themes" que contiene un tema muy majo llamado Relaxing, así que para olvidarme de complicaciones usé el paquete en lugar de bajarlo directamente de GNOME-Look.org. Al arrancar, udev muestra algunos errores relacionados con algunas reglas (que se encuentran en /etc/udev/rules.d) que añadí manualmente para cuestiones concretas. Utilizando draklog compruebo los logs del sistema en busca de coincidencias con la cadena "udev", y soluciono los problemas en las reglas (o elimino los archivos de reglas si ya no son necesarios). Hecho todo esto, queda pasar a UTF-8 mi sistema, por un lado recodificando los nombres de los archivos (como se indica en Caracteres extraños en mis archivos y sus nombres: Cómo convertir $HOME a UTF8) y por otro utilizando draklocale para establecer la nueva codificación (ya que la actualización por urpmi, que yo sepa, no cambia la codificación del sistema a utilizar). Una acción recomendable es entrar en el centro de control de Mandriva e ir visitando los distintos asistentes para que actualicen la configuración de los diversos elementos. Por ejemplo, harddrake2 se baja algunos paquetes determinados que considera necesarios, y en el caso de drakprinter, tuve que borrar mi impresora y añadirla de nuevo para que funcionase adecuadamente (quizás hubiese servido editar la configuración de la impresora ya existente para que volviese a reescribirla, pero tampoco tenía nada que no pudiese borrar y añadir de nuevo ;) ). Queda comprobar, además, qué paquetes no fueron actualizados (porque ya no existen, porque cambió el nombre, etc). Para ello, se puede utilizar el procedimiento aquí descrito: ¿Cómo saber qué paquetes no fueron actualizados?, y según qué paquete sea, tomar una acción u otra. Ahora que (en apariencia al menos ;) ) el sistema base ya funciona como debe, añado los repositorios de PLF free, free_backports, nonfree y nonfree_backports. Una vez configurados los repositorios, desde el mismo drakx11, al seleccionar el modelo de tarjeta gráfica de NVidia de la lista, él mismo descarga el último driver propietario disponible desde PLF y edita /etc/X11/xorg.conf. Sin embargo, aún no funciona todo lo fino que debiera, al menos cuando se trata de cambiar la configuración desde un driver a otro distinto, por lo que hay que realizar algún ajuste manual en dicho fichero de configuración. Por meras cuestiones de manías mías, una vez incluido PLF en los repositorios no actualizo todo mediante urpmi --auto-select, sino que actualizo sólo algunos paquetes concretos a PLF, ya que algunos paquetes oficiales de Mandriva también están ahí. En algunos casos puede ser adecuado actualizar los de Mandriva a los de PLF, como mplayer, pero otros quizás no, como freetype (al menos, cuando lo hice en su momento, las fuentes se me empezaron a mostrar de forma bastante "fea" y tuve que volver a poner los de Mandriva). Una vez hecho todo esto, queda echar un ojo con más detalle a los diversos programas de usuario y sus configuraciones, para comprobar que todo haya sido actualizado como debe y que no haya problemas, y para ver qué nuevas y jugosas opciones nos traen las nuevas versiones ;) Y eso es todo en lo que respecta a la actualización pura y dura (sin contar instalar nuevos paquetes adicionales como el escritorio 3D y similares), a ver si a alguien le sirve de algo :)

Solución al arranque fallido de haldaemon tras actualizar vía urpmi

Tras actualizar de Mdv2007 RC2 a la versión final, me he encontrado con que el servicio /etc/init.d/haldaemon no funcionaba, la solución es tan sencilla como reinstalarlo:
rpm -e --nodeps libhal1 hal
urpmi hal
Saludos ;-)

Manual de introducción a la compilación

A continuación hay un pequeño manual introductorio a la compilación de paquetes desde código fuente. Antes de nada, aclarar que esto debería ser un último recurso a utilizar en casos concretos. Antes de instalar desde código fuente: * intenta siempre instalar paquetes empaquetados en un fichero rpm, preferiblemente de los repositorios de tu distribución utilizando urpmi. * si no los encuentras, busca en cooker por una version de ese paquete en formato "bla-bla-12.34-56.src.rpm". Luego, creas un rpm a partir de ese "source rpm": rpmbuild --rebuild bla-bla-12.34-56.src.rpm Si ninguna de las opciones anteriores funcionó... es hora de sacar las pócimas y sortilegios e instalar un paquete de código fuente. Muchos han muerto intentándolo, pero no sufras, con la ayuda de este pequeño manual de introducción espero que puedas sobrevivir para contar con orgullo a tus nietos como compilaste tal paquete. Vamos con una pequeña explicación de ./configure, make y make install (que conste que no soy ningún erudito, así que puede que meta algún gambazo ;) ).

Configuración

El primer paso de dicha secuencia es la configuración del paquete. En esta etapa el paquete se prepara para su compilación configurando diversos parámetros del paquete (como lugar en donde instalar, dónde se encuentra determinada biblioteca, etc), comprobar que se cumplen las dependencias, etc. Configure no es un programa como tal, sino que es un script, distinto para cada paquete. No obstante, pese a que cambia según el paquete, opciones como "--prefix" son algo genérico y suele estar presente en todos. Las opciones del configure, por lo general, puedes verlas mediante
./configure --help
(opción que tienen la mayoría de los scripts/programas de línea de comandos para saber cómo invocarlos).

Construcción

Una vez que el paquete está configurado, se pasa a su construcción. Cuando se trabaja con ficheros make, lo normal es que dichos ficheros sean creados por el script ./configure una vez termina exitosamente y dispone de toda la información para crear dichos ficheros. Los ficheros make contienen una serie de instrucciones que serán ejecutadas por el programa make. Hay diversas versiones de make, y puede haber más de una instalada en el sistema, ya que algunos ficheros make sólo funcionan con versiones concretas del ejecutable make. La construcción puede ir desde compilar el código fuente a generar documentación pasando, por ejemplo, por crear ficheros PNG a partir de ficheros en SVG. Pero, en general, lo que se hace al construir es compilar el código fuente.

Instalación

Una vez construido, ya se dispone de los ejecutables, bibliotecas, etc necesarios para utilizar el paquete. Pero aún no están en su sitio. Deben instalarse a su ubicación final. Para ello se ejecuta make install, que lo que hace es ejecutar make y decirle que utilice el conjunto de instrucciones marcadas como "install" en el fichero make. Otra opción interesante es crear un rpm a partir de un paquete construido para ser instalado como cualquier otro fichero rpm. Tiene la ventaja de poder desinstalarse incluso en aquellos paquetes cuyo fichero make no tiene el objetivo uninstall (make uninstall). Puedes ver un interesante artículo de Sinner sobre este tema aquí: Construye tus propios paquetes (rpm, deb, tgz) Hay que tener en cuenta que si se configura y construye un paquete en el directorio en que se quiere instalar... eso no sirve ;) (al menos en Mandriva, más sobre esto luego). La estructura de un paquete construido y la de un paquete instalado, por lo general, poco tienen que ver. Para no enrollarme mucho con esto... simplemente poner el ejemplo más sencillo: lo que en un paquete construido puede estar en el directorio src, en uno instalado puede estar en bin.

Sistemas de construcción

Y el último detalle sobre la secuencia ./configure, make y make install. No siempre se puede hacer así. Esa secuencia es la utilizada por programas que siguen el sistema de construcción GNU (artículo de la Wikipedia inglesa) que, aunque son la mayoría, no son todos. Aunque tampoco es un problema muy importante. El motor de juegos Crystal Space por ejemplo creo recordar que para la construcción utiliza jam, por lo que habría que hacer ./configure, jam y jam install. KDE, por su parte, para la construcción utiliza unsermake, pero desde el punto de vista del usuario eso es indiferente porque se ejecuta directamente con ./configure, make y make install (no sé cómo lo hace internamente, quizás alguna instrucción en el fichero make que a su vez ejecuta unsermake, pero no lo sé). Así que como ves, el cambio de un sistema de construcción a otro no suele ser algo muy traumático ;)

¿Todo paquete tiene script de configuración?

Como ya se dijo, por lo general, los paquetes que uno se baja no llevan un fichero Makefile ya creado. Suelen llevar el Makefile.am y el Makefile.in, pero el Makefile (o equivalentes según el sistema de construcción) suele crearse una vez configurado el paquete. Excepción a esta regla son algunos paquetes muy "sencillos", por ejemplo el módulo del kernel CDemu, que no tiene sistema de configuración, sino que utiliza ya un fichero Makefile de construcción directamente. Algunos de estos ficheros Makefile necesitan ser editados manualmente (lo que haría la configuración de forma automática), y otros están listos para construir sin necesidad de tocar nada. Todo depende del paquete. Otro caso en el que no suele haber ni siquiera script de configuración es en los paquetes bajados directamente de un sistema de control de versión (artículo de Wikipedia española) como CVS o Subversion. No obstante, si compilar desde paquetes de código fuente suele ser el último recurso, éste ya se sale de las tablas ;) Sólo está recomendado para desarrolladores, beta-testers o gente muy, muy valiente ;)

¿Cómo puedo saber la secuencia a seguir para instalar?

Leyendo :) Incluso un usuario experimentado, que con un vistazo rápido a la estructura de los archivos del paquete podría deducir qué sistema de construcción necesita utilizar, lee ;) Generalmente, en la propia página web del paquete tendrás documentación que te indica cómo puedes construirlo e instalarlo desde código fuente. Además, los paquetes suelen contener un archivo INSTALL con la información necesaria para realizar la construcción e instalación. También suelen contener un fichero README en el que puede aparecer dicha información.

¿Dónde instalar?

Tras esta introducción a la compilación, vamos con la cuestión del prefijo de instalación. Personalmente, recomiendo instalar utilizando el prefijo /usr/local, principalmente por costumbre personal. También hay quien recomienda, como Pacho, instalar en /opt. Instalar en /usr no suele ser una buena idea, ya que sería mezclar aplicaciones gestionadas por urpmi con las compiladas manualmente. Cabe mencionar que instalar el paquete bar en el prefijo /foo no quiere decir que el paquete acabe en /foo/bar, sino que terminará disperso por /foo/bin, /foo/lib, /foo/share/bar. ¿Y qué significa cada directorio? ¿Por qué tanta dispersión? Para eso, nada mejor que echarle un ojo a Filesystem Hierarchy Standard. En el tema que nos ocupa ahora mismo, /opt purpose /opt is reserved for the installation of add-on application software packages. A package to be installed in /opt must locate its static files in a separate /opt/ or /opt/ directory tree, where is a name that describes the software package and is the provider's LANANA registered name. Por otra parte: /usr/local The /usr/local hierarchy is for use by the system administrator when installing software locally. It needs to be safe from being overwritten when the system software is updated. Es por eso que recomiendo instalarlo en /usr/local. No todas las distribuciones siguen el FHS al pide de la letra, y algunas incluso lo redefinen por completo, como por ejemplo GoboLinux.

Configure falla, ¿qué le ocurre?

Por lo general, la mayoría de programas dependen de alguna biblioteca externa. A la hora de compilar, el compilador tiene que saber cómo trabajar con dichas bibliotecas. Los paquetes cuyo sufijo es devel contienen dicha información. Es decir, que cuando se necesita compilar algo que depende del paquete libfoo, tendrás que instalar el paquete libfoo-devel. Configure, entre las comprobaciones que hace está el asegurarse de que el compilador tendrá a su disposición dichos paquetes de desarrollo. Si es la primera vez que compilas, seguramente te falten bastantes paquetes devel de los que se irá quejando el configure. La cuestión es instalar los paquetes que faltan, re-ejecutar configure, instalar los siguientes paquetes de los que se queje... así hasta que te diga algo en plan "Good. Start make now" o una cosa similar, momento en que podrás empezar a compilar. Suerte ;)

¿Cómo puedo deducir el paquete que falta por los mensajes del configure?

Vamos con la dilucidación de paquetes según errores del configure. Esto, más que otra cosa... es un arte :P La experiencia es la mejor forma de saber qué paquete te pide ;) Pero vamos con un ejemplo real: El mensaje de error era el siguiente:
checking for X... configure: error: Can't find X includes.
Please check your installation and add the correct paths!
Lo primero que nos dices es que está buscando "las X". Es decir, está intentando encontrar las dependencias que necesita para construir relacionadas con el servidor X11 utilizado en el sistema. Dicho servidor en Mandriva y, actualmente, la mayoría de distribuciones, es X.org. Veamos ahora el error: "Can't find X includes." No encuentra los ficheros include (lo dejo en inglés porque la traducción al español no me suena nada bien :P ) para el servidor X. Los include son los ficheros que necesita el compilador para saber cómo trabajan las bibliotecas que necesita para compilar (dicho en "profano" ;) ). Como comenté, los paquetes que contienen esos ficheros llevan el sufijo devel en su nombre. Ahora bien, de todos los devel, ¿cuál se necesita? El del servidor X, obviamente. Y dicho servidor X es X.org como ya se dijo. Echemos un ojo con urpmq a la lista de paquetes disponibles que contengan xorg en su nombre. Hay unos cuántos, pero espera... lo que buscamos es una biblioteca (lo general es que las dependencias con includes sean de bibliotecas, y no de aplicaciones normales). Y los paquetes de bibliotecas tienen el prefijo "lib". Así que busquemos de nuevo, pero esta vez los que contengan libxorg en su nombre:
Los siguientes paquetes contienen libxorg:
libxorg-x11
libxorg-x11-devel
libxorg-x11-static-devel
¡Ajá! El primero de ellos es la biblioteca como tal de X.org. El segundo es lo que andábamos buscando: el paquete que contiene la información para el compilador para saber cómo trabajar con la biblioteca. ¿Y el tercero? ¿Qué es eso de static devel? Bueno, el tercero es un paquete un tanto especial. Algunas aplicaciones necesitan compilarse de forma que en su ejecución, en lugar de acceder a la biblioteca que se encuentra en el sistema, la lleven ellos mismos ya en sus entrañas. Para ese tipo de aplicaciones son los paquetes static devel: cuando se necesita compilar con bibliotecas estáticas. Lo normal es compilar con bibliotecas dinámicas, que es el segundo paquete como te dije. El tercero quizás debas instalarlo en alguna ocasión, pero no es muy común.

Compilando aplicaciones KDE

Este paso sólo debe hacerse la primera vez que compiles algo de KDE. Crear el archivo /etc/kderc y añadir en él (todo ello como root, ya que está en /etc, y preferiblemente en consola ;) ) lo siguiente:
[Directories]
prefixes=/usr/local
Con esto lo que haces es que KDE, además de buscar las cosas en su directorio por defecto (/usr), busque también en el directorio /usr/local, de forma que puedes instalar cosas de KDE compiladas usando /usr/local como prefijo y funcionarán como si estuviesen en /usr (de hecho, creo que /usr/local tendría incluso prioridad sobre /usr) Debes reiniciar KDE (salir y volver a entrar en tu sesión vaya) una vez modificado /etc/kderc para que coja los cambios.

Instalando bibliotecas compiladas desde código fuente

Antes de nada, dejar claro que instalar bibliotecas desde código fuente es algo muy poco recomendable (sí, menos incluso que instalar aplicaciones ;) ), ya que suelen ser piezas claves del sistema, por lo que es mejor utilizar las propias de la distribución, que ya están probadas y bien integradas. En ocasiones muy concretas y específicas, no obstante, es necesario instalar una biblioteca desde código fuente por algún motivo. En ese caso, hay que tener en cuenta unas consideraciones adicionales. Instalar una biblioteca desde código fuente suele ir seguido de instalar una aplicación desde código fuente que utiliza dicha biblioteca. Como recordarás, a la hora de compilar una aplicación se necesita cierta información sobre las bibliotecas de las que depende. Dicha información, por lo general, la provee dicha biblioteca de un modo u otro. Actualmente, posiblemente la forma más cómoda para los desarrolladores (y por tanto, la que probablemente tenga una aplicación más amplia) para llevar a cabo esto es mediante pkg-config. De modo similar a make, pkg-config es un programa ejecutable instalado en el sistema que al invocarse lee información de un fichero para obtener la configuración que necesitará una aplicación para usar una biblioteca. Cuando se instala una biblioteca, se instala con ella el fichero conteniendo dicha información. El problema es que pkg-config, por defecto, busca los ficheros en una serie de directorios en los que, como se explicó antes, no deberías instalar paquetes desde código fuente. ¿Qué hacer entonces para que encuentre los ficheros de configuración de las bibliotecas instaladas desde código fuente? Debe establecerse la variable del shell $PKG_CONFIG_PATH a los directorios adecuados. Podrías establecerla en el propio shell justo antes de configurar un paquete que dependiese de la biblioteca. Pero, ¿no sería más cómodo que se estableciese al arrancar el sistema automáticamente? Para esto está el directorio /etc/profile.d/. Los scripts para el shell Bash o csh que se encuentren en dicho directorio se ejecutarán (a no ser que lo hayas deshabilitado explícitamente en el fichero /etc/profile) cuando se inicialice el shell. Así pues, habría que añadir los siguientes ficheros al directorio /etc/profile.d/: Para Bash, pkg-config.sh: # Set PKG_CONFIG_PATH for Bash shell export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/" Para csh, pkg-config.csh: # Set PKG_CONFIG_PATH for csh setenv PKG_CONFIG_PATH "${PKG_CONFIG_PATH}:/usr/local/lib/pkgconfig/" Por supuesto, si en lugar de utilizar el prefijo de instalación /usr/local utilizaste otro, debes reflejarlo en esos ficheros ;)

¿Cómo puedo hacer un icono en el escritorio de KDE?

De regalo, y para terminar, aquí está el procedimiento a seguir para hacer un icono en el escritorio de KDE a un ejecutable que utilice un icono específico: -Botón derecho en el escritorio -Crear nuevo->Enlace a aplicación... -En la pestaña General, establecer como nombre el que se desee que muestre el icono. -En la pestaña Aplicación, establecer como Comando la ruta completa al ejecutable (el botón Examinar... es muy majo ;) ) Con esto, ya tendríamos lo mismo que realizando el enlace con arrastrar y soltar. Ahora vamos a poner el icono específico. -En la pestaña General, click sobre el icono -Buscar el icono en la lista, o acotar la búsqueda mediante la barra de búsqueda, seleccionarlo y ¡voilá! Esto último funcionaría si el programa fue instalado en un prefijo usado por KDE, que por defecto es /usr, y que puede ser ampliado con la información añadida en /etc/kderc. Y hasta aquí este pequeño manual de introducción ;)

Soluciones a problemas conocidos

Destinado a documentación que indica a los administradores algunas instrucciones que les podrían ser útiles si alguna vez se encuentran con alguno de estos "problemas" conocidos (y con solución ;-)).

De todos modos no es seguro que se presenten estos problemas ;-)

Saludos

Caracteres extraños en mis archivos y sus nombres: Cómo convertir $HOME a UTF8

Estaba actualizando las Errata y Release notes de Mandriva (ahora están al día otra vez, con respecto a la versión en inglés) y he encontrado que se ha añadido este script en Perl útil cuando la 2007 se instala de nuevas, no actualizando, pero conservando el anterior /home. Este script convierte los archivos del /home del usuario en UTF8. Creo que puede ser de utilidad ya que a alguno se habrá con que los caracteres acentuados, eñes, etc. no se muestran correctamente tras la migración a UTF8.
#!/usr/bin/perl

use File::Find;
use Locale::gettext;
use POSIX();

@ARGV == 0 || @ARGV == 1 && -d $ARGV[0] or die "usage: convert-filenames-to-utf8 []\n";
my $dir = $ARGV[0] || $ENV{HOME};

-d $dir or die "$dir is not a directory\n";

{
    my ($LC) = grep { $ENV{$_} } 'LC_ALL', 'LC_CTYPE';
    my $new_LC = $ENV{$LC};
    $ENV{$LC} =~ s/.UTF-8$//i or die "$LC=$ENV{$LC} does not contain UTF-8\n";
    POSIX::setlocale(LC_CTYPE, "");
    print STDERR "converting file names from $LC=$ENV{$LC} to $LC=$new_LC starting from directory $dir\n";
}

finddepth({ 
    wanted => sub {
	my $s = to_utf8($_);
	if ($s ne $_ && from_utf8($_) eq $_) {
	    print STDERR "$File::Find::dir: renaming $_ to $s\n";
	    my $ok = rename($_, $s);
	    if (!$ok && $! == 13) {
		my $mode = (lstat('.'))[2] & 07777;
		if ($mode && chmod($mode | 0700, '.')) {
		    printf STDERR "retrying after setting mode to 0%o\n", $mode | 0700;
		    $ok ||= rename($_, $s);
		}
	    }
	    $ok or warn "renaming failed: $!\n";
	}
    },
}, $dir);


sub from_utf8 {
    my ($s) = @_;
    Locale::gettext::iconv($s, "utf-8", undef); #- undef = locale charmap = nl_langinfo(CODESET)
}
sub to_utf8 { 
    my ($s) = @_;
    Locale::gettext::iconv($s, undef, "utf-8"); #- undef = locale charmap = nl_langinfo(CODESET)
}
Para ejecutarlo, guardarlo en el home del usuario (p.e. /home/pepito) y ejecutar:
cd ~/
chmod u+rx convert-filenames-to-utf8.pl
./convert-filenames-to-utf8.pl

Firefox se cae (problema relacionado con la profundidad de color o con el tema elegido)

Básicamente son dos problemas conocidos y ambos con solución:
Me compre un monitor de 19 pulgadas (LCD), antes tenia uno de 17, y desde que tengo una resolucion de 1440 x 900...cada cierto tiempo se cierra firefox....sera por eso...no veo otra explicacion, antes funcionaba bien. Uso mandriva 2007. Eso, gracias de antemano.

Instalar Avidemux (plf) a pesar de dependencia mal resuelta con firefox

Uso Mandriva 2006 para AMD64, pero supongo que esta solución vale para la versión i586 sin más que cambiar donde pone lib64 por lib. El paquete es avidemux-2.2.0-0.preview2b.9.1plf2007.0.x86_64.rpm (supongo que esto vale también para i586) Cuando intento instalarlo con rpmdrake me dice: Lo siento, no se pueden seleccionar los paquetes siguientes: avidemux-2.2.0-0.preview2b.9.1plf2007.0.x86_64 (debido a que no se satisfizo lib64mozilla-firefox1.5.0.8) Bien, pues lo instalamos (como root) con:
# urpmi avidemux --allow-nodeps
ya lo tenemos instalado pero se niega a ejecutarse. Si lo ejecutamos desde una consola $ avidemux2 aparece el mensaje: error while loading shared libraries: libmozjs.so: cannot open shared object file: No such file or directory Bien, pues buscamos donde está libmozjs.so. En mi PC aparece en varios sitios, uno de ellos aquí: /usr/lib64/mozilla-firefox-1.5.0.9/libmozjs.so Probamos a solucionar el asunto con un enlace blando para engañar a avidemux y hacerle creer que está en otro sitio:
# mkdir /usr/lib64/mozilla-firefox-1.5.0.8
# cd /usr/lib64/mozilla-firefox-1.5.0.8
# ln -s ../mozilla-firefox-1.5.0.9/libmozjs.so libmozjs.so
Y así, avidemux2 arranca sin problemas. No obstante, he encontrado otra solución: Ejecutar khexedit y abrir el fichero
/usr/bin/avidemux2
Buscamos la cadena de texto "mozilla-firefox-1.5.0.8" (sin las comillas) Y cambiamos el 8 por un 9. En mi caso, naturalmente. Salvamos en la carpeta de usuario normal el fichero avidemux2 modificado. Pero los permisos están cambiados (no tiene permisos de ejecución). En el original es un 755.
# mv /usr/bin/avidemux2 /usr/bin/avidemux2.original
# cp /home/usuario/avidemux2 /usr/bin/avidemux2
# chmod 755 /usr/bin/avidemux2
Para probar que funciona sin el enlace, borramos la carpeta donde lo pusimos Y funciona. Menos mal.

No puedo ver los Discos Rigidos y Particiones en Mandriva One

Como veran, soy novato y me van surgiendo preguntasa medidas que voy conociendo Mandriva One, espero no molestar. Ahora mi inquietud es como ver los discos u otras unidades en mandriva one. Tengo un disco de 80 gigas particionado en 60 y 20, y otro disco de 40 gigas. En la particion de 60 gigas tengo instalado windows xp (30 gigas) y en lo que quedo instale Mandriva One. Ahora bien, supuestamente en /mnt tendrian que aparecerme las unidades. Solo me aparece lo siguiente: cdrom cdrom2 hd install Entro en algunos y estan como vacios. Ahora entro en el icono que tengo en el escritorio el que dice DISPOSITIVOS, y alli me aparece cuando inserto algun cd en la lectora y me aparecen dos particiones del disco con los siguienets nombres: Soporte 18G (tiene las siguienes carpetas) guest lost+found nadim Soporte 8.4G (Aqui estan todas las carpetas supongo donde se instalo el sistema operativo) Pero no, me aparece la particion donde tengo instalada windows (no se si me tendra que aparecer o no esta ya que esta en NTFS) y tampoco la otra particion de 20 gigas, y tampoco me aparece el otro disco de 40 gigas que tengo conectado. ESpero haberme explicado bien y los moleste con mis inquietudes. Muchas gracias.

Probando 10.1-Community (upgrade via urpmi)

Ya he probado la 10.1. He actualizado un server que tenia la 10.0-Official

?Que tal va? Bien, bien. Pero he encontrado algunas cosillas raras.

1. al upgradear de 10.0 a 10.1, via urpmi, el sshd se paro. Existia el fichero /var/lock/sunsys/sshd pero sshd estaba muerto. Un service sshd restart y carreras. En el log me encontre esto:

Sep 17 09:29:55 sal9000 perl: [RPM] openssh-server-3.9p1-3mdk installed
Sep 17 09:29:56 sal9000 sshd: stop succeeded
Sep 17 09:29:56 sal9000 sshd: startup succeeded
Sep 17 09:29:56 sal9000 sshd[8793]: error: Bind to port 22 on 0.0.0.0 failed: Address already in
use.
Sep 17 09:29:56 sal9000 sshd[8793]: fatal: Cannot bind any address.
Sep 17 09:29:56 sal9000 sshd[2253]: Received signal 15; terminating.

2. El apache me hace el tonto.

En el log de instalacion, tenia esto:

Sep 17 09:26:03 sal9000 perl: [RPM] apache2-modules-2.0.50-5mdk installed
Sep 17 09:26:10 sal9000 ADVXctl: httpd shutdown succeeded
Sep 17 09:26:11 sal9000 httpd2: Syntax error on line 36 of /etc/httpd/conf/httpd2.conf:
Sep 17 09:26:11 sal9000 httpd2: Cannot load /etc/httpd/2.0/modules/mod_expires.so into server: /e
tc/httpd/2.0/modules/mod_expires.so: undefined symbol: ap_hook_insert_error_filter
Sep 17 09:26:11 sal9000 ADVXctl: Checking configuration sanity for Apache 2.0:  failed

Y me daba errores raros cuando lo reiniciaba el apache, hasta que mire que el error decia algo sobre /etc/sysctl.conf y vi que, efectivamente, tenia un fichero llamado /etc/sysctl.conf.rpmnew. Renombre el original a .viejo y el /etc/sysctl.conf.rpmnew a /etc/sysctl.conf. Reiniciar el apache y todo arreglado.

3. El kernel + udev. Como no, el kernel hay que instalarlo al final. Pero udev no se instala automagicamente. Para instalar udev:

urpmi kernel
urpmi udev
urpme devfsd
sh /etc/udev/scripts/start_udev
reboot

?Y porque quiero usar udev en vez de devfsd? Comparad:

Con devfsd:

[sinner@monstre ]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/ide/host0/bus0/target0/lun0/part5
                      780M  194M  547M  27% /
[sinner@monstre ]$ cat /etc/mandrake-release
Mandrake Linux release 10.0 (Official) for i586
Con udev:

[sinner@sal9000 ]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda1             3.5G  2.2G  1.2G  67% /
[sinner@sal9000 ]$ cat /etc/mandrakelinux-release
Mandrakelinux release 10.1 (Community) for i586

Salut,
Sinner

Problemas con sonido (mdk 10.2)

Buenas he instalado hace unos dias la nueva Mandrake 10.2 (o Mandriva LE 2005) y todo rula muy bien excepto el sonido, el alsa detecta la tarjeta (es una sb live) y todo perfecto pero el sonido sale como con interferencias... se oye como un "jjjjjjjj" xD, bueno eso, a ver si alguien me puede echar una mano con esto que soy novato en linux y no se por donde empezar. Por cierto antes tenia la 10.1 y rulaba perfectamente, el problema ha sido al instalar la nueva, la instale desde cero, quitando y volviendo a formatear particiones y tal, asi que es km 0 la instalacion. Enga, un saludo.

Solucion a imprimir en impresora samba desde laptop con Mandriva 2006

Voy a detallar el problema de impresión que tuve durante varios meses. Este se presentaba al intentar añadir una impresora utilizando KDEPrint. Los pasos que seguía y sus mensajes de error son: 1.Añadir una impresora compartida en smb. 2.Luego indicar que el usuario es "guest". (o sin usuario ocurre lo mismo) 3.Seleccionar la opción de “monitorear” la red. (mi red se mostraba dos veces) 4.Escoger la máquina win2 en donde está instalada la impresora. (al tratar de seleccionarla me daba el error de “NT ACCESS DENIED”) 5.Regresar a cambiar el usuario a "anonimo" y pasar a escoger la impresora de la red que se requiere sin “monitorear” la red de nuevo. 6.Seleccionar el PPD correspondiente a la impresora de interés. 7.Enviar a imprimir la página de prueba. En ese momento pedía que ingrese un “usuario” y su “clave”. Probaba ingresar mi usuario linux normal o el root pero me decía que no estaba autorizado y que por tanto no podía añadir la impresora. Para intentar corregir este error primero probé tener el PPD adecuado para mi impresora y lo hice conectándola directamente a mi PC y siguiendo el procedimiento indicado anteriormente pero seleccionando la opción de “añadir impresora local”. Todo anduvo bien y no tuve problema en concluir el asistente. También verifiqué que tenga acceso a los demás recursos compartidos de la red. Más tarde en un foro sugirieron revisara el archivo “error_log” en “/var/log/cups” y lo que encontré ahí son varios mensajes como el siguiente que se repetían en varias ocasiones: "cannot get the ticket cache for 500" ó root "tree connect failed" "unable to connect to SAMBA host, will retry in 60 sec.....ERROR: no ticket cache found for userid=500" Bueno, al final conseguí utilizar en mi laptop con MDV2006 la impresora en red conectada a una máquina Win2. Voy a describir lo que hice por si a algún otro novato como yo le sucede lo mismo. En mi laptop tenía instalado sólo samba-client, así que ingresando por el “menú K” y siguiendo la ruta “Sistema – Configuración – KDE – Red – Samba” accedí a la configuración de samba “smb.conf”. Una vez dentro del editor trataba de dar de alta los usuarios samba que corresponden con los usuarios linux, pero noté que no los grababa al salir, no sé si por algún motivo se sobrescribía el archivo y regresaba a su versión anterior al cambio o simplemente no los grababa. Luego instalé samba-server y pasé a configurar samba utilizando la ruta “Centro de Control” en la sección de “Puntos de montaje - configuración samba”, así pude dar de alta los usuarios samba sin que se borren al salir. Luego pasé a añadir la impresora en red utilizando KDEPrint como usuario normal. Siguiendo los pasos indicados a continuación, que son casi los mismos que intentaba en un principio: 1.Seleccioné qué tipo de impresora quiero añadir, en este caso “añadir impresora compartida en samba”. 2.Luego ingresé mi usuario linux (el mismo que definí en samba) con la clave. 3.Después ingresé manualmente el grupo de trabajo, servidor e impresora compartida de mi interés. (Esto porque al monitorear la red no podía visualizar los recursos compartidos). 4.Luego seleccioné el archivo PPD correspondiente. 5.Después envié a imprimir la página de prueba y ....... ya todo bien!!!. 6.Finalmente presioné Finalizar y la impresora en red quedó habilitada en mi laptop con MDV6. Como dije anteriormente, espero que sea de utilidad para alguien más. Otro compañero de estos foros tuvo un problema similar y encontró su propia solución. Finalmente, algo que no he podido explicarme, y por tanto solucionar, es el hecho de que cuando “monitorizo” la red en busca de una impresora usando KDEprint, en el caso de intentarlo como usuario “Anónimo”, me aparece dos veces mi red. Si alguien más me puede dar una guía al respecto se lo agradeceré.

Solución al problema del cambio a valores extraños de hora en Mandriva Linux 2008 Spring

Descripción del problema

La cosa es la siguiente, vivo en Argentina y la hora acá es -3 horas de la UTC. Si el reloj de la PC está configurado como UTC=true, Mandriva compensa las tres horas correspondientes siempre. O sea, en el bios son las 20:00 Hs (UTC) y en el escritorio (Hora local) me figura 17:00 Hs. Así siempre. Reinicio la computadora y no cambia nada. En cambio si está el reloj puesto como UTC=false, lo que yo esperaría es que la PC y el escritorio tuviesen la misma hora, sin embargo, una vez que arranca la máquina, Mandriva compensa quitándole las tres horas, y escribe el bios también, lo que hace que al reiniciar la máquina vuelva a compensar y vuelva a escribir el bios. Ejemplo: parto del bios puesto en 21:00 Hs., arranca MDV y pone 18:00 Hs. Modificando el bios, reinicio la PC y ahora parto de un bios puesto en 18:00 Hs, arranca MDV y vuelve a quitar tres dejandome 15:00 Hs puestas también en el bios, y bueno, así ad infinitum.

Solución

Leyendo los comentarios del bug de la Cooker hace poco alguien tiró una solución y la ensayé. Aparentemente tiene éxito así que los animo a que la prueben. Voy a explicar paso a paso qué hice. Discúlpenme los puristas de la consola pero yo quise hacerlo con el Konqueror y el Kwrite. Ahí va: Ejecuté el Konqueror como root. Fui hasta /etc Copié (ctr+c) el archivo: rc.local y luego lo pegué (ctr+v) ahí mismo renombrándolo como: rc.early.local Edité con el Kwrite este nuevo archivo quitándole toda la parte útil y poniendo en su lugar solamente la línea:
/sbin/hwclock -s
Listo. Lo probé con UTC tanto "true" como "false" y a mi me anduvo.

Sonidos en KDE

¿Alguna vez has perdido los sonidos de KDE y no sabes como recuperalos? ¿Dejastes de escuchar la trompetita de k3b? ¿la musica al entrar? Quizá encuentre aquí la solución...

Hace bien poco tuve un problema con ALSA y que también remití a la lista de newbie-es. Allí me comentaron la existencia de un bug curioso.

Resulta que existe un archivo que se llama ~/.kde/share/config/knotifyrc que contiene 3 variables que deben estar a "true" para que se reproduzcan los soniditos. Las variables son las siguientes:

Arts Init=true
KNotify Init=true
Use Arts=true

Pues bien, cuando se produce un crash de knotify o el servidor de sonido no está disponible estos valores cambian y no hay forma de cambiarlo desde kcontrol. A mi la primera y la última se me pusieron a false y las cambié a mano con un editor.

Bueno, pues hasta aquí que yo sepa. Más detalles y más cosas que tengamos que saber de todo esto, por favor a los comentarios.

[Mdk 10.0] La documentación en español no esta?

Hola.BlogDrakeros :)
Aqui expongo un pequeño fallo que existe en la instalación de documentación en español para la version 10.0 official y como lo he solucionado yo.....

Despues de instalar los paquetes:

mandrake-doc-es-10.0-5.1.100mdk
mandrake-doc-drakxtools-es-10.0-5.1.100mdk

Voy al menu > Más aplicaciones > Documentación > Mandrakelinux documentation in Spanish

Se abra un documento html en el que no figura para nada la entrada a Drakxtools.

El documento principal esta en file:/usr/share/doc/mandrake/es/index.html
y la entrada a drakxtools esta en file:/usr/share/doc/mandrake/es/Drakxtools-Guide.html/index.html

Si sabeis del todo lo que haceis, com root, editais el archivo de la entrada principal y añadis la entrada a drakxtools.

Si no, no es necesaria(pero queda mas "guay"), la cuestion es no perderse la lectura del documento sobre Drakxtools, ya que esta traducido, bueno es aprovecharlo y de verdad, para cualquier novato, tiene muuucho que aprovechar.
un simple vistazo al índice de ese documento basta para darse cuenta de lo interesante que es, explica, con todo detalle, ilustraciones y demas, como utilizar las herramientas de configuracion que han hecho famosa a Mandrakelinux.

Despues de la lectura (muy amena) de este documento, sabras desde como configurar una red, hasta como añadir repositorios de paquetes y todo en forma grafica.

Lo dicho, la entrada esta en:

file:/usr/share/doc/mandrake/es/Drakxtools-Guide.html/index.html

[Mdk 9.2] Menus de Mandrake (programas que desaparecen)

Esta pagina da solucion a estas dos situaciones:

1. En mi Mandrake 9.2 me han desaparecido los programas del menu!!
2. He instalado un programa, lo he anyadido al menu del KDE y ha desaparecido!

1. En mi Mandrake 9.2 me han desaparecido los programas del menu!!

Es un problema "conocido" y arreglado desde noviembre de 2003. Si actualizarais de vez en cuando, se habria arreglado el problema. Ver el problema explicado en MandrakeSecure.

Una pequenya traduccion:

Fecha: 18 de Noviembre de 2003

Se ha encontrado un bug en la forma que rpm bloquea su base de dadots, de forma que impide actuar apropiadamente a update-menus, lo que puede causar la perdida de entradas en los menus de KDE, GNOME, y otros Window Managers.

Os recomiendo a los dos que useis MandrakeUpdate, que para eso esta, una vez a la semana.

2. He instalado un programa, lo he anyadido al menu del KDE y ha desaparecido!

Puedes tener este rpoblema de 2 formas:

* Caso A: Has instalado un programa desde el codigo fuente (tar.gz -> ./configure -> make -> make install), modificas el menu de KDE (o de Gnome) para que aparezca el icono y... el icono desaparece!

* Caso B: Has instalado un programa desde un rpm no preparado para Mandrake, el cual crea su icono en el menu de KDE (o de Gnome)... y el icono desaparece!

En ambos casos, tienes el mismo diagnostico y la misma solucion:

El problema es que no usas las herramientas que Mandrake pone a tu disposicion para administrar el sistema.

Mandrake, al igual que Debian y Knoppix y PCLinuxOS y demas distros basadas en debioan o Mandrake, NO usan el menu del KDE ni el de Gnome ni el de XFCE ni el de BlackBox ni el de FluxBox ni el de...

Todas esas distribuciones usan menus generados dinamicamente por el programa "update-menus ".

"update -menus" es la que se encarga de mantener los menus, de tal manera que tanto en KDE como en Gnome como en FluxBox como en IceWM como en ... tengas siempre el mismo menu.

Por ello, si cambias el menu KDE, unicamente estas cambiando el menu *emporal* de KDE, que sera actualizado cada vez que update-menus se ejecute. Creo que msec y rpm y otros programas lanzan update-menus de vez en cuando y cada vez que instalas algo via urpmi.

La instalacion de programas via tar.gz o de rpms "genericos" no incluira las entradas apropiadas en el esquema de menus de Mandrake/Debian/Knoppix....

En Mandrake tienes el programa "menudrake". Es desde ese programa que debes incluir entradas a la estructura de menus del sistema.

Puedes usar "menudrake" como usuario o como administrador del sistema (root). En el primer caso, solo afectaras a los menus de tyu usuario. En el segundo, podras modificar los menus del sistema.

Salut,
SinnerBOFH

¿Transferencias USB lentas en Mandriva 2008? "nosync" tiene la culpa.

Pasar MP3s a mi reproductor portátil era desesperante, usando Konqueror lo copiaba a apenas 100 KB/sec cuando en versiones anteriores lo hacía a 2 MB/sec como velocidad mínima. Le recé a San Google y encontré esto USB drive transfer speed slow El tío tiene/tenía el mismo problema que yo. La solución fue sencilla: en /etc/fstab había que eliminar "nosync" en la linea que correspondía al dispositivo, en mi caso sda1, de modo que quedó así:
/dev/sda1 /media/hd vfat umask=0022,users,iocharset=utf8,noauto,exec 0 0
Después de desmontar y remontar mi MP3 ahora sí tengo la velocidad de antes :-) Espero que a alguien más también le sirva.

Gestión e instalación de paquetes

Todo lo relacionado con el gestor de paquetes oficial de Mandriva URPMI e información sobre otros gestores que se pueden usar de forma no oficial (y con los riesgos que, por ello, pueden ocasionar ;-)).

apt

Apt es el administrador oficial de Debian, pero Mandriva permite usarlo.

Usando APT en Mandriva: Agregar Repositorios a APT

Hola He estado leyendo algo sobre APT y hace dias me di cuenta que se puede usar en Mandriva :) y pues para probar esa joya de la ingenieria del Soft Libre (segun los debianitas :p ) lo instale:
[root@1424ru5 dalfa]# urpmq -i apt          
Name        : apt
Version     : 0.5.15cnc6
Release     : 5mdk
Group       : System/Configuration/Packaging
Size        : 1245546                      
Architecture: i586
Source RPM  : apt-0.5.15cnc6-5mdk.src.rpm    
Build Host  : n1.mandrakesoft.com
Packager    : Michael Scherer 
URL         : https://moin.conectiva.com.br/AptRpm
Summary     : Debian's Advanced Packaging Tool with RPM support
Description :
A port of Debian's apt tools for RPM based distributions,
or at least for MandrakeLinux. Original RPM port done by and
for Connectiva. It provides the apt-get utility that
provides a simpler, safer way to install and upgrade packages.
APT features complete installation ordering, multiple source
capability and several other unique features.

Under development, use at your own risk!
[root@1424ru5 dalfa]# urpmi --noclean -v apt
Ahora ya esta pero no funciona porque no tiene repositorios, asi que hay que agregarlos, se puede agregar los mismos que se usan en urpmi el formato del archivo es mas sencillo que el de urpmi. El archivo es: /etc/apt/sources.list un ejemplo de entrada es: rpm ftp://ftp.free.fr/pub/Distributions_Linux/plf/mandrake/free/10.2 hdlist.plf-free plf-free Luego ejecutamos apt-get update que es como urpmi.addmedia
[root@1424ru5 dalfa]# apt-get update
Get:1 ftp://ftp.free.fr hdlist.plf-free.cz release
Ign ftp://ftp.free.fr hdlist.plf-free.cz release
Get:2 ftp://ftp.free.fr hdlist.plf-nonfree.cz release
Ign ftp://ftp.free.fr hdlist.plf-nonfree.cz release
Ahora lo probamos buscando algo:
[root@1424ru5 dalfa]# apt-cache search urpmi
rpmtools - Contains various rpm command-line tools
urpmi - Command-line software installation tools
Si funciona :)

Experiencias con APT y URPMI

Hace tiempo que uso Linux, Mandriva y Debian en particular. Eso me ha dejado alguna experiencia en el uso de sus respectivos SGPs (Sistemas de Gestión de Paquetes), apt y urpmi.
Mi período de mes y medio trabajando continuamente con apt me dejó la sensación de tener que comentar, discutir y aclarar más si se puede, algunas características de apt en contraste con urpmi.

Métricas

No es correcto declarar a un SGP "el mejor de todos" en base a un solo caso, a una sola experiencia de instalación, actualización, o desinstalación. Para que la evaluación sea correcta debe experimentarse con diversas situaciones.

Adelanto que al final tampoco puede declararse un vencedor entre los SGPs disponibles hoy. Cada uno tiene puntos fuertes y débiles, y cada uno se desempeña mejor o no tan bien según el caso particular.

Desda ya, no intento hacer FUD sobre apt, sino dar un listado de experiencias, no ha sido una evaluación formal y que conste.

Apt y urpmi siguen en desarrollo y pueden evolucionar por lo que la próxima versión, tal vez alguna que yo no he usado aún, mejore o haya mejorado cosas que aquí menciono (favor de tener muy en cuenta esto último para cualquier "juicio final+sentencia").

Experiencias

Aclaro que en todos estos casos, tanto urpmi como apt mantuvieron la coherencia de la BD de paquetes y las aplicaciones que se instalaron funcionaban perfectamente. A partir de allí veamos.

* Caso 1): El manejo de la compatibilidad con versiones instaladas anteriores a las versiones con las que fue compilado cierto paquete.Por ejemplo:
    - A depende de B, - este de C - este de D - este de E
Generalmente al actualizar A con urpmi pide actualizar B, a lo sumo C y muy rara vez pasa de ese tercer nivel. Apt en cambio hace lo inverso, casi siempre pide actualizar B,C,D y E y raras veces se concentra solo en B y C.

* Caso 2): El árbol de dependencias hacia atrás que maneja urpmi es usualmente más corto que el de apt, por ejemplo:
    - A depende de B, - y este de C - y este de D - y este de E
y cuando queremos instalar "A" solamente, urpmi no necesita estrictamente que estén instalados D y E; por ello aparentemente solo instalaría A,B y C.

Hasta ahí apt casi siempre funciona igual que urpmi.

La cuestión es cuando queremos actualizar "A". urpmi repite el esquema "A,B,C" y apt casi siempre va un par de niveles más allá, pidiendo instalar A,B,C,D y E. Siguiendo el esquema típico de un SGP, instalar A,B,C (D y E) se traduce en buscar e instalar también el árbol de dependencias subyacente en cada uno.

La sensación usual de que apt y urpmi funcionan "casi igual" en casos como éste dura un tiempo, mientras uno instala paquetes "poco dependientes". Sin embargo si se instala y/o actualiza alguna librería o aplicación de nivel medio o bajo del sistema (por ejemplo QT o Glibc), apt empieza a mostrar este comportamiento de "necesito instalar TODO ESTO para que el sistema siga funcionando" mientras que urpmi pide instalar casi siempre muchos menos paquetes.

* Caso 3): La compatibilidad hacia arriba en las actualizaciones. Cuando tenemos que:
    - A depende de B, - este de C, - este de D
Tanto en urpmi como en apt actualizar aplicaciones/librerías de nivel alto (K3B por ejemplo) funciona casi igual (excepto que apt generalmente va más "hacia abajo" como ya expliqué antes).

Veamos ahora las dependencias "hacia arriba". Supongamos que queremos actualizar aplicaciones/librerías de nivel medio o bajo, cierto "D" (por ejemplo QT o Glibc).

[Muy pocos paquetes rpm exigen una versión específica como dependencia (dependencia=nro. de versión), en cambio piden dependencias de igual o mayor (dependencia=>nro. de versión).]

En el ejemplo, urpmi casi siempre funcionaría instalando D y listo. Apt en cambio, en la mayoría de los casos, nos pediría desinstalar/actualizar también C,B y A también.

Este último escenario es muy, muy usual en el uso diario de apt y es para los novatos en SGPs la "demostración" de que apt es superior a todos los demás SGPs.

Hasta que usas urpmi y actualizas el mismo paquete que con apt y te bajas solo un cuarto de los MBs que tuviste que bajar con apt y todo sigue funcionando perfectamente.

Ello se debe a que cuando una librería/aplicación más nueva es compatible con paquetes compilados contra una versión anterior no es estrictamente necesaria la actualización de todos los paquetes hacia arriba; en caso de ser así, al intentar instalar el paquete, urpmi exige hacer lo mismo que suele hacer habitualmente apt.

Conclusiones

El caso 3) como mencioné es muy usual y los novatos en Linux ven el "efecto actualización" y elevan automáticamente a apt a la categoría "el mejor de todos" (porque están comprobando lo que "todos" dicen). Cuando urpmi y otros SGPs no hacen lo mismo, automáticamente "bajan" un par de categorías en calidad.
Incluso el debianita más experimentado se sorprende bastante cuando ve funcionar urpmi desde consola y más todavía cuando se da unos de los casos anteriores con algún paquete con el que él ésta familiarizado (y sabe sus dependencias de memoria).
También Quise publicar este artículo porque se ha vuelto bastante difícil dialogar/discutir/cuestionar a apt fuera de lo más profundo de su entorno de desarrollo o del grupo de de desarrollo de Debian. La mayoría de los administradores de sistemas le acreditan una infalibilidad del 100% cuando eso no es exactamente cierto.

Lo anterior no debería ser así, aunque apt es muy bueno aún puede mejorar. En ningún momento del desarrollo se planteó que un objetivo de apt fuera "ser el mejor de todos" (al menos no todo el tiempo :-).

* El punto es: No debería elevarse a ninguna herramienta al nivel de ser "mágica" tan gratuitamente. Cualquier usuario experimentado de Debian, Mandriva y otras distros suele conocer muy bien las capacidades y límites de sus respectivos SGPs y casi siempre los de los demás.

Por otra parte, las diferencias se dan principalmente cuando se trabaja con repositorios no estables y/o en desarrollo (dinámicos), y aún así urpmi,apt y el resto de los SGPs pueden mostrar mejor comportamiento, uno con respecto a cualquier otro, según el caso particular.

* El punto es: urpmi y otros SGPs maduros son tan fiables como apt en el 99.9% de los casos en que se trabaja con un repositorio estable junto a un repositorio de actualizaciones.

Nunca usar discos en Mandriva

Cuando instalas programas que vienen en los discos de Mandriva con urpmi es molesto tener que estar metiendo y sacando los discos sin mencionar que se van rayando y todo eso asi que para no usar los discos hice esto... Copie las 4 isos a /var/isos/ luego las monto asi:
[root@MDV2006 dalfa]# mount -o loop archivo.iso /directorio/a/montar/
borro todas las fuentes de urpmi con:
[root@MDV2006 dalfa]# urpmi.removemedia -a
Ahora agrego las isos montadas como repositorios asi:
[root@MDV2006 dalfa]# urpmi.addmedia -v -ff urpmilocal file://mnt/mdv2006-cd1/media/main/
Para que las monte el sistema cada vez pongo esto en /etc/rc.d/rc.local:
#!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local mount -o loop /var/isos/Mandriva-Linux-Powerpack-2006-CD1.i586.iso /mnt/mdv2006-cd1 sleep 2 mount -o loop /var/isos/Mandriva-Linux-Powerpack-2006-CD2.i586.iso /mnt/mdv2006-cd2 sleep 2 mount -o loop /var/isos/Mandriva-Linux-Powerpack-2006-CD3.i586.iso /mnt/mdv2006-cd3 sleep 2 mount -o loop /var/isos/Mandriva-Linux-Powerpack-2006-CD4.i586.iso /mnt/mdv2006-cd4 sleep 2 echo "listo"
Invoca sleep para que se tarde un poco en montar sino trata de hacerlo todo a la vez y te manda un error en cambio asi no y con el truco de las ttys no hay problema :-)

rpm

rpm es la aplicación sobre la cual corre urpmi, sirve para instalar archivos rpm y su uso está recomendado para usuario de nivel medio. Si lo que quieres es instalar rpms de los repositorios mejor usa rpmdrake o urpmi.

Cómo saber qué RPMs tengo instalados en mi Mandriva

Llevar el control sobre lo que instalamos no sólo compilado sino también por urpmi con los rpms es necesario para la buena salud de nuestro sistema, así que jugando un poco con el comando rpm coloco algunas anotaciones aquí que le pueden ser útiles a alguien...
[dalfa@MDV2006 ~]$ rpm -qa
Eso te da una salida "a granel" desordenada, pero es fácil ordenarla:
[dalfa@MDV2006 ~]$ rpm -qa | sort
Esto hará que sort la ordene alfabéticamente. ¿Qué? ¿Que son muchos rpms? No hay problema, puedes mandar la salida de sort a less para leer la lista detenidamente:
[dalfa@MDV2006 ~]$ rpm -qa | sort | less
¿Qué? ¿No quieres leer la lista en vivo con less? Pues también puedes mandar la salida a un archivo para llevar un registro de lo que tienes instalado y qué te cambió en cada actualización:
[dalfa@MDV2006 ~]$ rpm -qa | sort > archivos_rpms_instalados
Pero para llevar un registro se tendría que correr este comando con un cron, semanal digamos, ya que creo que hacerlo diario es algo exagerado, aunque nunca se puede ser demasiado cuidadoso:
[dalfa@MDV2006 ~]$ tiempo=$(date +%d-%m-%y-%X); rpm -qa | sort > archivos_rpms_instalados-$tiempo
Para aprender a usar cron leer este manual: Manual: Como usar Cron / Crontab http://blogdrake.net/node/2171 Cuando tengamos el cron semanal listo podemos revisar nuestros archivos con el programa diff así:
[dalfa@MDV2006 ~]$ diff archivos_rpms_instalados-01-02-06-22\:00\:54
 archivos_rpms_instalados-01-02-06-22\:00\:24 
1c1
< acpi-0.07-7mdk
---
> acpi-0.07-6mdk
[dalfa@MDV2006 ~]$ 
El cual muestra qué nombres de archivos son distintos, con lo cual al haber un problema se puede regresar al anterior ^ _ ^

Construye tus propios archivos RPMs

Articulo originalmente publicado por Sinner en Libertonia.

Has encontrado ese programa/versión de la librería en CarneFresca o en ForjaFuentes que te va a solventar la vida. Llevabas casi 3 semanas buscándolo. Y ahora va y resulta que no está en formato [.deb | .rpm | .tgz] para tu distribución favorita.

¿Qué haces? ¿te tiras de los pelos? ¿te vas a dormir? ¿te instalas el Windows?

Norl!!!

Créate tu propio paquete.

Introducción

Esto del OpenSource es aquello de "si tienes un picor, te rascas... y publicas el código fuente". Incluso para los tutoriales como éste.

Mientras luchaba con unas librerías actualizadas para poder instalar un programa que necesitaba urgentemente, me vi en la necesidad de aprender varios secretos sobre la creación de RPMs en particular y todo tipo de paquetes en general.
Y, ya puestos, ¿por qué no hacer un mini-tutorial?

El problema

Encuentras un programa o librería que necesitas para tus aventuras en Linux. Vas a la sección de Downloads y descubres, como no, que solo existen paquetes para las distribuciones que no usas. No falla. Pasa siempre. YPMQ miran la distribución que usas y, dinámicamente, esconden los paquetes que necesitas.

Entonces, te queda bajarte las fuentes del programa/librería, configurarla, cruzar los dedos, compilarla (y que no pete) e instalarla (y que no te rompa nada).
Encima, no te garantiza que vas a obtener los "provides" necesarios para instalar el otro programa que es el que realmente quieres instalar.

Como casi siempre, no eres el primero que se encuentra en tamaño brete.
Afortunadamente, algunos de los compañeros de penas saben programar, tenían tiempo libre y, en base a código de un proyecto anterior, installwatch, van y empiezan un proyecto que te va a alegrar: un generador de paquetes!!!

La solución

Efectivamente, existe tal generador de paquetes. No, no es magia negra. Sí, pueden utilizarlo Bilo, Nano... incluso GonzoTBA, alias "cambiar a ReiserFS con 2 c*j*n*s".

El programa se llama CheckInstall. Si os fijais, el proyecto se aloja en una web de Mexico. Eso sí, la documentación que he encontrado, está en el más puro Inglés. Pero no pasa nada. El Sinner lo va a explicar.

¡Crea tus paquetes!

El primer paso consiste en instalarse el programilla.

¿Qué hay que hacer para instalarlo?

Instalando desde el soporte de software "contrib"

urpmi checkinstall

Es complicadillo, ¿verdad? xD
Recuerda que has de ser root y ejecutar el comando en la consola o bien utilizar rpmdrake (Instalador gráfico de paquetes) y buscar el paquete llamado checkinstall.

O bien compilarlo e instalarlo "a mano"

En su sección de Download</