Ver Mensaje Individual
(Solucionado) Comandos y mantenimiento de OpenSUSE Tumbleweed
  #1  
Antiguo 25-mar-2015, 03:22
joakoej joakoej está desconectado
Aforado
 
Fecha de Ingreso: 25-marzo-2015
Versión: Tumbleweed
Mensajes: 19
Agradecimientos: 17
Agradecido 0 Veces en 0 Mensajes
Poder de Credibilidad: 0
joakoej está en el buen camino
(Solucionado) Comandos y mantenimiento de OpenSUSE Tumbleweed

Hola hoy me descargué OpenSUSE Tumbleweed y la configuré siguiendo esta guía para OpenSUSE 13.1:
http://diversidadyunpocodetodo.blogs...rafica_19.html

Sólo que puse el repositorio Packman correspondiente a Tumbleweed.

El tema es que yo la verdad nunca tuve instalado OpenSUSE mucho tiempo así que no sé bien como mantenerlo, con esto me refiero a como actualizarlo más que nada.
En la guía esa, nombra los comandos: zypper ref, up, patch, inr y dup.
Zypper ref y zypper up son indispensabes para actualizar el sistema.
Pero, no sé si zypper patch y zypper inr son necesarios la verdad.
Y con respecto a zypper dup traté de ver que hace, pero no me quedó en claro, sé que sirve para hacer un upgrade de versión, que si querés pasar de OpenSUSE 13.1 a 13.2, por ejemplo, tenés que cambiar los repositorios y correr ese comando.
Pero, yo estoy en Tumbleweed, que es rolling, así que no sé si tengo que correr siempre zypper dup o cuándo debo hacerlo, o si debo hacerlo si quiera.
Lo corrí para ver si actualiza algún paquete y resulta que sí lo hace y varios, aunque le puse que "no" cuando me pregunto si deseaba continuar.

Entonces, para resumir, mis preguntas son:
¿necesito correr zypper patch y zypper inr siempre después de una actualización?
¿Qué hace exáctamente zypper dup? ¿qué lo diferencia de zypper up? ¿es seguro correlo?


Solución: Bueno, resolví todas mis dudas, no sólo las de mi primer mensaje, también otras que me surgieron más tarde.

¿necesito correr zypper patch y zypper inr siempre después de una actualización?
No. Zypper patch no es necesario correrlo, lo que hace este comando es corregir errores, sirve más que nada para la gente que quiere enfocarse en un sistema lo más estable posible sin mayores cambios. No hace daño correr este comando de todas maneras, pero si vas a actualizar seguido los programas, con zypper up, no tiene mucho sentio correrlo, además que casi nunca encuentra correcciones de errores.
Y zypper inr sólo corranlo apenas instalaron el sistema o si instalaron algún software nuevo, a veces instala paquetes de idiomas y alguna que otra cosa más, pero para uso diario no es necesario.

¿Qué hace exáctamente zypper dup? ¿qué lo diferencia de zypper up? ¿es seguro correlo?
Zypper dup no es un comando recomendable para uso diario. Personalmente, sólo lo use en dos ocasiones: Para hacer una actualización de OpenSUSE 13.1 a 13.2, y para actualizar todos los paquetes del repositorio packman a la versión más reciente con "zypper dup --from Packman_Repository", ya que, algunos paquetes de Packman coinciden con los del repositorio oficial, sólo que en Packman hay veces que están en una versión más reciente, así que, por eso y porque Packman tiene una prioridad mayor (70) que el repositorio oficial, uso ese comando y actualizo todo.

Zypper up, en cambio, si es recomendable correrlo diariamente o semanalmente, de hecho sólo se necesita este comando para tener actualizado el sistema, ni siquiera es necesario usar zypper ref, ya que zypper up, por defecto, refresca los repositorios cada vez que lo corrés.

Entonces: El único comando necesario es zypper up, el resto se pueden correr, pero en situaciones particulares más que nada. Con esto dicho, si lo suyo no es la consola, pueden usar cualquiera de las herramientas gráficas que tiene OpenSUSE sin problemas, hacen su trabajo bien, incluso en Tumbleweed.

Sin embargo, eso no es lo único que pregunte. También pregunte acerca de como manejar los repositorios extra, como los que se encuentran en esta página: http://software.opensuse.org/search
Hay que tener cuidado con estos repositorios, porque no son oficiales, lo más recomendable es que si quieren una aplicación de estos repositorios, se fijen si la aplicación está disponible para su versión de OpenSUSE, si no está, no la instalen, después fijense si funciona en su versión de OpenSUSE y, por último cuando la vayan a instalar, que se hace gráficamente a través de "One-Click-Install", traten de no agregar el repositorio para evitar problemas. Y si, e todas maneras lo hacen, bajenle la prioridad (a 120, por ejemplo), para que no interfiera con los repositorios más importantes.

Por ejemplo, yo quiero instalar acetoneiso, lo que hago es buscarla acá http://software.opensuse.org/package...erm=acetoneiso. Como yo uso Tumbleweed clickeo Tumbleweed y pongo "Show unstable packages". Este programa tiene dos repostorios disponibles, clickeo los dos para ver que dicen: https://build.opensuse.org/package/s...ge=acetoneiso2 y https://build.opensuse.org/project/s...ct=KDE%3AExtra . En esas páginas, a la derecha, puedo ver si los paquetes tuvieron éxito instalándose en mi versión de OpenSUSE.
home:deltafox, por más que tuvo éxito tanto en Factory como en 13.1 no nombra a Tumbleweed por ningún lado, así que por las dudas no la instalo. En cambio, KDE:extra sí nombra mi versión y dice que tuvieron éxito instalándose, así que lo instalo, pero como dije antes, durante la instalación desmarco los repositorios, para evitar problemas.

Por cierto, les recomiendo instalar Tumbleweed actualizando desde la última versión estable (13.2 en este momento), a mi me resultó mejor eso que usar la imagen de Tumbleweed que ofrecen acá: https://es.opensuse.org/openSUSE:Ins..._de_Tumbleweed .

PD: Esto fue un resumen de todo lo que se habló, esta información que pongo acá resume mis dudas. Sin embargo, debo nombrar un par de comentarios muy explicativos de dos usuarios que voy a citar acá:

Este es de jcsl, lo hizo en la página 4, en el explica como funcionan los programas en cada versión de OpenSUSE y por qué no son compatibles entre sí:
Cita:
Iniciado por jcsl Ver Mensaje
Hola.

Cita:
Iniciado por joakoej Ver Mensaje
Ok, entonces voy a actualizar con zypper up y ya, tal vez mande de vez en cuano un zypper patch para ver si tira algo, aunque por lo que veo siempre dice "Nada que hacer". Las herramientas gráficas también parecen funcionar bien y te advierten si tenés parches disponibles al parecer, pero planeo desactivarlas para ahorrar recursos.

Con respecto a los repositorios extra, por ahora no voy a instalar ninguno, porque parece que es cierto lo que dice mikrios, todavía no terminaron de pasarlos de Factory a Tumbleweed.
De todas maneras, algo que no entiendo es que determina que un repositorio o paquete sea compatible con Tumbleweed o no. Es decir, yo vi paquetes que estaban disponibles tanto para OpenSUSE 13.2 y para Tumbleweed, pero otros paquetes, que ofrecían el mismo programa, por ahí sólo estaban disponibles para OpenSUSE 13.2.
¿Alguno sabe por qué pasa esto?

Saludos
  • Todos los programas necesitan una versión mínima de algún otro software (compilador, bibliotecas, programas externos, etc.) para poder compilarlos o para funcionar correctamente (muchos programas son simples interfaces gráficas de otros que son para la terminal).
  • Dicha versión puede depender a su vez de la versión del programa. Por ejemplo, la versión 5.1 del programa P necesita la versión 1.0 de la biblioteca B. Más tarde, el desarrollador del programa ve que ha aparecido la versión 3.0 de B que ofrece algo interesante que no incluia la versión 1.0, así que decide adaptar su programa para usar la nueva funcionalidad de B y lanza la versión 6.0. A partir de ese momento, P ya depende como mínimo de la versión 3.0 de B y no puede compilarse ni funcionar con versiones anteriores porque no incluyen la funcionalidad necesaria. Sin embargo, si el cambio en B hubiera sido menor ─una corrección de errores, por ejemplo─ y se hubiera lanzado la versión 1.1, por decir algo, el programa podría haber seguido funcionando tranquilamente. De forma un poco más precisa, un programa que usa una biblioteca espera que esta ofrezca una serie de elementos que forman lo que se llama la interfaz (básicamente una lista de nombres de constantes, funciones con sus parámetros, etc.) y que utiliza para comunicarse con ella y así poder hacer su tarea. Si la bibliteca cambia alguno de dichos elementos hay que actualizar todos los programas que la usen para que puedan seguir funcionando. Pasa lo si usa un programa externo y este cambia alguno de sus parámetros.
  • Cuando aparece una nueva publicación de openSUSE, el software incluido viene en unas versiones dadas que no se modifican durante su ciclo de vida, excepto para actualizaciones de seguridad o correcciones de fallos. No siempre es así, Firefox se actualiza cada vez que aparece una versión nueva, pero en la inmensa mayoría de casos funciona de esta forma.
  • En Tumbleweed, al ser una versión de desarrollo continuo, no es así. La versión de cualquier software puede cambiar en cada nueva actualización, pero siempre hay que procurar que eso no cause destrozos. No siempre es posible, por lo que, en ocasiones, un programa dado deja de funcionar porque haya habido un cambio en alguna de sus dependencias. En este caso el desarrollador del programa debe actualizarlo para que funcione con la nueva versión de la dependencia que produce el fallo.
  • Al crear un paquete se indican las dependencias y también se puede decir algo como "si la versión de openSUSE es la 13.1 usa la versión X de la biblioteca B, y si es la 13.2 usa la versión Y".

En resumen:
  • para la versión estable de openSUSE cada paquete es compatible con ella en la versión que se incluye. Otras versiones más recientes pueden funcionar, pero como no suelen actualizarse, salvo para correcciones, no importa mucho. Una excepción a la regla de los cambios de versión son los repositorios no oficiales. Estos suelen ofrecer versiones más recientes de programas, siempre y cuando puedan funcionar con lo que haya disponible en la versión estable o lo tengan incluido en el mismo repositorio y no provoquen fallos en el resto del sistema. Si el empaquetador lo hace mal es cuando aparecen los problemas por mezclar repositorios.
  • para Tumbleweed un paquete es compatible si se puede crear con la versión de sus dependencias en cada momento. Por ejemplo, en mi netbook utilizo Tilda, una terminal desplegable, que usa una biblioteca de GNOME llamada vte. La última versión de Tilda disponible en Tumbleweed es la 0.9.6, que depende de GTK2. Las versiones posteriores de Tilda necesitan GTK3, que incluye una versión de vte para la que no está preparado el programa (funcionaba al principio y pude crear el paquete con versiones hasta la 1.2.2, pero luego se actualizó vte y dejó de hacerlo). Así que, mientras el desarrollador no actualice Tilda para que funcione con la nueva versión de vte presente en GTK3 (esta en ello) no se puede actualizar (¡y la versión 0.9.6 es de 2008!).
Sobre lo de hacer zypper patch, no es necesario. Hasta donde yo sé, al hacer un zypper up se instalan también los parches. Fíjate en la ayuda (zypper up --help) y verás que si quieres puedes indicar lo que quieres actualizar (paquetes, parches, etc.). De lo que deduzco que, a menos que indiques lo contrario, se actualiza todo lo disponible, parches incluidos. Tampoco suele ser necesario hacer zypper ref antes de alguna otra operación como zypper up. En el fichero de configuración /etc/zypp/zypp.conf se incluye el intervalo de tiempo tras el cual zypper refresca los repositorios al hacer alguna operación (repo.refresh.delay). Eso no quiere decir que se actualice cada dicho intervalo todo el tiempo sino solo cuando se hace algo con zypper. Por defecto son 10 minutos, así que si ha pasado más tiempo el ref está implícito.

Un saludo.
Y este también es de jcsl, en la página 5, en el explica como funcion OBS (OpenSUSE Build Service):
Cita:
Iniciado por jcsl Ver Mensaje
Hola.

Cita:
Iniciado por joakoej Ver Mensaje
Tremenda respuesta, gracias. Me quedo bastante claro ahora. ¿Entonces un mismo repositorio puede tener dos versiones distintas para el mismo programa? ¿dependiendo si estoy en Tumbleweed o 13.2 me instala una versión o la otra?
No, no es que el mismo repositorio tenga dos versiones distintas y te instale una u otra dependiendo de si usas Tumbleweed, 13.2 o lo que sea. Es que hay un repositorio para Tumbleweed, otro para 13.2, etc. Como escribió LUKE10, solo hay una versión de un paquete en cada repositorio.

Cita:
Iniciado por joakoej Ver Mensaje
No, creo que no. Metete en la página de descargas de OpenSUSE y vas a ver que hay veces que ponen el mismo repositorio para dos versiones distintas de OpenSUSE. El repositorio X11:Cinnamon:Factory, por ejemplo, está para OpenSUSE Tumbleweed y 13.2.
Seguí el link del repositorio y muestra esto: https://build.opensuse.org/package/s...ckage=cinnamon

El repositorio es supuestamente compatible con ambas, pero que se yo.

Editado:
Fijate esto que encontré, viendo mejor la página: https://build.opensuse.org/package/r...ctory/cinnamon

Podés crear distintos flags dependiendo la versión de OpenSUSE en la que estés. Una joya esta función la verdad.
Por ejemplo, fijate los paquetes de la versión 13.2 comparándola con Tumbleweed, vas a ver que para Tumbleweed crea la versión cinnamon-2.4.3-1.6.i586.rpm y para la 13.2 crea cinnamon-2.4.3-1.1.i586.rpm.
El mismo repositorio tiene la capacidad de funcionar para dos versiones distintas de OpenSUSE por esta funcionalidad parece y así evita incompatibilidades.

Entonces eso explica porque algunos repositorios aparecen para más de una versión de OpenSUSE y porque algunos son compatibles con una versión y otros no.

Saludos
Los enlaces que has puesto no son a repositorios sino al Open Build Service (OBS) que es el lugar donde se crean los paquetes. Siguiendo el primer enlace ves en la izquierda un fichero que se llama cinnamon.spec (o nombre_del_paquete.spec en general). Si haces clic se muestra el contenido y verás una línea que empieza con Version (2.4.3) en este caso. También la puedes ver en el archivo comprimido (Cinnamon-2.4.3.tar.gz). Los otros números que siguen al guión (1.6 en el ejemplo que has puesto) los añade el OBS al crear el paquete y pueden ser distintos entre repositorios (ignóralos), y lo último (.i586 en este caso) es la arquitectura para la que está creado (i586 = 32 bits, x86_64 = 64 bits; el OBS permite incluso más).

El fichero con extensión .spec mencionado antes es el que contiene las instrucciones para construir el paquete: las líneas BuildRequires indican los paquetes necesarios para compilarlo; las Requires indican las dependencias que se añaden o deben estar ya presentes al instalarlo; y las Recommends son sugerencias, es decir, otros programas que se pueden instalar para completar la instalación pero que no son esenciales para el correcto funcionamiento del programa. No voy a entrar en más detalles porque tampoco vienen al caso.

En la parte derecha ves las versiones de la distribución para las que se va a construir el paquete: openSUSE_13.1, openSUSE_13.2, openSUSE_Factory y openSUSE_Tumbleweed. Si a su lado aparece succeeded es que se han creado sin problemas y si pone fail falló y toca modificar el .spec para tratar de solucionarlo si es posible.

La persona encargada del paquete elige tanto las arquitecturas como las versiones de openSUSE para las que se crea un paquete. Puede, por ejemplo, crearlos solo para 32 bits y Tumbleweed, para todas en 64 bits o lo que se le antoje (o funcione). Se elijen haciendo clic en X11:Cinnamon:Factory en la página del segundo enlace de tu mensaje. Hay que iniciar sesión para ver las opciones, si no solo ves lo que ya está seleccionado.

Por tanto:
  • Solo hay una versión de cada paquete en cada repositorio y cada repositorio puede tener una versión distinta a la de los otros. Por ejemplo, en Tumbleweed hay paquetes más actuales que en 13.2.
  • Cada paquete se crea para las versiones de openSUSE y arquitecturas que decida quien esté al cargo del mismo (o que pueda elegir dependiendo de los requisitos del paquete).
  • En los repositorios no oficiales puede haber versiones distintas a las que hay en los oficiales para la misma publicación de openSUSE (yo puedo tener un paquete en mi repositorio para 13.2 más actual que el que hay en el oficial). Estos repositorios incluyen los de los usuarios y otros que se crean para probar paquetes antes de enviarlos a Factory, donde van pasando una serie de tests con el objetivo de incluirse primero en Tumbleweed y finalmente en la siguiente versión estable de openSUSE.
Al final tampoco hay que preocuparse tanto. Tienes los repositorios oficiales, añades Packman para la versión de openSUSE que tengas instalada, ajustas las prioridades y deja que el sistema se encargue del resto. Con eso tiene más que suficiente la mayoría de usuarios. El problema viene cuando se añaden muchos repositorios (normalmente por abusar del 1-Click Install) o se mezclan de distintas versiones de openSUSE.

Un saludo.
No sólo jscl dió buenas respuestas, pero me parecieron muy buenos comentarios que explican muy bien el panorama.

PD2: Gracias a todos por la ayuda. Saludos.

Última edición por joakoej; 22-abr-2015 a las 22:13
Responder Citando