jueves, 30 de octubre de 2014

Gestión y adición de repositorios a las fuentes de software en openSUSE: Gráficamente mediante YaST y algunos comando para la consola.

En openSUSE, como en general en otras distribuciones, para disfrutar de un sistema estable se recomienda utilizar sólo los repositorios de oficiales (OSS, Update, Non-OSS, y Update-Non OSS), y en esta distribución también el repositorio Packman que se considera semioficial. Packman es necesario para completar el software del sistema, particularmente en lo que a codecs multimedia se refiere. Según añadamos repositorios adicionales el sistema en un momento dado se puede mostrar inestable o se pueden producir errores de funcionamiento en algunas aplicaciones, lo que, no obstante, se puede evitar, o minimizar, con una gestión adecuada de los repositorios.

Es posible que algunas aplicaciones que nos sean necesarias no estén en los repositorios oficiales, o algunas de las que sí lo están traigan funcionalidades de gran interés en versiones superiores a las disponibles en los repositorios oficiales. En esos casos podemos disponer de los repositorios de la comunidad que, sin lugar a dudas, hacen un esfuerzo más que loable para disfrute de los usuarios.

7. Concluyendo

Aunque este apartado debiera ir en último lugar (lo del apartado 7 no es un error) lo pongo aquí para que nos fijemos en aquello que de forma general puede ser más esencial.

En general añadiremos un repositorio no oficial básicamente por dos motivos:

A) Instalar uno o varios paquetes (aplicaciones, librerías, traducciones, etc.) que no están en los repositorios oficiales. En este caso lo que se suele recomendar es añadir el repositorio que los proporciona y después de instalados DESHABILITAR o ELIMIAR dicho repositorio.

B) Actualizar paquetes que están en los repositorios oficiales como pueden ser determinadas aplicaciones o, incluso, un entorno de escritorio completo. En este caso lo que se suele recomendar es cambiar de proveedor todos los paquetes desde los oficiales al de la comunidad, y, darle una mayor PRIORIDAD al repositorio añadido. Esto último no es del todo necesario y en ocasiones, particularmente cuando la versión de openSUSE está recién liberada, se pueden plantear conflictos entre las versiones de los paquetes.

Y, como norma general, no añadir repositorios a nuestras fuentes de software “a troche y moche”. Sólo aquellos que realmente sean necesarios o porque tengamos un interés especial. Claro está, si queremos un sistema estable porque eso es lo que más nos importa.

1. Antes de hacer nada actualicemos el sistema

Siempre que vayamos a añadir repositorios para después instalar o actualizar paquetes, lo primero es siempre actualizar nuestro sistema: primero actualizar repositorios y después paquetes, y ya que estamos también instalar algún parche de seguridad si lo hubiera. Aunque casi todo se puede hacer gráficamente, y yo soy básicamente gráfico, esto sí me gusta hacerlo en consola:

$ su (contraseña)
$ zypper ref (abreviatura de refresh, “refresca” la información de los repositorios)
$ zypper up (abreviatura de update, actualiza los paquetes)
$ zypper patch (instala parches de seguridad)

2. Sintaxis de un repositorio en openSUSE

Los repositorios en openSUSE tienen dos términos:

● Alias o nombre: OSS

● URL: http://download.opensuse.org/distribution/X.x/repo/oss/

“Alias”: es el nombre del repositorio en nuestro sistema, es arbitrario y se puede denominar como se quiera o mantener el que comúnmente se utilice. Lo que sí es importante es, que para poder gestionar los repositorios por consola, el nombre tiene que estar formado por caracteres sin que haya espacios entre las letras. Por ejemplo, Packman Repository no sería válido para su gestión por consola, aunque sí gráficamente. Sí lo serían, por ejemplo, PackmanRepository, Packman_Repository o simplemente Packman.

“URL”: es la dirección donde se encuentra el repositorio.

“X.x”: es el número de la versión de openSUSE que se tenga en cada momento instalada.

Por ejemplo, en la versión 13.2 el repositorio OSS:

Alias: Main Repository (OSS)





3. Gestión de los repositorios

3.1. Gráficamente mediante YaST

El gestor de repositorios de software de openSUSE es un módulo de YaST que encontramos en “Software>Repositorios de software”. En la ventana encontramos un listado de repositorios con el “Nombre” (que es el Alias), la dirección URL y unos parámetros:


Habilitado. En nuestras fuentes software podemos tener todos aquellos repositorios que creamos necesarios, pero el sistema sólo tendrá en cuenta aquellos que estén habilitados -podremos instalar o actualizar paquetes, por ejemplo-. Para habilitar o deshabilitar repositorios marcaremos o desmarcaremos la casilla “Activado” (parte inferior izquierda) teniendo señalado un repositorio en concreto.

Autoactualizar. Marcaremos la casilla “Actualizar automáticamente” para que cuando en un repositorio se actualicen las versiones (repositorios dinámicos) de sus paquetes se actualicen las descripciones de los mismos. Hay dos repositorios que nunca se actualizan dentro de una misma versión de openSUSE, y son los repositorios oficiales Oss y Non-Oss, que por ello se denominan repositorios estáticos.

Prioridad: Con este parámetro se le indica al sistema que repositorios tienen más prioridad cuando se instalan o actualizan paquetes. Por defecto todos los repositorios tienen prioridad 99. Este parámetro puede tomar valores de 0, que es la prioridad más alta, y 200 para la más baja. Recordar siempre que se trata de una relación inversa. Si un paquete se encuentra en más de un repositorio que tienen la misma prioridad se usará (tanto para la instalación como para la actualización) aquel que tenga la versión mayor o más actual. Si los repositorios tienen distinto valor de prioridad se usará el paquete del repositorio con mayor prioridad (el que tenga el valor más bajo).

Por ejemplo, se puede dar mayor prioridad a repositorios que añadimos de la comunidad para que, con independencia de cual sea la versión de los paquetes, siempre se tenga en cuenta a este repositorio. Un caso típico es K3b, que está en los repositorios oficiales, en los de la comunidad de KDE y en Packman, pero los codecs de K3b (k3b-codecs) sólo están en ese último, y para evitar conflictos entre las posibles distintas versiones, lo suyo es darle mayor prioridad a Packman de tal forma que siempre tengamos la versión (k3b y k3b-codecs) que proporciona este repositorio.

No obstante, en ocasiones, particularmente cuando la versión de openSUSE está recién liberada, se pueden plantear conflictos entre las versiones de los paquetes, y en ese caso es mejor dejar Packman en 99. Un ejemplo de este percance lo puedes encontrar en el comentario del 21 de diciembre de 2013 en el artículo: Después de instalar openSUSE13.1. Guía de configuración e instalación de software y algunascosas que debemos saber.

Eliminar. Si queremos eliminar un repositorio -ya no nos es necesario- simplemente picamos en “Eliminar”, y desaparecerá de nuestras fuentes de software.

3.2. Gestión de los repositorios mediante consola

3.2.1. Listar e información de los repositorios

Para listar los repositorio y obtener información de los mismos por consola se utilizan los siguientes comandos:

$ zypper ls
Muestra un listado de los repositorios

$ zypper ls -u
Muestra además la URL de cada repositorios

$ zypper ls -d
Nos muestra toda la información de cada repositorio

$ zypper ls -help
Nos lista todas las opciones del comando ls, entre los que se encuentran los dos anteriores

3.2.2. Habilitar, deshabilitar y eliminar repositorios

Podemos habilitar un repositorio de nuestras fuentes de software para que este activo y poder lanzar una acción (actualizar paquetes, instalar paquetes, etc) y deshabilitarlo (no eliminarlo) hasta que lo necesitemos de nuevo, o también eliminarlo completamente. Los comandos son:

$ zypper mr -d Alias
Desactiva un repositorio que permanecerá en las fuentes de software pero deshabilitado. “mr” es la abreviatura de modifyrepo.

$ zypper mr -e Alias
Activa un repositorio que estaba deshabilitado en las fuentes de software.

$ zypper rr Alias
Elimina completamente el repositorio, así que si lo necesitáramos en el futuro tendríamos que añadirlo de nuevo a las fuentes de software. “rr” es la abreviatura de removerepo.

4. Añadir repositorios a las fuentes de software

4.1. Añadir repositorios mediante YaST

Tenemos dos posibilidades:

4.1.1. Añadir repositorio de la comunidad en línea

Hay una serie de repositorio de la comunidad, entre los que se encuentra Packman, que podemos instalarlos muy fácilmente directamente desde YaST. Vamos a: YaST>Repositorios de software, picamos en “Añadir”, seleccionamos “Repositorios de la comunidad” y “Siguiente”. Ahora sólo resta marcar el repositorio o los repositorios que queramos añadir y “Aceptar” (extremo inferior derecho. Nos pedirá confirmaciones, importar claves GPC y aceptar acuerdos de licencia. Sí a todo.



4.1.2. Añadir repositorios manualmente

Puede ser que el repositorio que queremos añadir no esté en el listado anterior, pero conocemos su URL. Vamos también aY aST>Repositorios de software, picamos en “Añadir”, pero en este caso seleccionamos “Especificar URL...” y “Siguiente”. En la ventana encontramos dos campos: Nombre de repositorio, ponemos el alias; y URL, en el que escribimos o pegamos el URL concreto del repositorio. Igualmente nos pedirá confirmación ...


4.2. Añadir repositorios mediante consola

Los comandos que se utilizan se ejecutan como superusuario (su y contraseña) y van precedidos de zypper. La línea de comandos sería:

$ zypper ar -f URL_del_repositorio Alias

“ar”: es una abreviatura de addrepo (añadir repositorio)

“-f”: es una orden para que el repositorio se actualice.

“URL”: es la dirección donde se encuentra el repositorio

“Alias”: es el nombre que damos al repositorio en nuestro sistema. Recordar sin espacios entre la letras. Ejemplo:

$ zypper ar -f http://download.opensuse.org/repositories/KDE:/Current/openSUSE_13.1/ KDE_current

5. Después de añadir el repositorio que podemos hacer ...

5.1. Deshabilitar/Habilitar

El repositorio lo podemos haber añadido para instalar solamente una aplicación que no está en los repositorios y, en ese caso, instalamos el paquete o los paquetes en cuestión y “papeleta resuelta”. Ahora bien, como en el repositorio puede haber más paquetes que pueden estar en los oficiales (librerías por ejemplo) lo deshabilitamos y ya lo volveremos a habilitar si fuese necesario; así evitamos posibles conflictos entre los paquetes de los distintos repositorios. Pero también si tenemos confianza lo podemos mantener habilitado para que sean efectivas las posibles nuevas actualizaciones desde ese repositorio.

5.2. Cambiar los paquetes de proveedor

También lo podemos haber añadido para mantener actualizada una o varias aplicaciones y sus dependencias (LibreOffice, por ejemplo) o un entorno de escritorio (KDE, por ejemplo), o para instalar unos paquetes y mantener actualizados otros (Packman, por ejemplo). En estos casos tenemos que cambiar los paquetes de proveedor, desde el repositorio oficial al que hemos añadido. Y lo podemos hacer también de dos formas:

5.2.1. Gráficamente

En este caso abrimos otro módulo de YaST. Vamos a: YaST>Instalar/deinstalar software

Picamos en “Ver” y del desplegable seleccionamos “Repositorios”. Señalamos el repositorio en cuestión y en la parte superior de la ventana donde aparece el listado de paquetes podemos leer: “Cambiar paquetes de sistema a versiones en este repositorio”. Picamos sobre el texto y ejecutara la orden.


Aquí, en esta ventana, también podemos explorar los paquetes que contiene cada repositorio.

5.2.2. Mediante consola

Ejecutamos el siguiente comando como usuario root (su y contraseña):

$ zypper dup --from Alias

“dup” es una abreviatura de dist-upgrade

Por ejemplo

$ zypper dup --from Packman

Recuerda, en consola los alias como “Packman Repository” no serían aceptados. Sí serían válidos Packman_Repository, Packman:Repository o Packman a secas.

6. Repositorios que se añaden al instalar paquetes con 1-Click-Install

Una forma muy sencilla y cómoda de instalar paquetes que no se encuentran en los repositorios oficiales es mediante 1-Click-Install, y en este proceso se nos puede añadir el repositorio que contiene el paquete a nuestras fuentes de software, pero esta es otra historia que pueden SEGUIR LEYENDO ...►.

Hay muchos repositorios para completar el software (gracias a la comunidad de openSUSE),
pero habilitados sólo hay 6.
Saludos flamencos,

9 comentarios:

  1. Puede que en este artículo esté la solución a un poblema que tengo. Instalé CUPS-PDF pero a la hora de añadir la impresora PDF virtual, el sistema no la detecta. Intenté instalar la impresora EPSON que tengo en el salón y que está conectada al PC de sobremesa (también con OpenSuse y funcionando sin problemas) y tampoco la reconocía.
    Será por conflicto entre repositorios? Voy a trastear un poco y veremos qué pasa.

    ResponderEliminar
    Respuestas
    1. Hola Petrus. No creo que esos problemas tengan que ver con los repositorios. En la versión actual 13.1 instalé CUPS-PDF sin ningún problema y sin tener que traginar tanto como en versiones anteriores. Te adjunto un enlace para la versión 12.2 por si allí encuentras la solución o la “inspiración”.

      http://diversidadyunpocodetodo.blogspot.com.es/2012/10/instalacion-cups-pdf-opensuse-122-one-click-install.html

      Saludos flamencos,

      Eliminar
    2. He desinstalado CUPS-PDF y al volver a instalarlo mediante one-click-install me da error. Lo he intentado de varias formas y no hay manera. He deshabilitado todos los repositorios excepto los 4 principales y Packman, y tampoco.
      No sé que pasa porque en el PC del salón no tuve ningún problema, tal y como tú comentas.
      Seguiré investigando. Me da mucha rabia porque con OpenSuse jamás había tenido un problema al que no le encontrara una rápida solución.
      Gracias por tu ayuda.

      Eliminar
  2. Buenas tardes, estoy intentando probar esta distro desde hace tiempo, siempre sin éxito, todo lo que encuentro en internet sobre ella es favorable, pero ala hora de enfrentarme a ella parece que nada sale bien.
    Mi última recaida es de hace unos días con la salida de 42.1, pues así fresquita decido intentarlo nuevamente. Virtualbox mediante la instalo y falla sonido, webcam y bluetoth de entrada. logro solucionar el sonido, pero no lo demás. Lo intento a través del canal #opensuse-es y nunca vi un sitio más apático. ni una respuesta en dos días!!!! Ni un intento de ayudar ni la más mínima empatía. Los foro que encuentro en español están desactualzados o nadie tiene problemas con la versión 42.1 (o no la prueban). Este blog parece tener bastante y organizada información, aunque tampoco encontré acami caso, por supuesto lo busque por la versión y con tan poc tiempo pues .. en todo caso se te ocurre algo que me de una pista para ver si logro encaminarme con opensuse y kde? Saludos Gracias por tu tiempo. Ale

    ResponderEliminar
    Respuestas
    1. Entiendo que has instalado openSUSE 42.1 en Virtulbox. Para que funcione correctamente hay que instalar las Guest Additions:

      http://diversidadyunpocodetodo.blogspot.com.es/2013/08/instalar-guest-additions-virtualbox-opensuse-compartir-archivos-linux-windows.html

      No obstante, por lo general la versión recién liberada de openSUSE, y en esta ocasión también, suele tener fallos que se van corrigiendo poco a poco, por lo que si no se conoce la distribución es bueno dejar como mínimo unos 2 meses para instalarla. Después suele ser un SO operativo excelente.

      Saludos flamencos,

      Eliminar
  3. Hola Benjamin, como siempre agradecerte estos contenidos tan valiosos.

    Solamente quisiera pedirte el favor de que me aclares el concepto de "cambiar los paquetes de proveedor" comprendo que en ese caso los paquetes se van a actualizar desde el repositorio seleccionado, pero ¿Son todos los paquetes?

    Quiero decir, si yo escribo el comando "zypper dub --from Packman" le estoy diciendo a mi sistema que actualice TODOS los paquetes desde packman pero, ¿No debería el repositorio hacer eso por si solo? ¿actualizar sus paquetes? ¿O estoy diciendole también a paquetes de otros repositorios que se actualicen desde Packman? Y si es así, cómo seleccionar qué paquetes si y qué paquetes no desde la consola.

    Uff los siento, se que son muchas preguntas , no se si ya hayas publicado un post al respecto pero te agradecería mucho la respuesta.

    De antemano unas gracias gigantes !! mi experencia en opensuse sería otra sin tus concejos.

    Saludos desde Colombia

    ResponderEliminar
    Respuestas
    1. Hola amigo Cristian. Cuando se “cambian los paquetes de proveedor”, por ejemplo con “zypper dub -- from Packman, quiere decir que todos los paquetes -aplicaciones y sus dependencias- que estén instalados en el sistema y procedan de los repositorios oficiales o de otros repositorios de la comunidad (KDE:Extra por ejemplo) se reinstalarán desde Packman. Cuando haya actualizaciones de versiones superiores en Packman los paquetes se actualizarán desde Packman; desde los repositorios oficiales no habrá actualizaciones a versiones superiores durante la vida de una versión de openSUSE (Leap 42.1 por ejemplo), habrá actualizaciones de seguridad y de corrección de errores de los paquetes. También puede haber actualizaciones de versiones de algunos paquetes desde otro repositorios de la comunidad, por ejemplo de KDE:Extra. Y esto supone que pueden surgir conflictos entre versiones y dependencias, y esta es una de las razones por lo que openSUSE y otras distribuciones sólo garantizan la estabilidad del sistema con los repositorios oficiales. Los repositorios de la comunidad son realmente muy útiles pero hay que utilizarlos con cuidado. Por ejemplo, cuando sólo queremos instalar una aplicación desde uno de estos repositorios, lo prudente es una vez instalada mantener el repositorio desactivado por precaución.

      Un ejemplo que suelo utilizar en relación a lo anterior es K3b. Te recomiendo el apartado 4 del siguiente artículo:

      http://diversidadyunpocodetodo.blogspot.com.es/2016/01/actualizar-kde-plasma-5-opensuse-leap.html

      Por otro lado, cuando damos mayor prioridad a un repositorio estamos condicionando al sistema para que actualice desde este como se indica en ese artículo.

      A la hora de ser selectivo con determinados paquetes para que se actualicen desde uno u otro repositorio el método que creo más sencillo es mediante el módulo de YaST “Instalar/desintalar software”. Aquí ponte sobre K3b por ejemplo, y en la pestaña “Versiones” puedes seleccionar el repositorio desde el que quieres que se reinstale K3b u otro paquete.

      También en este modulo puedes indicarle al sistema que un determinado paquete no se actualice nunca o hasta que tu lo decidas. Simplemente picando sobre el paquete, botón derecho del ratón y seleccionar “Protegido -no modificar”.

      Espero haberte aclarado tus dudas y saludos flamencos,

      Eliminar
    2. Has aclarado mis dudas Benjamin,muchas gracias, incluso has abierto el panorama mucho más jaja (es increíble) estube buscando un poco en el foro de openSUSE y también hay información muy buena que complementa muy bien con lo que me explicas.

      También consulté el articulo que me recomendaste y me interesó mucho el asunto de mantener actualizado KDE Plasma 5, y ya que en el proceso está muy patente el asuno de "cambiar los paquetes de proveedor" decidí intentarlo y sólo me gustaría aprobechar tus conocimientos una vez más para preguntarte una cosa pequeña a la que me puedes responder si/no y estaría maravilloso.

      Después de hacer todo el proceso de agregar los reposiorios KDE,cambiar los paquetes de proveedor con cada unos de los 3 y que todo esté funcionando bien. Sí entro a los repositorios oficiales y doy la orden de "cambiar los paquetes de proveedor" en cada uno

      ¿El sistema vuelve al estado en el que se encontra de manera predeterminada?

      Un abrazo grande compañero y de nuevo, gracias por todo :D

      Eliminar
    3. Sí, pero para que no surja ningún problema ni conflictos y para más tranquilidad, lo suyo es que antes desactives en el módulo de YaST los repositorios de la comunidad, menos Packman. Y sólo necesitaríamos un comando y terminamos antes: zypper dist-upgrade

      Saludos flamencos compañero,

      Eliminar

LinkWithin

Related Posts Plugin for WordPress, Blogger...