From Mageia wiki
Jump to: navigation, search


Estado de la traducción:

Este articulo es la versión traducida de URPMI. Fecha de la ultima traducción 25/09/2023. Puede ayudar a sincronizar la traducción, en caso de haber cambios en la versión original.

Drakconf multiflag.png
Otros idiomas
Deutsch ; English ; Español ; Français ; Nederlands ;
Resumen:
urpmi es la herramienta de linea de comandos de Mageia para administración de paquetes y repositorios. Puede, por ejemplo, instalar, actualizar o quitar paquetes. urpmi maneja las dependencias automáticamente, esto es comprueba y resuelve de ser necesario las dependencias.Para los principiantes, la herramienta grafica rpmdrake se recomienda sobre urpmi ya que rpmdrake es más amigable para usuarios sin experiencia.
Esta pagina es un borrador..
Requiere mejoras. Si quiere mejorarla, solo ingrese y presione en la pestaña Edit.

Por favor quite {{Draft-es}}, cuando este seguro de que la pagina esta completa y correcta.


Vea otras paginas consideradas como borradores, u otras paginas que se necesitan mejorar y revisar

Resumiendo

Para tener una idea general de urpmi daremos una mirada a su interfase de linea de comandos y a algunos casos básicos:

La interfase de linea de comando

La interfase de linea de comando de urpmi se divide en los siguientes comandos:

Comando Descripción
urpmi Instala o actualiza un paquete
urpme Quita un paquete
urpmq Busca paquetes o información sobre ellos
urpmf Busca paquetes que contengan un archivo especificado
urpmi.update Actualiza un repositorio, o sea actualiza para el sistema, la lista de paquetes disponibles
urpmi.addmedia Añade un repositorio
urpmi.removemedia Quita un repositorio

Usos Comunes

La siguiente lista proporciona un breve repaso de algunos usos comunes de urpmi:

Comandos Básicos: Instalar, quitar, actualizar

Comando Descripción
urpmi PKG.. Instala o actualiza el(los) paquete(s) especificado(s). PKG puede referirse a un archivo RPM local. De no encontrarse un paquete concordante, se realizara una búsqueda y se mostrara una sugerencia.
urpme PKG.. Quita el(los) paquete(s) especificado(s) y todos los paquetes que dependan de el. De no encontrarse un paquete concordante, se realizara una búsqueda y se mostrara una sugerencia.
urpmi --auto-update Actualiza todo: Primero los repositorios (como urpmi.update -a (vea más adelante)) y automaticamente selecciona los paquetes que pueden actualizarse y los instala (como urpmi --auto-select).

Comandos para Repositorios

Comando Descripción
urpmi.update -a Actualiza todos los repositorios, o sea, actualiza para el sistema, la lista de paquetes disponibles
urpmi.update REP.. Actualiza' el repositorio especificado.
urpmq --list-url 'Muestra todos los repositorios y sus URL.
urpmq --list-media active Muestra todos los repositorios activos
urpmq --list-media active --list-url Muestra todos los repositorios activos y sus URL.
urpmi.addmedia NOMBRE URL Añade un nuevo repositorio NOMBRE con su URL.
urpmi.removemedia NOMBRE Quita el repositorio especificado.

Comandos de búsqueda

Comando Descripción
urpmq PKG Busca un paquete por su nombre exacto (el termino PKG y el nombre de paquete deben coincidir exactamente).
urpmq --summary -Y PKG 'Busca un paquete por su nombre y muestra información resumida del paquete. La opción -Y desactiva la sensibilidad a mayúsculas y activa el modo de búsqueda difusa (se encuentran paquetes cuyo nombre coincida parcialmente con el termino PKG).
urpmq -i PKG Muestra información sobre un paquete. El termino PKG puede referirse a un archivo RPM local.
urpmq --requires PKG Muestra lasdependencias de un paquete.
urpmf ARCHIVO Busca los paquetes que contengan el ARCHIVO

urpmi.addmedia

Aquí es donde todo comienza. Se añade un repositorio (o servidor) usando el comando urpmi.addmedia . El formato para añadir un nuevo repositorio es el siguiente:

urpmi.addmedia nombre_repositorio ftp://ftp.site.com/path/to/Mageia/RPMS

en efecto, esta viendo tras bastidores, haciendo las mismas operaciones que si utilizara drakrpm-edit-media que es la Interfaz de Usuario en el centro de Control Mageia en Administración de Software --> Configurar fuentes de medios para instalación y actualización

Los servidores de Mageia, para las versiones finales, contienen por lo menos lo siguientes repositorios:

  • repositorio core contiene software libre y de código abierto
  • repositorio nonfree contiene software propietario
  • repositorio tainted contiene software que puede estar sujeto a reclamos de patentes en algunos paises Aquí encontrara más información.

Cada repositorio tiene 5 subrepositorios:

  • release paquetes disponibles el día de la publicación de la versión de Mageia.
  • updates paquetes actualizados debido a fallos, problemas de seguridad o actualizaciones importantes (p.ej navegadores de internet). Todos deberían de habilitar este repositorio, incluso si tienen una conexión internet lenta. Al añadir uno de estos repositorios añada la opcón --update para que urpmi pueda distinguirlo de un repositorio regular.
  • update testing usado para la prueba temporal de nuevas actualizaciones, para permitir a quien reporte fallos o al equipo QA validar las correcciones.
  • backports versiones nuevas de algunos paquetes que son traídas (retroportadas) desde Cauldron, o actualizaciones que necesitan acciones manuales y no pueden estar en las actualizaciones regulares (p.ej Nextcloud)
  • backports testing usado para la prueba temporal de nuevos backports, para permitir a quien reporte fallos o al equipo QA validar las correcciones.

Para instalar paquetes desde un servidor, urpmi necesita uno o de los dos archivos que contienen en formato compreso: la información mas esencial o el conjunto completo de datos.

Vea Mirrors policy para un panorama completo de la estructura de los servidores que puede encontrarse en la mayoría de los servidores.

Copiar un CD o DVD a la carpeta personal y usarla en urpmi

Si no le gusta usar un CD o DVD al actualizar su sistema, y tiene espacio en su disco duro, cree una carpeta (por ejemplo: /home/uid/repo/), copie recursivamente la carpeta x86_64/media o i586/media desde el CD o DVD. Posteriormente saque el CD o DVD de instalación, abra una terminal y como administrador teclee:

cd /home/uid/repo genhdlist2

Ahora puede añadir la carpeta como repositorio utilizando urpmi.addmedia:

urpmi.addmedia --distrib HD file://home/uid/repo

O mediante la interfaz grafica Administración de Software --> Configurar fuentes de medios para instalación y actualización configure la carpeta y deshabilite todas las referencias al CD o DVD.

Copiar RPMs (incluidos los del CD o DVD de instalación) a una carpeta y usarla en urpmi

Cree una carpeta (por ejemplo: ~/RPMS, para guardar todos los RPM. Luego copie su lote de RPM (del CD o DVD de instalación, por ejemplo), teclee:

find /INSTALL_CD/ -name *.rpm -print -exec cp {} ~/RPMS \;

Si ha copiado el CD o DVD de instalación al disco duro, o tiene sus imágenes ISO en el (vea Copiar un CD o DVD a la carpeta personal y usarla en urpmi ), sobre como montarla, se puede realizar en un paso.

En este ejemplo la imagen CD o DVD esta montada en /INSTALL_CD/.

cd ~/RPMS genhdlist2

Creara el archivo hdlist.cz y el archivo sythesis.hdlist.cz basándose en los rpm que encuentra en la carpeta.

Encuentre las claves publicas(pubkeys) de los RPM y cópielas en ~/RPMS/pubkey. Deben de estar en INSTALL_CD/media/media_info :

mkdir ~/RPMS/pubkey cp /INSTALL_CD/media/media_info/pubkey* ~/RPMS/pubkey/

como administrador añada el repositorio:

urpmi.addmedia local_rpms file://home/uid/RPMS/

Añadir juego de repositorios para la distribución

urpmipuede añadir los repositorios importantes (ej. core, updates, nonfree ...) desde un servidor determinado con un solo comando. Como administrador teclee en una consola/terminal:

urpmi.addmedia --distrib ftp://'MIRROR_SITE'/mirror/mageia/distrib/'VERSION'/'ARCH'

donde:

  • 'MIRROR_SITE' es la URL actual del servidor FTP
  • 'VERSION' es cualquier version (generalmente la actual) de Mageia para la que quiera añadir los repositorios
  • 'ARCH' puede ser: i586 o x86_64, o posiblemente alguna otra que no exista para todas las versiones de Mageia (por ejemplo sparc, pcc, etc.)

Selección manual de un servidor

La lista de servidores esta en https://mirrors.mageia.org/ - elija uno cercano a usted (en términos de rutas de internet)

La pagina https://mirrors.mageia.org/status ayuda a evitar malos servidores.

Selección automática de servidor utilizando aria2

Es posible seleccionar automáticamente el servidor usando el parámetro --mirrorlist. Este comando añade los repositorios importantes, seleccionando automáticamente el servidor :

urpmi.addmedia --distrib --mirrorlist '$MIRRORLIST'

Encontrar servidores cercanos usando rsync y urpmi para actualizar

Por favor vea: Finding Mageia rsync servers

urpmi.update

El comando urpmi.update actualiza la lista de paquetes disponibles en un repositorio. esta lista cambia cada que cambian los paquetes en el servidor, así que necesita actualizarla cada que quiera instalar un nuevo paquete de un repositorio que cambie frecuentemente, como los de Cauldron en Mageia (Sea muy cuidadoso sobre los paquetes de Cauldron; pueden funcionar pero instalarlos ¡generalmente causa futuros problemas en las versiones estables!). Si esta usando repositorios de una versión estable, normalmente no cambian los paquetes así que no necesita actualizar la lista cada que quiera instalar algo.

Para actualizar todos los repositorios use:

urpmi.update -a

Para actualizar uno o varios repositorios especificados:

urpmi.update nombrederepo1 nombrederepo2 ...

Por ejemplo: un repositorio urpmi.update 'Nonfree 32bit Updates', o dos: urpmi.update 'Nonfree 32bit Updates' 'Nonfree Updates'. Note las comillas.

Actualmente se busca la concordancia con cualquier repositorio, así que urpmi.update Upd actualizara todos los repositorios que contengan "Upd" en el nombre, ¡incluyendo los que no estén habilitados!

Algunas veces necesitara Instalar paquetes de repositorios no habilitados, p.ej Backports, y para actualizar todos los repositorios, incluyendo los no habilitados, el truco es utilizar

urpmi.update e

Esto funciona ya que las palabras core, nonfree, y tainted, contienen una e ;)

urpmi.removemedia

Para quitar un repositorio:

urpmi.removemedia nombrederepo

Para quitarlos todos:

urpmi.removemedia -a

urpmf

Con urpmf puede encontrar el archivo que quiera, saber a que paquete pertenece, ver una descripción del paquete y muchas otras cosas.

Note que solo busca en los repositorios habilitados, vea #urpmq.

Suponga que quiere compilar un programa en C en su equipo y que el compilador se queja de la falta de jpeglib.h. Todo lo que tiene que hacer es:

urpmf jpeglib.h

Que mostrara por ejemplo:

libjpeg62-devel:/usr/include/jpeglib.h mozilla-devel:/usr/include/mozilla-1.4a/jpeg/jpeglib.h

Significa que el archivo con los encabezados de la biblioteca jpeglib son parte del paquete libjpeg62-devel, y puede instalarlo con:

urpmi libjpeg62-devel

Otro ejemplo: puede que quiera instalar un cliente de correo, pero no conoce algún cliente de correo para Linux. Así que realiza una búsqueda en el resumen de los paquetes con los términos 'mail' y 'client'. El comando

urpmf --summary mail -a client produce:

evolution:Integrated GNOME mail client, calendar and address book. squirrelmail:Squirrelmail is a webmail client for PHP4. sylpheed-claws:Enhanced version of the Sylpheed e-mail client comsat:A mail checker client and comsat mail checking server. cscmail:CSCMail is a GTK email client written in Perl sylpheed:A GTK+ based, lightweight, and fast e-mail client tradeclient:Email Client with PIM features for X

El parámetro --summary se usa para buscar en el resumen, y el parámetro -a se entiende como 'y'(and).

urpmi

Este es el principal comando de administración de paquetes, lo usara para instalar el paquete que quiere y sus dependencias:

urpmi nombrepaquete

Por ejemplo, si cree que Sylpheed es un buen cliente de correo ya que se describe como 'ligero' ('lightweight'), lo puede instalar con: urpmi sylpheed.

Advertencia: urpmi nombrepaquete normalmente, aunque no necesariamente, instala la ultima versión del paquete. Urpmi compara el numero de versión del paquete instalado con el paquete disponible en los repositorios habilitados. La excepción es cuando en un cambio de versión un paquete se pone con un nombre ligeramente distinto y tanto la antigua como la nueva versión están en los repositorios habilitados. Esto es necesario hacerlo en ocasiones por razones de compatibilidad.

Un ejemplo notable es urpmi autoconf no instalara la ultima versión, la versión más reciente del paquete se llama autoconf2.5-2.60.

Deberá utilizar urpmi autoconf2.5, que proporcionara la ultima versión de 2.5*. Note que en su sistema Mageia, ambas versiones deberían estar instaladas: Mageia elegirá automáticamente la que sea más apropiada.
Vea /usr/share/doc/autoconf-2.13/IMPORTANT.README.MDK para mayor información.

Vea las varias notas sobre urpmq --fuzzy para evitar este tipo de problemas.

Actualizar el Sistema

Otro ejemplo del uso de urpmi es la actualización del sistema con lo ultimo en actualizaciones de seguridad/corrección de errores:

# urpmi --auto-update

El comando anterior actualiza el sistema en la misma forma que la siguiente secuencia de comandos:

# urpmi.update -a && urpmi --auto-select

Los caracteres && significan "SI el primer comando tiene éxito, ejecuta el segundo comando". (urpmi.update -a) actualiza la lista de paquetes disponibles en todos los repositorios. (urpmi --auto-select) selecciona las actualizaciones de los paquetes instalados e inicia el proceso de actualización. Urpmi listara los paquetes actualizables y preguntara si desea continuar. De querer hacerlo, solo teclee s, ó n en casi contrario, y presione Enter. Al finalizar el proceso obtendrá un nuevo indicador en la parte inferior.

Si prefiere usar una interfaz grafica ('GUI') use rpmdrake en el Centro de Control Mageia: Administración de Software --> Actualizar el sistema

Migrar a la ultima versión de Mageia

Urpmi puede utilizarse para migrar sus sistema a la ultima versión de Mageia.

En resumen:

Elimine los repositorios:

# urpmi.removemedia -a

Añada los repositorios de la nueva versión (ejemplo con Mageia 9):

# urpmi.addmedia --distrib --mirrorlist 'http://mirrors.mageia.org/api/mageia.9.$ARCH.list'

Comience la migración:

# urpmi --auto-update --auto --force

Importante: ¡Antes de empezar lea estas instrucciones más extensas en las Notas de la versión más reciente!

(Y como de costumbre explore las Notas de la versión y las Erratas.)

Vea también Como elegir el Método correcto para Actualizar a una nueva versión.

urpmi --parallel distribuir actualizaciones a los equipos en su red

Las actualizaciones se descargan en uno de los equipos, y desde ahí son distribuidas al resto de equipos en su red

urpmi --parallel actualizara todos los equipos que especifique. Para mas información vea man urpmi y man urpmi.files, también vea: http://www.happyassassin.net/2005/05/04/a-quick-guide-to-urpmi-parallel .

El modo parallel de urpmi hace lo que parece: se teclea un comando urpmi y se ejecuta en varios equipos en paralelo. El equipo en el que se ejecuta el comando prueba el resultado en cada equipo del grupo, descarga todos los paquetes necesarios para todos los equipos, distribuye los paquetes apropiados a cada equipo, y luego llama a urpmi para realizar la instalación. Es brillante para instalar rápidamente software en todos sus equipos, o incluso para mantenerlos actualizados con pocos comandos, y ahorrar ancho de banda, ya que cada paquete necesario se descarga solo una vez. El único inconveniente de momento, es que no se puede incluir al servidor en el grupo, lo que lo hace un poco menos bueno para pequeñas redes caseras.

(Una alternativa más flexible puede ser instalar urpmi-proxy en el equipo que este encendido el mayor tiempo. Hacer que todos los equipos Mageia (incluido el que ejecuta urpmi-proxy) obtengan los paquetes desde ese equipo. El equipo descargara los paquetes que le requieran los otros equipos, y los guardara, así cuando otro equipo pida el mismo paquete, este se obtendrá rápidamente.)

¿Como utilizo urpmi --parallel? En realidad es muy simple. Primero, confirme que puede conectarse como por ssh desde el servidor a cada equipo como administrador (deberá teclear la contraseña, pero puede configurar el uso de llaves y utilizar ssh-add para evitarlo). Ahora instale urpmi-parallel-ssh en el equipo servidor. Edite /etc/urpmi/parallel.cfg pra que se parezca a esto:

local:ssh:toy:htpc

el primer parámetro es el nombre del grupo, ponga el que mas le guste. Conserve ssh en el segundo. Los parámetros restantes son los nombres de los equipos en el grupo; ponga tantos como quiera (pero no el equipo servidor: ya que urpmi se encontrara con sus archivos de seguridad(lock)).

Después podrá usarlo. En el servidor ejecute:

urpmi --parallel local paquete

Siempre que el urpmi del servidor tenga acceso a todos los paquetes requeridos por todos los clientes desde sus repositorios, todo debería funcionar. La forma más fácil de asegurase de esto es que todos los equipos - clientes y servidor - utilicen los mismos repositorios y servidores.

Instalar paquetes de repositorios no habilitados, p.ej Backports

Para no instalar por error paquetes de repositorios backport, no debe tener habilitado ningún repositorio backport .

Puede hacer que urpmi instale paquetes de un repositorio no habilitado, solo cuando quiera hacerlo.

(Desde luego, el repositorio necesita estar configurado y actualizado , vea urpmi.update)

Este ejemplo instala gnucash desde el repositorio Backports testing

urpmi --search-media 'Backports Testing' gnucash

urpme

Este comando quita software de su equipo. Al igual que urpmi, indaga en las dependencias y le indica si algún software instalado depende de lo que quiere desinstalar, dándole la oportunidad de abortar el procedimiento o desinstalar el paquete y todos los que dependen de el. Modo de uso:

urpme nombrepaquete

Por ejemplo, si Sylpheed es tan bueno que quiere olvidarse de Evolution, o su anterior cliente de correo, obtendrá algo de espacio adicional en su disco ejecutando urpme evolution.

Uso Avanzado

Para quitar todos los paquetes que aparentemente ya no se utilicen, o quitar todas las dependencias de un paquete task como los de entornos de escritorio, vea Desinstalar Paquetes.

'¡Tenga en cuenta las advertencias sobre eliminar demasiados paquetes!

urpmq

Utilizando urpmq puede encontrar mucha informacion sobre un rpm.

  • urpmq -i can give you information about the rpm's you can install. Try urpmq -i bash
  • urpmq -d gets a list of all rpm's that are needed to install one piece of software.
  • urpmq -d bash see which rpm's are required.
  • add the -m switch to see the ones not installed on the system at the moment.
  • --sources will get the sources.
  • So, with urpmq -d -m --sources , you can easily get a list of url's that correspond to the rpm you need to get: quite handy if you lack a good connection to the internet.
  • urpmq --list-media lista todos los repositorios configurados, incluido los inactivos.

Para listar solo lo activos, añada "active" al comando, y puede añadir "--list-url" para ver desde donde se esta descargando:

$ urpmq --list-media active --list-url
Core Release http://ftp.acc.umu.se/mirror/mageia/distrib/7.1/x86_64/media/core/release Core Updates http://ftp.acc.umu.se/mirror/mageia/distrib/7.1/x86_64/media/core/updates Nonfree Release http://ftp.acc.umu.se/mirror/mageia/distrib/7.1/x86_64/media/nonfree/release< Nonfree Updates http://ftp.acc.umu.se/mirror/mageia/distrib/7.1/x86_64/media/nonfree/updates Core 32bit Release http://ftp.acc.umu.se/mirror/mageia/distrib/7.1/i586/media/core/release Core 32bit Updates http://ftp.acc.umu.se/mirror/mageia/distrib/7.1/i586/media/core/updates Nonfree 32bit Release http://ftp.acc.umu.se/mirror/mageia/distrib/7.1/i586/media/nonfree/release Nonfree 32bit Updates http://ftp.acc.umu.se/mirror/mageia/distrib/7.1/i586/media/nonfree/updates

Este ejemplo es de un sistema de 64 bit con los repositorios 32 bit habilitados, y los tainted desactivados.

Para editar los repositorios, ejecute la herramienta de configuración drakrpm-edit-media, (alternativamente utilice el Centro de Control Mageia). Si quisiera desactivar lo repositorios update (p.ej si esta en un sistema cauldron), ejecute drakrpm-edit-media --expert.

Nota:
* urpmq solo busca en los repositorios activos - Tiene que configurar y activar el conjunto completo de repositorios para que urpmq sea capaz de encontrar todos nuestros paquetes.
  • Use los repositorios de 32 bit en sistemas 64 solo de ser necesario (p.ej para Steam), y si instala algún paquete de un repositorio 32 bit, mantega ese repositorio y su variante update activadas para no complicar futuras actualizaciones.
  • Los repositorio tainted contienen programas que pueden estar sujetos a patentes. compruebe la legislación de su pais.
  • Los Backports básicamente contienen paquetes traídos desde la proxima versión de Mageia.
¡Advertencia!
Al utilizar urpmq para buscar paquetes, tenga en cuenta la diferencia entre usar o no el parámetro --fuzzy. De no hacerlo, podría pasar por alto algún paquete que este buscando. Si urpmq encuentra un paquete que concuerde exactamente con el nombre que tecleo, solo informara sobre ese paquete, no vera otros paquetes que incluyan ese nombre.

Por ejemplo: Imagine que su mejor amigo le contó sobre 0ad, un juego de estrategia en tiempo real(RTS) de ancient warfare.

$ urpmq -r 0ad
0ad-0.0.23b-16.mga8 0ad-0.0.25-1.mga8 0ad-0.0.25b-1.mga8 0ad-0.0.25b-1.1.mga8

¡Genial! ¡Existe un paquete en Mageia con ese nombre! ¡Pero no vera otros paquetes que incluyen ese nombre! Así que busquemos de nuevo: note la 'd' faltante al final del nombre del paquete:

$ urpmq -r 0a
No package named 0a

Esta vez el resultado de la búsqueda es muy diferente: Vemos dos paquetes. Compare la siguiente búsqueda con las dos previas.

$ urpmq -r --fuzzy 0ad
0ad-0.0.25b-1.1.mga8 0ad-data-0.0.25b-1.mga8

urpmq --fuzzy tambiés es genial para ver si hat otras versiones del paquete disponibles: algunas veces una nueva versión mayor no proporciona completa retrocompatibilidad. Por este motivo las versiones más nuevas se distrinuyen con un nombre ligeramente diferente. Ahora podrá asegurarse de no pasar nada por alto.

$ urpmq -r --fuzzy fvwm
fvwm-crystal-3.7.0-1.mga8 fvwm2-2.6.9-4.mga8 fvwm2-config-mageia-2.6.9-4.mga8 fvwm2-doc-2.6.9-4.mga8 fvwm3-1.0.2-1.1.mga8 fvwm3-config-mageia-1.0.2-1.1.mga8 fvwm3-doc-1.0.2-1.1.mga8 task-fvwm2-1-7.mga8

Puede ver las nuevas versiones empaquetadas con nombres ligeramente diferentes (el nombre incluye el numero de versión)

Uso de Interfaces Graficas

gurpmi

gurpmi es una presentación grafica de urpmi y puede utilizarse en la linea de comandos para instalar/buscar paquetes. Tambien es usado por rpmdrake para mostrar mensajes que requieren intervención del usuario.

Mageia ofrece un agradable conjunto de herramientas graficas para realizar las herramientas para realizar las mismas tareas. Rpmdrake es la que el Centro de Control Mageia llama para Añadir/Quitar programas. Desde ahí puede actualizar el sistema y seleccionar repositorios. Vea nuestra documentación oficial.

manatools

Una aun incompleta re-implementación del Centro de Control Mageia, añadida desde Mageia 5 Pruebe mpan o mana para ejecutar.

dnfdragora

DNF es la nueva estrella de la administración de paquetes. Dnfdragora es la interfaz grafica.

Vea Usando DNF para informarse de sus configuración y uso, y note las actuales advertencias.

Cosas de seguridad

Cuales son los problemas de seguridad

Urpmi debe ejecutarse como administrador para poder instalar paquetes. Una persona lista y maliciosa puede engañar a un usuario de Mageia que no sea tan listo (Sabemos que todos los usuarios de Mageia son listos, peor para motivos del ejemplo supongamos que hay algún usuario algo crédulo) para que instale un paquete que pudiera parecer de uso común pero que contenga un Troyano, o código malicioso. Ya instalada la aplicación podría liberar algún virus, gusano o incluso spyware... Hasta donde sabemos, no hay noticias de que algo así se haya realizado, pero en algunos años cuando GNU/Linux seal el Sistema de mayor uso, es posible que alguien intente algo así. Afortunadamente, fracasaría, ya que la sana preocupación por la seguridad siempre ha sido parte de la comunidad GNU/Linux. La mayoría de los paquetes están firmados por sus empaquetadores para probar su autenticidad. Por favor vea: GnuPG para más detalles.

Es más probable que se intente instalar algún paquete corrompido, ya sea durante la transferencia ftp, o por una ralladura en su CD/DVD de instalación... Antes de instalar urpmi comprobara la integridad del paquete utilizando la suma MD5 y la llave gpg incluidos en el paquete. Vea la sección relacionada para más detalles.

A veces al utilizar urpmi, las personas terminan con intermkinables renglones de:

rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format

El origen del problema no esta claro: tal vez el archivo se corrompió durante una actualización o cuando un proceso urpmi es terminado prematuramente por un usuario impaciente.

La solución es borrar el archivo rpmdb: /var/lib/rpm/Pubkeys e importar de nuevo las llaves publicas.

Suma MD5

Las suma MD5 es un código contenido en un paquete rpm que permite a rpm comprobar si la suma del paquete esta bień. Si por alguna razon el paquete se corrompió, rpm (y urpmi) se rehusara a instalarlo; rpmdrake le preguntara al usuario si desea continuar.

Un ejemplo reciente:

[root@localhost yourusername]# urpmi kdesdk rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format error: cannot open Pubkeys index using db3 - Invalid argument (22) The following packages have bad signatures: /var/cache/urpmi/rpms/kdesdk-3.1.3-9mdk.i586.rpm: Invalid signature ((SHA1) DSA sha1 MD5 GPG GPG#70771ff3 NOT OK) Do you want to continue installation ? (y/N) y installing /var/cache/urpmi/rpms/kdesdk-3.1.3-9mdk.i586.rpm error: /var/cache/urpmi/rpms/kdesdk-3.1.3-9mdk.i586.rpm: MD5 digest: BAD Expected(97f2ba5a91888cd3af40f89be6b65868) != (393221db35071aa90eaa73816a9a5ba8) unable to install package /var/cache/urpmi/rpms/kdesdk-3.1.3-9mdk.i586.rpm

Ponga atención en las lineas Invalid signature ((SHA1) DSA sha1 MD5 GPG GPG#70771ff3 NOT OK) y MD5 digest: BAD Expected(97f2ba5a91888cd3af40f89be6b65868) != (393221db35071aa90eaa73816a9a5ba8). el archivo kdesdk-3.1.3-9mdk.i586.rpm se ha corrompido y no sera instalado.

La solución es borrar el archivo de la carpeta /var/cache/urpmi/rpms/ y descargarlo de nuevo. Pruebe instalarlo con urpmi o rpm --import <nombrearchivo>

Si aun no funciona, significa que el servidor tiene un archivo corripto. Pruebe descargarlo manualmente de otros dos o tres servidores y guárdelo en /var/cache/urpmi/rpms/. Siempre borre caulquier archivo descargado previamente antes de intentar de utilizar otro servidor. Luego instalelo con urpmi.

Suele pasar que el archivo corrompido se encuentra en todos los servidores. Si ha probado varios servidores y siempre se encuentra con el mismo problema, vea en los foros o listas de correo de Mageia si otros usuarios tienen el mismo problema con el mismo archivo. De ser así, probablemente se publicara pronto un nuevo archivo.

Solucionando Problemas

Base de Datos RPM bloqueada

Si al tratar de instalar un paquete obtiene "base de datos urpmi esta bloqueada", normalmente significa que otro proceso esta utilizando la base de datos. Por ejemplo:

  • Alguna de las herramientas de administración de software de Mageia:
    • rpmdrake alias "Instalar y Quitar Aplicaciones"
    • drakrpm-edit-media alias "Configurar fuentes de medios para instalación y actualización"
  • mgaapplet, la aplicación de actualización, actualizando la ase de datos (es la responsable del icono en la bandeja del sistema que notifica al usuario de las actualizaciones disponibles)
  • Un proceso urpmi/rpm instalando o quitando un paquete

Desde Mageia 1 urpmi muestra ek comando completo del proceso que esta utilizando la base de datos, eso facilita la identificación.

Si esta seguro de que no ha comenzado otro comando urpmi o ventana de administración de software, es probable que mgaapplet este actualizando la base de datos y comprobando la existencia de actualizaciones. Solo espero unos momentos y prube de nuevo.

Si el problema persiste, revise que es lo que esta usandola, este comando hara el trabajo (como se menciono urpmi mostrara la linea de comando del proceso que este bloqueando la base de datos):

ps aux | grep rpm

puede finalizar el proceso pero debe tner cuidado de no dañar la base de datos urpmi/rpm. ej. si es urpmi.update, puede finalizarlo ya que este comando solo actualiza la base de datos, y de terminarse sin finalizar el trabajo, actualizara la base de datos la proxima vez que sea ejecutado.

No se recomienda ni se necesita borrar manualmente los archivos LOCK de urpmi

urpmi usa f-lock para bloquear su base de datos al ejecutarse u proceso urpmi, esto significa que urpmi puede detectar si los archivos LOCK (/var/lib/urpmi/.LOCK y /var/lib/rpm/RPMLOCK) están "caducados" (un proceso ejecutado con anterioridad creo los archivos LOCK pero no termino limpiamente y no borro los archivos LOCK); cuando urpmi detecta archivos lock "caducados" solo los borra y crea nuevos. Así que nunca necesitara borrar manualmente los archivos LOCK, es mejor seguir los pasos dados anteriormente para investigar/corregir el mensaje de "Base de Datos RPM Bloqueada", si llega a verlo.

Reconstruir la base de datos

Si la base de datos llega a sufrir de inconsistencias, por ejemplo se le dice que un "paquete ya esta instalado" cunado no es así, y vice-versa, entonces se puede reconstruir la base de datos rpm con este comando: rpm --rebuilddb

* Es una buena idea respaldar regularmente la carpeta /var/lib/rpm. Entonces podra regresar a una versión funcional previa de la base de datos y reinstalar los paquetes posteriores con:

rpm -ivh --justdb --noscripts --notriggers

Descargas fallidas

Las descargas fallidas pueden obstaculizar las actualizaciones.

Para quitar los rpm incorrectamente descargados use urpmi --clean.

O use urpmi --resume para continuar las descargas interrumpidas.

El "medio <nombre_medio> usa una lista invalida"

rm /var/lib/urpmi/list.<nombre_medio>

Esto hara que deje de producirse el error sin interferir en la instalación de paquetes.

verificación de paquetes RPM

Una herramienta realmente util para comprobar un sistema roto, es verificar los paquetes contra la base de datos rpm.

rpm -Va

Esto le dira que paquetes han cambiado desde que los instalo (lista todas las inconsistencias de su sistema respecto la base de datos rpm) Por ejemplo, si tiene una falla en el suministro electrico durante el arranque, se pueden corromper algunos archivos (O solo por hacer algún experimento). Sabiendo esto, puede hacer que su sistema este tan bien como nuevo reinstalando los paquetes afectados. (Esto puede hacerse incluso en sistemas que no arrancan, si utiliza un CD de rescate para arrancar y corregir el problema.)

Para verificar un solo paquete: rpm -V nombre_paquete (con el nombre es suficiente los numeros de version y otros pueden omitirse).

Para reinstalar un paquete:

urpmi --replacepkgs nombre_paquete

Tambien piede usar el comando urpmi --no-install nombre_paquete para descargar el(los) archivo(s) rpm sin instalarlos y usar:

rpm -i --replacepkgs /var/cache/urpmi/rpms/nombre_paquete.rpm

para instalar el paquete (asumiendo que nombre_paquete.rpm es el nombre del archivo).

Para verificar las sumas md5sum y firmas gpg:

rpm -K foo.123.rpm, or rpm -K foo*

fuentes de RPM

Para trabajar con las fuentes de un paquete, puede usar urpmi para descargar los archivos SRPM:

urpmi.addmedia core_src ftp://ftp.mirrror.com/mirror/mageia/distrib/8/SRPMS/core/release

y para instalarlo:

urpmi --install-src nombre_paquete

Si añade --noclean, lo conservara en el directorio de construcción de rpm. Tenga en cuenta que no necesita ser root para descargar el src.rpm, solo teclee:

/usr/sbin/urpmi --install-src nombre_paquete

y obtendrá el contenido del SRPM en ~/rpmbuild . Ahora puede reconstruir el paquete binario.

rpmbuild -bb ~/rpmbuild/SPECS/nombre_paquete.spec

Lento pájaro madrugador

Para verificar su sistema, msec utiliza la base de datos rpm, pero lo hace mediante nice 19, generalmente en la madrugada. En un equipo lento toma mucho tiempo . Si ps -e muestra msec, rpmv, grep y sort , puede acelerar rpmdrake / urpmi reiniciando rpmw, grep y sort con prioridad 0.

Otros sitios para aprender sobre urpmi

A continuación algunos otros recursos con información mas detallada sobre urpmi:

  • Ejecutar solo el comando urpm* para obtener una breve ayuda
  • Busque en las paginas de los manuales las opciones disponibles. Son una fuente de información más actualizada (Recuerde: que pueden abrirse en varios de los navegadores, solo teclee: man:urpmi en la barra de direcciones).
  • Lea también las instrucciones en las notas de la versión de Mageia a la que quiere migrar.

Ver los paquetes instalados usando rpm

  • rpm -qa lista todos los paquetes instalados. Filtrelos mediante grep, p.ej rpm -qa | grep drak para ver los paquetes que tengan "drak" en su nombre.
  • "¿De que paquete fue construido drakrpm?" rpm -qif `which drakrpm`

Otras formas de instalar programas en Mageia

Vea Formas de instalar programas