13 abril 2017

openSUSE Tumbleweed - ¿actualizar con 'up' o con 'dup'?

Soy un maniático respecto a tener el sistema actualizado, lo reconozco, y a veces en mi equipo de escritorio (donde tenía una gráfica NVIDIA) esta manía me ha llevado de cabeza al actualizar demasiado pronto, por ejemplo, el Kernel. La ventaja de la comunidad es que los "desaguisados" se arreglan rápido...

En el caso de openSUSE podemos actualizar el sistema, desde la terminal, con 2 comandos:
  • $ sudo zypper up
  • $ sudo zypper dup
La diferencia fundamental entre ambos es que 'dup' te hace una actualización completa de todos los paquetes de la distribución, por lo que en el proceso se pueden tomar paquetes de cualquiera de los repositorios activos, siempre los más actualizados... Y en algunos casos se puede romper el sistema, al incorporar una versión demasiado nueva de algún paquete que sea usada por algún programa que todavía no esté preparado para la misma.

Uno de mis sitios de referencia, cuando hablamos de openSUSE, es el portal de victorhckinthefreeworld, el cual sigo asiduamente para estar al tanto de esta distro, y tengo que decir que he aprendido mucho de esta distribución y le he perdido el miedo gracias a dicho portal (desde aquí mis felicitaciones).

Hace unos meses, en dicho portal, estuvieron debatiendo el tema de cuál era la mejor forma de tener actualizada esta distribución (artículo completo aquí).

Al parecer, zypper up es bastante conservador y no deja limpia la casa entera (suele dejarse por el camino paquetes huérfanos y dependencias obsoletas que, aunque en principio no deben plantear mayor problema, ocupan espacio).

Por el contrario, zypper dup resuelve mejor las dependencias y actualiza todos los paquetes de la distribución, con el peligro que comentaba más arriba, de 'romper' algún programa por tener alguna dependencia demasiado moderna, traída desde otro repositorio.

Se comenta en este artículo que una buena opción es aprovecharse de la calidad del comando zypper dup, pero no permitiéndole el cambio de proveedor a los paquetes, con lo que teóricamente se elimina el potencial peligro de desestabilizar el sistema instalando algunos programas, librerías o dependencias muy nuevas y que todavía no puedan ser usadas por la totalidad de programas que hacen uso de ellas.

Esto se conseguiría con el siguiente comando:

$ sudo zypper dup --no-allow-vendor-change


Veamos un ejemplo real:
Hoy, este comando me dice que me va a instalar un paquete nuevo.

Pero, ¿y si hubiera utilizado cualquiera de los 2 primeros comandos que puse antes?. ¿Me hubiera dicho lo mismo?


zypper up me dice que hay un paquete nuevo, pero que no me lo va a actualizar. Entiendo que es porque el citado paquete está en otro repositorio con la misma prioridad que el oficial.

Por el contrario, si ejecuto zypper dup, el mensaje que recibo es distinto:



En la imagen de la izquierda veis que zypper dup me haría varias cosas:
  • instalar un paquete
  • cambiar el proveedor de otro
  • actualizar este útlimo
En la  imagen que realicé, cuando puse el comando entero, veíamos que sólo nos iba a instalar el paquete llamado gmplayer. ¿Por qué? Pues porque le habíamos puesto el parámetro de "no permitir el cambio de proveedor", por lo tanto, el vlc-codec-gstreamer no se iba a actualizar.

Mi conclusión (personal, cada uno que actúe según su responsabilidad) es que, en este caso concreto, y dado que es un tema muy controlado y que el sistema me está indicando lo que va a hacer, yo sí voy a permitir el cambio de proveedor de dicho codec (se supone que packman suele tener mejor y más actualizado el soporte para todo el tema multimedia), pero luego seguiré actualizando con zypper dup --no-allow-vendor-change, ya que los meses que llevo usándolo no me ha dado ningún problema, y según dicen los expertos (yo no lo soy, soy un simple aficionado), 'dup' resuelve y limpia la dependencias de una forma más efectiva que 'up'.

Y por último sólo añadir, como apunta Viktorhck en su artículo, que el que quiera usar este comando y ahorrarse el tecleo de 'tantas letras', puede crearse un "alias", y si dicho alias quiere hacerlo permanente podemos editar el archivo .bashrc, que está en nuestro home (acordaros de habilitar los archivos ocultos, para poder verlo), y añadirle al final del todo la instrucción:
De esta forma, desde la consola, sólo tendremos que teclear:

$ ponaldia 


Espero que este artículo elimine vuestros miedos y os anime a experimentar, arreglar, romper,... que en el fondo es como más se aprende.

Edito hoy, con fecha 13.07.2017, para comentar una novedad. Con las nuevas actualizaciones de determinadas librerías en openSUSE, ya no es necesario este debate. Dado que no puedo mejorar el excelente artículo de Viktorhck, os dejo enlace al mismo... Resumen: zypper dup ya he mejorado en el sentido que se le exigía, por lo tanto podemos usarlo sin riesgo a romper dependencias.


No hay comentarios:

Último post

Preparando un espacio de trabajo

            Ahora que tengo tiempo, retomo el blog. Por comodidad (y por capricho) he elegido la siguiente configuración: He optado por un ...