Guía de comandos Zypper para openSUSE

Cansado de olvidarme de los comandos de zypper, la herramienta de gestión de paquetes de openSUSE para la línea de comandos, he decidido crear una breve lista de aquellos que más suelo utilizar, o sea, una lista incompleta.

A medida que vaya identificando otros comandos que me sean de utilidad, la idea es ir agregándolos al artículo, o bien creando nuevas entradas derivadas de este con las nuevas incorporaciones.

Si bien este artículo no es "trascendental", si será el primero del año 2013 y el segundo luego de que el blog haya sido renovado en su totalidad, motivo por el cual les quisiera dar una bienvenida renovada a todos los lectores de TDB.


Gestión de repositorios

Comenzamos por la gestión de los repositorios. Para agregar un repositorio nuevo podemos utilizar los siguientes argumentos:
testsrv:~ # zypper ar http://download.opensuse.org/repositories/X11:/RemoteDesktop/openSUSE_12.2/X11:RemoteDesktop.repo
Para consultar los repositorios registrados:
testsrv:~ # zypper repos
# | Alias | Nombre | Activado | Actualizar
--+---------------------+---------------------------------+----------+-----------
1 | X11_RemoteDesktop | Remote Desktop software (openS..| Si | No
2 | openSUSE-12.2-1.6 | openSUSE-12.2-1.6 | No | No
3 | repo-non-oss | openSUSE-12.2-Non-Oss | Si | No
4 | repo-oss | openSUSE-12.2-Oss | Si | No
5 | repo-update | openSUSE-12.2-Update | Si | Si
6 | repo-update-non-oss | openSUSE-12.2-Update-Non-Oss | Si | Si
Si queremos saber la URI de los repositorios registrados ejecutamos lo siguiente:
testsrv:~ # zypper repos -u
Para remover un repositorio registrado lo podemos hacer utilizando los siguientes comandos, ya sea especificando el nombre del repositorio o su URI:
testsrv:~ # zypper rr 'X11_RemoteDesktop'
testsrv:~ # zypper rr 'http://download.opensuse.org/repositories/X11:/RemoteDesktop/openSUSE_12.2/'



Actualización de repositorios

Para actualizar la lista de paquetes de nuestros repositorios añadidos ejecutamos el siguiente comando:
testsrv:~ # zypper refresh


Consulta/búsqueda de paquetes

Los comandos básicos para buscar un paquete son los siguientes:
testsrv:~ # zypper search apache2
testsrv:~ # zypper se apache2

Para buscar solo los paquetes instalados:
testsrv:~ # zypper se -i apache2
Para buscar los paquetes con información detallada de versiones y repositorios:
testsrv:~ # zypper se --details apache2
testsrv:~ # zypper se -s apache2

También podemos buscar por tipos de paquetes, entre las opciones de tipos de paquetes se encuentran pattern, package y srcpackage:
testsrv:~ # zypper se --type pattern
testsrv:~ # zypper se -t package libssh
testsrv:~ # zypper se -t srcpackage libssh

Si queremos buscar todos los paquetes de un repositorio específico ejecutamos el siguiente comando:
testsrv:~ # zypper se --repo 'X11_RemoteDesktop'


Instalación de paquetes

Para instalar paquetes podemos utilizar los siguientes comandos, que son los más básicos para dicho fin:
testsrv:~ # zypper install apache2
testsrv:~ # zypper in apache2

Para instalar un paquete desde un repositorio específico podemos hacerlo como se muestra a continuación.
testsrv:~ # zypper -v install --from 'X11_RemoteDesktop' tightvnc
En el comando anterior la opción -v incrementa la salida de información en consola de la ejecución del comando zypper.

Para instalar paquetes sin que solicite confirmación de instalación e importación/autorización de certificados del repositorio usamos la siguiente combinación de argumentos:
testsrv:~ # zypper --non-interactive --gpg-auto-import-keys in apache2
Para instalar paquetes de tipo srcpackage para casos similares al expuesto a continuación...
S | Name          | Summary                             | Type
--+---------------+-------------------------------------+-----------
| libssh | SSH library | srcpackage
| libssh-devel | SSH library development headers | package
..hay que cambiar la opción global install (in) por source-install (si):
testsrv:~ # zypper source-install libssh
testsrv:~ # zypper si libssh

Para instalar un patrón como el que se muestra abajo,
S | Name        | Summary             | Type
--+-------------+---------------------+--------
| lamp_server | Web and LAMP Server | pattern
tenemos que especificar el tipo de "paquete" a ser instalado (pattern en este caso) y el nombre del paquete-patrón:
testsrv:~ # zypper in --type pattern lamp_server
testsrv:~ # zypper in -t pattern lamp_server



Eliminación de paquetes

Para eliminar paquetes, los únicos comandos que he utilizado hasta el momento son los siguientes:
testsrv:~ # zypper remove apache2
testsrv:~ # testsrv:~ # zypper rm apache2



Fuentes

Si la lista anterior es muy escueta y no dispone de lo que Usted está necesitado, puede consultar los siguientes enlaces para obtener más información al respecto.

Comentarios