Gestión e instalación de paquetes

Todo lo relacionado con el gestor de paquetes oficial de Mandriva URPMI e información sobre otros gestores que se pueden usar de forma no oficial (y con los riesgos que, por ello, pueden ocasionar ;-)).

apt

Apt es el administrador oficial de Debian, pero Mandriva permite usarlo.

Usando APT en Mandriva: Agregar Repositorios a APT

Hola

He estado leyendo algo sobre APT y hace dias me di cuenta que se puede usar en Mandriva :) y pues para probar esa joya de la ingenieria del Soft Libre (segun los debianitas :p ) lo instale:

[root@1424ru5 dalfa]# urpmq -i apt          
Name        : apt
Version     : 0.5.15cnc6
Release     : 5mdk
Group       : System/Configuration/Packaging
Size        : 1245546                      
Architecture: i586
Source RPM  : apt-0.5.15cnc6-5mdk.src.rpm    
Build Host  : n1.mandrakesoft.com
Packager    : Michael Scherer 
URL         : https://moin.conectiva.com.br/AptRpm
Summary     : Debian's Advanced Packaging Tool with RPM support
Description :
A port of Debian's apt tools for RPM based distributions,
or at least for MandrakeLinux. Original RPM port done by and
for Connectiva. It provides the apt-get utility that
provides a simpler, safer way to install and upgrade packages.
APT features complete installation ordering, multiple source
capability and several other unique features.

Under development, use at your own risk!
[root@1424ru5 dalfa]# urpmi --noclean -v apt

Ahora ya esta pero no funciona porque no tiene repositorios, asi que hay que agregarlos, se puede agregar los mismos que se usan en urpmi el formato del archivo es mas sencillo que el de urpmi.

El archivo es:


/etc/apt/sources.list

un ejemplo de entrada es:


rpm ftp://ftp.free.fr/pub/Distributions_Linux/plf/mandrake/free/10.2 hdlist.plf-free plf-free

Luego ejecutamos apt-get update que es como urpmi.addmedia

[root@1424ru5 dalfa]# apt-get update
Get:1 ftp://ftp.free.fr hdlist.plf-free.cz release
Ign ftp://ftp.free.fr hdlist.plf-free.cz release
Get:2 ftp://ftp.free.fr hdlist.plf-nonfree.cz release
Ign ftp://ftp.free.fr hdlist.plf-nonfree.cz release

Ahora lo probamos buscando algo:

[root@1424ru5 dalfa]# apt-cache search urpmi
rpmtools - Contains various rpm command-line tools
urpmi - Command-line software installation tools

Si funciona :)

Experiencias con APT y URPMI

Hace tiempo que uso Linux, Mandriva y Debian en particular. Eso me ha dejado alguna experiencia en el uso de sus respectivos SGPs (Sistemas de Gestión de Paquetes), apt y urpmi.

Mi período de mes y medio trabajando continuamente con apt me dejó la sensación de tener que comentar, discutir y aclarar más si se puede, algunas características de apt en contraste con urpmi.

Métricas

No es correcto declarar a un SGP "el mejor de todos" en base a un solo caso, a una sola experiencia de instalación, actualización, o desinstalación. Para que la evaluación sea correcta debe experimentarse con diversas situaciones.

Adelanto que al final tampoco puede declararse un vencedor entre los SGPs disponibles hoy. Cada uno tiene puntos fuertes y débiles, y cada uno se desempeña mejor o no tan bien según el caso particular.

Desda ya, no intento hacer FUD sobre apt, sino dar un listado de experiencias, no ha sido una evaluación formal y que conste.

Apt y urpmi siguen en desarrollo y pueden evolucionar por lo que la próxima versión, tal vez alguna que yo no he usado aún, mejore o haya mejorado cosas que aquí menciono (favor de tener muy en cuenta esto último para cualquier "juicio final+sentencia").

Experiencias

Aclaro que en todos estos casos, tanto urpmi como apt mantuvieron la coherencia de la BD de paquetes y las aplicaciones que se instalaron funcionaban perfectamente. A partir de allí veamos.

* Caso 1): El manejo de la compatibilidad con versiones instaladas anteriores a las versiones con las que fue compilado cierto paquete.Por ejemplo:

    - A depende de B,
    - este de C
    - este de D
    - este de E

Generalmente al actualizar A con urpmi pide actualizar B, a lo sumo C y muy rara vez pasa de ese tercer nivel. Apt en cambio hace lo inverso, casi siempre pide actualizar B,C,D y E y raras veces se concentra solo en B y C.

* Caso 2): El árbol de dependencias hacia atrás que maneja urpmi es usualmente más corto que el de apt, por ejemplo:

    - A depende de B,
    - y este de C
    - y este de D
    - y este de E

y cuando queremos instalar "A" solamente, urpmi no necesita estrictamente que estén instalados D y E; por ello aparentemente solo instalaría A,B y C.

Hasta ahí apt casi siempre funciona igual que urpmi.

La cuestión es cuando queremos actualizar "A". urpmi repite el esquema "A,B,C" y apt casi siempre va un par de niveles más allá, pidiendo instalar A,B,C,D y E. Siguiendo el esquema típico de un SGP, instalar A,B,C (D y E) se traduce en buscar e instalar también el árbol de dependencias subyacente en cada uno.

La sensación usual de que apt y urpmi funcionan "casi igual" en casos como éste dura un tiempo, mientras uno instala paquetes "poco dependientes". Sin embargo si se instala y/o actualiza alguna librería o aplicación de nivel medio o bajo del sistema (por ejemplo QT o Glibc), apt empieza a mostrar este comportamiento de "necesito instalar TODO ESTO para que el sistema siga funcionando" mientras que urpmi pide instalar casi siempre muchos menos paquetes.

* Caso 3): La compatibilidad hacia arriba en las actualizaciones. Cuando tenemos que:

    - A depende de B,
    - este de C,
    - este de D

Tanto en urpmi como en apt actualizar aplicaciones/librerías de nivel alto (K3B por ejemplo) funciona casi igual (excepto que apt generalmente va más "hacia abajo" como ya expliqué antes).

Veamos ahora las dependencias "hacia arriba". Supongamos que queremos actualizar aplicaciones/librerías de nivel medio o bajo, cierto "D" (por ejemplo QT o Glibc).

[Muy pocos paquetes rpm exigen una versión específica como dependencia (dependencia=nro. de versión), en cambio piden dependencias de igual o mayor (dependencia=>nro. de versión).]

En el ejemplo, urpmi casi siempre funcionaría instalando D y listo. Apt en cambio, en la mayoría de los casos, nos pediría desinstalar/actualizar también C,B y A también.

Este último escenario es muy, muy usual en el uso diario de apt y es para los novatos en SGPs la "demostración" de que apt es superior a todos los demás SGPs.

Hasta que usas urpmi y actualizas el mismo paquete que con apt y te bajas solo un cuarto de los MBs que tuviste que bajar con apt y todo sigue funcionando perfectamente.

Ello se debe a que cuando una librería/aplicación más nueva es compatible con paquetes compilados contra una versión anterior no es estrictamente necesaria la actualización de todos los paquetes hacia arriba; en caso de ser así, al intentar instalar el paquete, urpmi exige hacer lo mismo que suele hacer habitualmente apt.

Conclusiones

El caso 3) como mencioné es muy usual y los novatos en Linux ven el "efecto actualización" y elevan automáticamente a apt a la categoría "el mejor de todos" (porque están comprobando lo que "todos" dicen). Cuando urpmi y otros SGPs no hacen lo mismo, automáticamente "bajan" un par de categorías en calidad.

Incluso el debianita más experimentado se sorprende bastante cuando ve funcionar urpmi desde consola y más todavía cuando se da unos de los casos anteriores con algún paquete con el que él ésta familiarizado (y sabe sus dependencias de memoria).

También Quise publicar este artículo porque se ha vuelto bastante difícil dialogar/discutir/cuestionar a apt fuera de lo más profundo de su entorno de desarrollo o del grupo de de desarrollo de Debian. La mayoría de los administradores de sistemas le acreditan una infalibilidad del 100% cuando eso no es exactamente cierto.

Lo anterior no debería ser así, aunque apt es muy bueno aún puede mejorar. En ningún momento del desarrollo se planteó que un objetivo de apt fuera "ser el mejor de todos" (al menos no todo el tiempo :-).

* El punto es: No debería elevarse a ninguna herramienta al nivel de ser "mágica" tan gratuitamente. Cualquier usuario experimentado de Debian, Mandriva y otras distros suele conocer muy bien las capacidades y límites de sus respectivos SGPs y casi siempre los de los demás.

Por otra parte, las diferencias se dan principalmente cuando se trabaja con repositorios no estables y/o en desarrollo (dinámicos), y aún así urpmi,apt y el resto de los SGPs pueden mostrar mejor comportamiento, uno con respecto a cualquier otro, según el caso particular.

* El punto es: urpmi y otros SGPs maduros son tan fiables como apt en el 99.9% de los casos en que se trabaja con un repositorio estable junto a un repositorio de actualizaciones.

Nunca usar discos en Mandriva

Cuando instalas programas que vienen en los discos de Mandriva con urpmi es molesto tener que estar metiendo y sacando los discos sin mencionar que se van rayando y todo eso asi que para no usar los discos hice esto...

Copie las 4 isos a /var/isos/ luego las monto asi:

[root@MDV2006 dalfa]# mount -o loop archivo.iso /directorio/a/montar/

borro todas las fuentes de urpmi con:

[root@MDV2006 dalfa]# urpmi.removemedia -a

Ahora agrego las isos montadas como repositorios asi:

[root@MDV2006 dalfa]# urpmi.addmedia -v -ff urpmilocal file://mnt/mdv2006-cd1/media/main/

Para que las monte el sistema cada vez pongo esto en /etc/rc.d/rc.local:

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

mount -o loop /var/isos/Mandriva-Linux-Powerpack-2006-CD1.i586.iso /mnt/mdv2006-cd1
sleep 2
mount -o loop /var/isos/Mandriva-Linux-Powerpack-2006-CD2.i586.iso /mnt/mdv2006-cd2
sleep 2
mount -o loop /var/isos/Mandriva-Linux-Powerpack-2006-CD3.i586.iso /mnt/mdv2006-cd3
sleep 2
mount -o loop /var/isos/Mandriva-Linux-Powerpack-2006-CD4.i586.iso /mnt/mdv2006-cd4
sleep 2
echo "listo"

Invoca sleep para que se tarde un poco en montar sino trata de hacerlo todo a la vez y te manda un error en cambio asi no y con el truco de las ttys no hay problema :-)

rpm

rpm es la aplicación sobre la cual corre urpmi, sirve para instalar archivos rpm y su uso está recomendado para usuario de nivel medio. Si lo que quieres es instalar rpms de los repositorios mejor usa rpmdrake o urpmi.

Cómo saber qué RPMs tengo instalados en mi Mandriva

Llevar el control sobre lo que instalamos no sólo compilado sino también por urpmi con los rpms es necesario para la buena salud de nuestro sistema, así que jugando un poco con el comando rpm coloco algunas anotaciones aquí que le pueden ser útiles a alguien...

[dalfa@MDV2006 ~]$ rpm -qa

Eso te da una salida "a granel" desordenada, pero es fácil ordenarla:

[dalfa@MDV2006 ~]$ rpm -qa | sort

Esto hará que sort la ordene alfabéticamente. ¿Qué? ¿Que son muchos rpms? No hay problema, puedes mandar la salida de sort a less para leer la lista detenidamente:

[dalfa@MDV2006 ~]$ rpm -qa | sort | less

¿Qué? ¿No quieres leer la lista en vivo con less? Pues también puedes mandar la salida a un archivo para llevar un registro de lo que tienes instalado y qué te cambió en cada actualización:

[dalfa@MDV2006 ~]$ rpm -qa | sort > archivos_rpms_instalados

Pero para llevar un registro se tendría que correr este comando con un cron, semanal digamos, ya que creo que hacerlo diario es algo exagerado, aunque nunca se puede ser demasiado cuidadoso:

[dalfa@MDV2006 ~]$ tiempo=$(date +%d-%m-%y-%X); rpm -qa | sort > archivos_rpms_instalados-$tiempo

Para aprender a usar cron leer este manual:

Manual: Como usar Cron / Crontab
http://blogdrake.net/node/2171

Cuando tengamos el cron semanal listo podemos revisar nuestros archivos con el programa diff así:

[dalfa@MDV2006 ~]$ diff archivos_rpms_instalados-01-02-06-22\:00\:54
 archivos_rpms_instalados-01-02-06-22\:00\:24 
1c1
< acpi-0.07-7mdk
---
> acpi-0.07-6mdk
[dalfa@MDV2006 ~]$ 

El cual muestra qué nombres de archivos son distintos, con lo cual al haber un problema se puede regresar al anterior ^ _ ^

Construye tus propios archivos RPMs

Articulo originalmente publicado por Sinner en Libertonia.

Has encontrado ese programa/versión de la librería en CarneFresca o en ForjaFuentes que te va a solventar la vida.
Llevabas casi 3 semanas buscándolo. Y ahora va y resulta que no está en formato [.deb | .rpm | .tgz] para tu distribución favorita.

¿Qué haces? ¿te tiras de los pelos? ¿te vas a dormir? ¿te instalas el Windows?

Norl!!!

Créate tu propio paquete.

Introducción

Esto del OpenSource es aquello de "si tienes un picor, te rascas... y publicas el código fuente". Incluso para los tutoriales como éste.

Mientras luchaba con unas librerías actualizadas para poder instalar un programa que necesitaba urgentemente, me vi en la necesidad de aprender varios secretos sobre la creación de RPMs en particular y todo tipo de paquetes en general.

Y, ya puestos, ¿por qué no hacer un mini-tutorial?

El problema

Encuentras un programa o librería que necesitas para tus aventuras en Linux. Vas a la sección de Downloads y descubres, como no, que solo existen paquetes para las distribuciones que no usas. No falla. Pasa siempre. YPMQ miran la distribución que usas y, dinámicamente, esconden los paquetes que necesitas.

Entonces, te queda bajarte las fuentes del programa/librería, configurarla, cruzar los dedos, compilarla (y que no pete) e instalarla (y que no te rompa nada).

Encima, no te garantiza que vas a obtener los "provides" necesarios para instalar el otro programa que es el que realmente quieres instalar.

Como casi siempre, no eres el primero que se encuentra en tamaño brete.

Afortunadamente, algunos de los compañeros de penas saben programar, tenían tiempo libre y, en base a código de un proyecto anterior, installwatch, van y empiezan un proyecto que te va a alegrar: un generador de paquetes!!!

La solución

Efectivamente, existe tal generador de paquetes. No, no es magia negra. Sí, pueden utilizarlo Bilo, Nano... incluso GonzoTBA, alias "cambiar a ReiserFS con 2 c*j*n*s".

El programa se llama CheckInstall. Si os fijais, el proyecto se aloja en una web de Mexico. Eso sí, la documentación que he encontrado, está en el más puro Inglés. Pero no pasa nada. El Sinner lo va a explicar.

¡Crea tus paquetes!

El primer paso consiste en instalarse el programilla.

¿Qué hay que hacer para instalarlo?

Instalando desde el soporte de software "contrib"

urpmi checkinstall

Es complicadillo, ¿verdad? xD

Recuerda que has de ser root y ejecutar el comando en la consola o bien utilizar rpmdrake (Instalador gráfico de paquetes) y buscar el paquete llamado checkinstall.

O bien compilarlo e instalarlo "a mano"

En su sección de Download, lo encontrarás en formato de código fuente (tar.gz), en paquete tipo RedHat/Mandrake/SuSE (rpm), para Debian (deb) y para Slackware (tgz). Vamos, para todos los gustos.

Luego, asegúrate que tienes el programa en cuestión en el PATH del administrador (root). El programita se llama "checkinstall". Si no está en el path de root, ponle un link en, por ejemplo, en /usr/sbin/.

¡Ahora ya estamos preparados para crear nuestros própios paquetes!

Bajando los fuentes a empaquetar

El segundo paso será descargar el código fuente del programa o librería que queramos. Lo descomprimimos en un directorio. Ahora toca leerse los ficheros README, BUILD, COMPILE, INSTALL y toda la documentación que incluya.

Sí, hay que leerlos. No, no es broma.

Configurando

Ahora toca configurar el paquete. Primero, haremos un

./configure --help

para ver que se puede configurar.

Usualmente podremos configurar (y nos interesará configurar) alguna de estas opciones:

--bindir=DIR
--sbindir=DIR
--target=TARGET

Que son, por orden:

* Directorio "DIR" donde poner los ejecutables
* Directorio "DIR" donde poner los ejecutables para el administrador
* Configurar para la plataforma "TARGET"

Dependiendo del programa configurador, tendrás muchas opciones. Utiliza las que necesites, o las que veas que te crean paquetes con los archivos en su sitio (ya que cada distribución pone los archivos donde les da la gana... aunque ahora el LSB parece que va a arreglar todo esto.)

Cuando lo tengas claro, procede a dar la orden

./configure

con todas las opciones que necesites, como por ejemplo:

./configure --prefix=/usr/share/apps --bindir=/usr/bin --build=i586

Si te da errores, sé avispado, utiliza Google, los grupos de noticias de EcolNet y tu intuición. Como último recurso, ¡usa la fuerza Luke!

Cuando acabe sin errores, es hora de dar el siguiente paso:

La compilación

¡No te asustes! Es bien facil. Da la orden

make

Te vas a por la cervecita y a esperar que acabe la compilación. Evidentemente, si tienes un AthlonMP Dual a 2200, solo podrás tomarte una cañita rápida, y si usas un i386sx, acabarás beodo.

Cuando termine (bién, es de suponer) la compilación, te dirá que es el momento de hacer

make install

pero como root.

En este instante, te cambias a root y utilizas la arcana mágia... digooooo, que utilices el programa CheckInstall, que con la mágia, la casa acaba oliendo a cosas raras.

nota-recordatorio: para cambar a root puedes utilizar el comando: "su"

Da la orden

checkinstall

y, si no le pasas ninguna opción, entrarás en el modo interactivo.

  • Primero te pregunta si quieres crear el directorio de documentos ./doc-pak
    Responde como te convenga en tu caso.
  • Ahora, el programa empieza a darse un garbeo por tu disco y comprueba donde van a acabar cada uno de los archivos que contiene el programa de marras.
  • Luego te pregunta qué paquete quieres crear: Slackware [S], RPM [R] o Debian [D].

    Como ves es sencillo.

  • Si por esas cosas, el paquete original no tiene un "Summary" o pequeño resumen sobre el paquete, te pedirá que lo entres.

  • Luego te muestra una lista de las opciones, como esta:
    1. 1 - Summary: [ CheckInstall installations tracker, version 1.5.3 ]
    2. 2 - Name: [ checkinstall ]
    3. 3 - Version: [ 1.5.3 ]
    4. 4 - Release: [ 2mdk ]
    5. 5 - License: [ GPL ]
    6. 6 - Group: [ Applications/System ]
    7. 7 - Architecture: [ i586 ]
    8. 8 - Source location: [ checkinstall-1.5.3 ]
    9. 9 - Alternate source location: [ ]
    10. 10 - Provides: [ checkinstall ]

    Como ves, es autoexplicativo. Cambia lo que quieras. Por ejemplo la Release, para indicar que es una compilación nueva que has hecho y le pones un número más, y le añades un indicativo apra saber que la has hecho tú (GonzoTBA) y acabas poniendo en Release 3gtba, pongamos por caso. Si el programa se distribuye con licencia BSD, pues le cambias el apartado correspondiente. Si quieres compilar especialmente para un Athlon, pues lo cambias.

  • Cuando hayas acabado de afinar, le das al enter y ¡empezará la construcción del paquete!

Tras el momento de euforia, verás que acaba diciéndote algo así como:

Done. The new package has been installed and saved to /usr/src/RPM/RPMS/athlon/checkinstall-1.5.3-3gtba.athlon.rpm

You can remove it from your system anytime using:

rpm -e checkinstall-1.5.3-3gtba

Este anuncio te indica el directorio donde tienes el paquete, que te ha instalado el paquete en el sistema y te da la forma de desinstalarlo. Y ya está.

¿A que no era tan dificil?

Salut,

Sinner

¿Cómo saber qué paquetes no fueron actualizados?

A la hora de actualizar Mandriva vía urpmi de una versión anterior a otra más moderna puede ocurrir que algunos paquetes no se actualicen por algún motivo (los paquetes no existen en la versión más moderna, el nombre cambió, etc).

Una vez terminada la actualización, podemos saber qué paquetes faltan por actualizar mirando la fecha en que fueron instalados.

Podemos obtener la lista de todos los paquetes instalados, ordenados por fecha de instalación de más reciente a más antiguo, mediante la siguiente orden del shell (obtenida de When was an rpm installed?):

rpm -qa --queryformat '%{installtime} %{name}-%{version}-%{release} %{installtime:date}\n' | \
sort -nr +1 | sed -e 's/^[^ ]* //'

Para quien tenga curiosidad, esta orden primero muestra todos los paquetes instalados en el sistema con su fecha de instalación (utilizando el número de milisegundos transcurridos desde el 1 de enero de 1970, si no me equivoco), el nombre del paquete, y de nuevo la fecha de instalación, pero esta vez en un formato útil para humanos.

A continuación, ordena todos esos paquetes según la primera fecha de instalación mencionada, y luego elimina esa fecha de la salida final, ya que no es realmente relevante una vez ordenado.

Hay que tener en cuenta que algunos paquetes pueden no haber sido actualizados porque su versión es la misma en la nueva versión de Mandriva que en la anterior. El sencillo script mostrado a continuación selecciona de la lista de paquetes no actualizados aquellos que no están en los repositorios.

for i in `cut -f 1 -d " " $1`
do
	if [ ! `urpmq -r $i 2>/dev/null` ]
	then
		echo "$i"
	fi
done

Para que funcione, debe guardarse en un archivo llamado, por ejemplo, filtro.sh (con permisos de ejecución). A la hora de ser invocado, debe pasársele un archivo que contenga aquellos paquetes no actualizados, utilizando el formato de salida de la orden arriba expuesta.

Dicho de otra manera, se invoca la orden para obtener la lista de paquetes por fecha de instalación, se seleccionan únicamente aquellos que no fueron actualizados y se copian a un archivo, que es el que se pasa al filtro.

Si alguien se lo pregunta, funcionar, funcionaría utilizando la lista completa de paquetes en lugar de sólo aquellos no actualizados, pero sería muchísimo más lento.

El script es realmente cutre, así que si alguien quiere mejorarlo adelante ;)

Cómo construir un paquete RPM firmado con clave GPG

1. Motivación y Objetivo

Hace tiempo que deseaba aprender a construir rpm específicos para Mandriva. Y en el hilo http://blogdrake.net/node/7667 owl comentó que sus problemas con la multifunción hp acabaron al instalar hplip-1.7.4a. Esa versión del paquete está en cooker, pero no disponible para mdv2007.1. Ésta fue la excusa definitiva.

Describiré detalladamente cómo pueden construirse unos rpm personalizados para Mandriva Linux 2007.1 a partir del paquete hplip-1.7.4a-1mdv2008.0.src.rpm, que está en ftp://gsa10.eps.cdf.udc.es/mandrivalinux/devel/cooker/SRPMS/main/release.

Esto es lo que he hecho y me ha funcionado. Espero que sea de utlidad a los que quieran hacer algo semejante.

Nota: cuando el promp sea $ seré siempre el usuario pealfa.

2. Instalación de los paquetes necesarios

Repositorios main, contrib, main-updates al día.

# urpmi rpm rpm-build spec-helper libtool rpmlint
Para satisfacer las dependencias, se instalarán los paquetes siguientes:
..........
¿Efectuar la instalación de los 16 paquetes? (82 MB) (S/n) s
..........

3. Generación del par de claves GPG y exportación

$ gpg --gen-key
..........
Por favor seleccione tipo de clave deseado:
   (1) DSA y ElGamal (por defecto)
   (2) DSA (sólo firmar)
   (5) RSA (sólo firmar)
Su elección: [ELIJO 1]
..........
¿De qué tamaño quiere la clave? (2048) [INTRO]
El tamaño requerido es de 2048 bits
Por favor, especifique el período de validez de la clave.
         0 = la clave nunca caduca
        = la clave caduca en n días
      w = la clave caduca en n semanas
      m = la clave caduca en n meses
      y = la clave caduca en n años
¿Validez de la clave (0)? [INTRO]
La clave nunca caduca
¿Es correcto? (s/n) s
..........
Nombre y apellidos: pealfa
Dirección de correo electrónico: [COLOCO UNA DIRECCIÓN DE CORREO AQUÍ]
Comentario: [INTRO]
Ha seleccionado este ID de usuario:
    "pealfa "
¿Cambia (N)ombre, (C)omentario, (D)irección o (V)ale/(S)alir? v
Necesita una frase contraseña para proteger su clave secreta.
[FRASE_SECRETA]
..........
pub   1024D/5301C035 2007-06-09
uid   pealfa [CORREO]
sub   2048g/EE79C171 2007-06-09

Veamos qué hay en mi anillo clave:

$ gpg --list-keys
/home/pealfa/.gnupg/pubring.gpg
-----------------------------
pub   1024D/5301C035 2007-06-09
uid   pealfa [CORREO]
sub   2048g/EE79C171 2007-06-09

Todo parece ir bien.

Terminamos exportando la clave pública desde el anillo clave a un fichero de texto:

$ gpg --export -a 'pealfa' > RPM-GPG-KEY-pealfa

4. Creación como usuario de la estructura necesaria

$ mkdir -p ~/rpm/{BUILD,RPMS/i586,RPMS/x86_64,RPMS/noarch,SOURCES,SRPMS,SPECS,tmp}

Y creo, también el, el archivo de texto plano .rpmmacros:

$ cat ~/.rpmmacros

%_topdir                %(echo $HOME)/rpm
%_tmppath               %(echo $HOME)/rpm/tmp

# Si desea que sus paquetes sean automáticamente firmados con GPG, añada estas
# tres líneas cambiando 'Mandrivalinux' por su nombre GPG. Tambien puede usar
# rpm --resign para firmarlos posteriormente. En %_gpg_name debe ponerse
# el uid (pealfa) o pub (5301C035):
%_signature             gpg
%_gpg_name              5301C035
%_gpg_path              ~/.gnupg

# Agregue su nombre y dirección de correo electrónico en el campo %packager. 
# Puede que tambien desee cambiar 'vendor' por usted mismo.
%packager               Pepe Álvarez [CORREO]
%distribution           Mandriva Linux
%vendor                 Mandriva

# Si desea que sus paquetes tengan su propio sufijo de distribución en lugar 
# de mdv, anótelo aquí 
%distsuffix             pealfa_mdv

5. Descarga e instalación del SRPM

Ahora descargo en ~/rpm/SRPMS/ el paquete de código fuente que quiero modificar para Mandriva Linux 2007.1, y lo instalo en el árbol ~/rpm:

$ cd ~/rpm/SRPMS/
$ rpm -i hplip-1.7.4a-1mdv2008.0.src.rpm

6. Construcción del rpm y firma

Ahora crearemos el rpm binario (en ~/rpm/RPMS/i586) y el rpm fuente (en ~/rpm/SRPMS/) ejecutando:

$ cd ~/rpm/SPECS
$ rpmbuild -ba --sign hplip.spec
[pepe@3000xp SPECS]$ rpmbuild -ba --sign hplip.spec
Enter pass phrase:
Pass phrase is good.
error: Failed build dependencies:
        libsane-devel is needed by hplip-1.7.4a-1pealfa_mdv2007.1.src
        python-devel is needed by hplip-1.7.4a-1pealfa_mdv2007.1.src
        net-snmp-devel is needed by hplip-1.7.4a-1pealfa_mdv2007.1.src
        libusb-devel >= 0.1.8 is needed by hplip-1.7.4a-1pealfa_mdv2007.1.src
        libcups-devel is needed by hplip-1.7.4a-1pealfa_mdv2007.1.src

Vaya, tendremos que instalar todo eso para obtener nuestro preciado tesoro:

# urpmi libsane-devel  python-devel  net-snmp-devel libusb-devel libcups-devel
..........
¿Efectuar la instalación de los 25 paquetes? (46 MB) (S/n) s
..........

Repetimos:

$ rpmbuild -ba --sign hplip.spec
..........
+ exit 0

¡Aquí están mis paquetes:!

$ ls -l ~/rpm/RPMS/i586/
hplip-1.7.4a-1pealfa_mdv2007.1.i586.rpm
hplip-debug-1.7.4a-1pealfa_mdv2007.1.i586.rpm
hplip-doc-1.7.4a-1pealfa_mdv2007.1.i586.rpm
hplip-hpijs-1.7.4a-1pealfa_mdv2007.1.i586.rpm
hplip-hpijs-ppds-1.7.4a-1pealfa_mdv2007.1.i586.rpm
hplip-model-data-1.7.4a-1pealfa_mdv2007.1.i586.rpm
libhpip0-1.7.4a-1pealfa_mdv2007.1.i586.rpm
libhpip0-devel-1.7.4a-1pealfa_mdv2007.1.i586.rpm
libsane-hpaio1-1.7.4a-1pealfa_mdv2007.1.i586.rpm

7. Importación de la clave pública e instalación

Ahora ya puedo refrescar mi equipo con esos nuevos paquetes. Pero al intentarlo aparecería un mensaje advirtiendo de que los paquetes contienen una firma no válida.
Para asegurarse de que los archivos que estamos instalando son los firmados por pealfa, debo importar la clave pública de la firma de pealfa (está en RPM-GPG-KEY-pealfa); así sabremos que esos son los paquetes correctos y confiará en ellos, al cotejarla con la firma pública importada con la estampada en los rpm.

Para ello hacemos:

# rpm --import RPM-GPG-KEY-pealfa

Ahora se instalarán con la garantía de que son los paquetes firmados y no habrá mensajes de error:

# cd /home/pealfa/rpm/RPMS/i586/
# rpm -Fvh *.rpm
Preparing...                ########################################### [100%]
   1:libhpip0               ########################################### [ 20%]
   2:hplip-hpijs            ########################################### [ 40%]
   3:hplip-model-data       ########################################### [ 60%]
   4:hplip                  ########################################### [ 80%]
   5:libsane-hpaio1         ########################################### [100%]

Nota: obviamente, esto de la firma sólo tiene sentido si vamos a compartir los paquetes. Por ejemplo, podríamos compartir los paquetes con emule o bittorrent y colocar la clave pública en un lugar donde los clientes puedan descargarla con la seguridad de su autenticidad. Así estarán seguros de que no instalan paquetes que son falsificaciones (virus, troyanos, y cosas de esas). Aunque en realidad han sido las ganas de jugar, claro.

Bueno, ahora puedo tener en mi sistema las ultimísimas versiones que van apareciendo en cooker y que no han sido (o serán) empaquetadas para mi versión actual. ¡Ah! Y ahora le daré aún más la vara a mi hermano con ¡Mi Mandriva Linux ya lo tiene y tu Africana no! ;-D

8. Fuentes y Agradecimientos

Basado en los documentos:

Cómo construir RPM - Wiki Mandriva
Cómo firmar sus paquetes rpm con clave GPG

¡Muchísimas gracias, Osado, por tu labor silenciosa de traducción en el Wiki de Mandriva! Sin ella no me habría decidido (o podido).

Saludos

Pepe Álvarez

__________

Fácildriva: ayuda para instalar software en Mandriva Linux

urpmi

Urpmi es el administrador de paquetes oficial de Mandriva Linux. Con él puedes instalar, desinstalar, actualizar y descargar los rpms de los repositorios.

Cómo configurar el tiempo de verificacion de actualizaciones de mdkapplet

El icono que notifica sobre las actualizaciones se llama mdkapplet, es muy facil configurar el lapso de tiempo en el que quieres que inicie a buscar y el intervalo de verificacion.

Por defecto espera 5 minutos (300000) para iniciar a buscar actualizaciones, un minuto es equivalente al valor 60000, el archivo de configuracion esta en /etc/sysconfig/mdkapplet.

El intervalo de verificacion de actualizaciones tiene por defecto es de 3 horas (10800) una hora es equivalente al valor 3600 y un minuto al valor 60

# Update frequency (in seconds) [default is 3 hours]:
UPDATE_FREQUENCY=10800

# Initial check will be delayed by (default to 5 minutes):
FIRST_CHECK_DELAY=300000

Estos datos es necesario saberlos, ya que si se intenta instalarlo algo mientras mdkapplet este usando urpmi, te dara el mensaje:

RpmDRAKE / Urpmi: Base de datos de urpmi bloqueada / rpm database locked
http://blogdrake.net/node/11016

Si quieres configurar los valores de retraso de busqueda se escribe en la linea 5:

FIRST_CHECK_DELAY=300000

Si quieres configurar los valores del intervalo de busqueda se escribe en la linea 2:

UPDATE_FREQUENCY=10800

El valor del intervalo empieza a correr luego de que se ejecute el tiempo del retraso de busqueda (linea 5).

Si te gusta instalar muchos programas pon un tiempo de intervalo largo, asi no tendras inconveniente que mdkapplet este usando la base de datos de urpmi.

Cómo configurar los repositorios de Mandriva Linux

El programa que agrega, edita y borra la configuracion de los repositorios de urpmi, es edit-urpm-sources.pl, hay varias formas de poder ejecutarlo:


Repositorios Oficiales

Actualizaciones y Fuentes

  • Puedes llamarlo desde el drakconf.
      El drakconf es la aplicacion central de configuracion de de Mandriva.

    • La puedes elegir desde el menu de entorno grafico:

      Como configurar los repositorios de Mandriva Linux

      Asi:

      • Sistema
        • Configuracion
          • Configurar su computadora
    • La puedes ejecutar directamente presionando alt + f2 y escribiendo drakconf:

      Como configurar los repositorios de Mandriva Linux

      Al presionar enter aparecera otra ventana que te pedira, tu contraseña de root debido a que solo root puede agregar repositorios:

      Como configurar los repositorios de Mandriva Linux

      La apariencia de Drakconf es asi:

      Como configurar los repositorios de Mandriva Linux

      La pestaña de "Administracion de Software" esta seleccionada por defecto, en ella presionas "Elegir de donde se descargan los paquetes de software cuando se actualiza el sistema" y edit-urpm-sources se ejecutara dentro de drakconf:

      Como configurar los repositorios de Mandriva Linux

  • Tambien puedes llamar edit-urpm-sources solo, sin usar drakconf:
    • Presionas alt + f2 y escribes edit-urpm-sources.pl, luego te preguntara por la contraseña de root.
    • Puedes ejecutarlo desde una terminal, presionas alt + f2 y escribes el nombre de tu terminal favorita (en este ejemplo usamos konsole, la terminal de KDE) al iniciar la terminal escribes el comando su y luego escribes tu contraseña de root:

      Como configurar los repositorios de Mandriva Linux Como configurar los repositorios de Mandriva Linux

      Ahora solo ejecutas el comando, edit-urpm-sources.pl y la aplicacion iniciara:

      Como configurar los repositorios de Mandriva Linux

Ahora que ya tenemos la aplicacion, ejecutada podemos ver los repositorios, en este caso solo estan los del DVD, (es una instalacion fresca) urpmi puede usar repositorios en una gran gama de protocolos y medios: ftp, http, nfs, samba, rsync, ssh, CDs, DVDs, discos duros y unidades USB.

Edit-urpm-sources consigue la lista de servidores oficiales de Mandriva de actualizaciones y de fuentes cuando la obtiene se auto configura solo, para que lo haga presionas el boton Agregar, que esta a la derecha:

Como configurar los repositorios de Mandriva Linux Como configurar los repositorios de Mandriva Linux

Aparecera una ventana que te pregunta que quieres configurar primero, si los servidores de las actualizaciones o los servidores de las fuentes, puedes elegir el que quieras el orden no importa en este ejemplo elegiremos primero las actualizaciones:

Como configurar los repositorios de Mandriva Linux Como configurar los repositorios de Mandriva Linux

La aplicacion te mostrara una lista de servidores de donde elegir, se sugiere eligas la de un pais que este cerca al tuyo:

Como configurar los repositorios de Mandriva Linux Como configurar los repositorios de Mandriva Linux

Luego presionas el boton Aceptar y edit-urpm-sources empezara a configurarse, dependiendo de la velocidad de tu conexion podria tardarse mucho o poco. Si un servidor te da error o falla la conexion elige otro:

Como configurar los repositorios de Mandriva Linux

Como podemos ver ahora ya aparece un repositorio mas, "update_source", ahora debemos configurar las fuentes, presionando agregar y presionando el boton que dice fuentes. Al terminar tu programa deberia verse asi:

Como configurar los repositorios de Mandriva Linux

Si te fijas hay unos repositorios que estan desactivados por defecto, estos son backports y testing, que puede contener aplicaciones inestables sobre todo testing, si no quieres probar software inestable no actives esos repositorios.

Como configurar los repositorios de Mandriva Linux

Si activas los repositorios, ten cuidado de no marcarlos como actualizaciones. Para activarlo solo presionas en la casilla correspondiente que dice "habilitada":

Como configurar los repositorios de Mandriva Linux


Repositorios no oficiales

PLF

Hay aplicaciones que no son libres o tienen problemas de licencia en cierto paises, las cuales Mandriva no soporta oficialmente, esas aplicaciones estan empaquetadas en los servidores de PLF, PENGUIN LIBERATION FRONT. Que es el nombre de un grupo de usuarios de Mandriva Linux que las empaqueta, fuera de Mandriva.

En este servidor hay aplicaciones que Mandriva no distribuye y que pueden ser de utilidad dependiendo del uso que le des a tu sistema, para configurar estos repositorios lo haremos desde la aplicacion WEB, easy urpmi:

http://easyurpmi.zarb.org

La aplicacion funciona con muchas versiones de Mandriva, tiene la lista de los servidores oficiales y los de PLF si prefieres no usar edit-urpm-sources y hacerlo manualmente esta aplicacion te sera de utilidad:

La pagina se mira asi:

Como configurar los repositorios de Mandriva Linux Como configurar los repositorios de Mandriva Linux

Es un formulario en el cual seleccionas la version de tu Mandriva y luego presionas el boton que dice "Ir al paso 2", entonces te saldra la lista de servidores oficiales (actualizaciones y fuentes) y los de PLF.

Como ya tenemos configurados los oficiales solo seleccionaremos los de PLF, seleciona el servidor que mas te guste y presiona el boton "Ir al paso 3":

Como configurar los repositorios de Mandriva Linux Como configurar los repositorios de Mandriva Linux

En la imagen anterior, te muestra el resultado, ese comando debes copiarlo e introducirlo en una terminal que tenga un usuario root, asi:

Como configurar los repositorios de Mandriva Linux Como configurar los repositorios de Mandriva Linux

Solo debes copiar una linea de comando, a la vez si copias todo no funcionara, cada linea de comando inicia con "urpmi.addmedia".

Ahora eres capaz de configurar tus repositorios.

Cómo configurar los repositorios facilmente

Seguimos. Ya tenemos nuestra distribución Mandriva instalada en el ordenador desde nuestro Live-CD Mandriva ONE. Fenomenal. Navegadores, clientes de correo y mensajería instantánea, programas de ofimática... parece mentira que todo esto entre en un sólo CD. Pero no hay de todo. Tal vez quieras usar un cliente P2P, o el navegador que quieres usar no está instalado, o necesitas un driver para algún periférico... En otros sistemas operativos deberías preparar un montón de CDs de controladores, visitar webs de distinta índole para descargar algún que otro programa, etc. En Mandriva (y en Linux en general) las cosas se pueden hacer de un modo distinto. Bienvenido al mundo de los repositorios.

Un repositorio no es más que una gigantesca (literalmente) colección de software de todo tipo. Agrupado, ordenado y empaquetado de forma compatible con tu sistema, Mandriva dispone de una de las más extensas recopliaciones de software del mundo Linux.

Asimismo, la distribución viene provista con una impresionante herramienta de gestión de software llamada urpmi. Es una herramienta en modo texto que ofrece control total del software que instalas, el que hay disponible, y finalmente las actualizaciones del sistema.

Para los nuevos en el mundo Linux, comprender el concepto de repositorio, su organización y su uso a veces resulta confuso. Y no hablemos ya del uso de la línea de comandos: muy potente cuando se conoce, extraordinariamente poderosa cuando se domina, pero confusa e intimidatoria cuando se está acostumbrado a hacerlo todo en modo gráfico.

Consciente de ello, Mandriva ha incluido en su MCC (Mandriva Control Center), para los que vengáis de Windows, es el (muy superior) equivalente al Panel de Control, herramientas gráficas para la gestión del software de tu sistema y los repositorios. La joyita en cuestión es conocida como RPMdrake.


Miniatura de la captura

Click para ampliar

El MCC con la sección de software.

Abramos el MCC. Uno de los lemas de Linux es: "Siempre hay más de una forma de hacerlo todo" (o algo así). Con el sistema de menús, Menú principal->Sistema->Configurar su computadora. Aparecerá una ventana en la que el sistema nos solicitará la contraseña de Root. Una vez introducida, nos mostrará el MCC. También puede hacerse desde la consola. Yo acostumbro a hacerlo así porque si hay cualquier problema, los mensajes de error aparecerán en ella. Localizad el lanzador de la consola (un icono con forma de pantalla con un prompt en ella) y pulsadlo. Iniciará una sesión en el intérprete de comandos con vuestro usuario. Una vez desplegada la consola teclead:

[flynn@cabezon ~]$ su -
Contraseña:Aquí hay que introducir la contraseña de root.
No mostrará lo que tecleeis
[root@cabezon ~]# drakconf

Y nos abrirá el MCC de la misma forma que a través del sistema de menús.

Configurando los repositorios

Ya estamos dentro. Si no has configurado previamente ningún repositorio, poco software vas a poder descargar e instalar. Es la primera tarea que debemos realizar. Pulsad en el icono "Elegir de dónde se descargan los paquetes..." para hacer una primera configuración "automágica".
Después de pulsar en "Aceptar" en la ventana que nos anuncia la funcionalidad que hemos lanzado, nos encontramos con ésta pantalla:


Miniatura de la captura

Click para ampliar

Es la herramienta gráfica de gestión de repositorios. En realidad no es más (ni menos) que un frontend gráfico para la herramienta urpmi que comentábamos antes. Lógicamente, tenemos la lista de repositorios de la izquierda vacía, pero eso va a tardar poco en cambiar. Pulsemos en "Agregar..."


Miniatura de la captura

Click para ampliar

La ventana que nos muestra nos da a elegir si queremos configurar repositorios de actualizaciones o los repositorios de la distribución. Comenzaremos seleccionando "Actualizaciones oficiales":


Miniatura de la captura

Click para ampliar

Mandriva nos pedirá permiso para conectarse al sitio de Mandriva Linux para recibir una lista de sitios de réplica (mirrors). Una vez aceptemos, nos pondrá a disposición la lista existente, ordenada por países tal y como se muestra en la imagen de arriba. Todos los mirrors contienen exactamente el mismo software. La gran cantidad de mirrors seleccionables se debe a efectos de proximidad, rendimiento, etc. Pero nunca a diferencias en cuanto a software disponible. Podremos elegir el que queramos. Seleccionemos por ejemplo el servidor ftp.free.fr:


Miniatura de la captura

Click para ampliar

Y comenzará la descarga del archivo de índice de software disponible. Hay dos tipos de archivos: hdlist y syntesis. Para más información, sigue leyendo. Hay una explicación más adelante ;)

Ya tenemos el repositorio de actualizaciones configurado:


Miniatura de la captura

Click para ampliar

Ahora, vamos a agregar el resto de repositorios oficiales que Mandriva pone a nuestra disposición. Para ello, volvemos a pulsar en el botón "Agregar..." y en la ventana emergente, seleccionamos "Fuentes de la distribución". Seleccionamos el mirror (el mismo de antes u otro que queramos) y comenzamos la descarga del archivo de índices:


Miniatura de la captura

Click para ampliar

Listos. Todo el software que Mandriva ha preparado para su distribución lo tenemos disponible para descargar.


Miniatura de la captura

Click para ampliar

Ahora una breve explicación de lo que hay y por qué está como está:
update_source: El repositorio principal de actualizaciones de la distribución. Todas las actualizaciones de seguridad y mejoras que tengan que ver con el sistema operativo o sus componentes críticos estarán en este repositorio.

Main (Official2007.1-1): Éste es el repositorio en el que hay almacenado el software libre que está oficilamente soportado en la distribución que hemos instalado. En este caso la 2007.1. Si examinas el árbol de directorios de un mirror de repositorios, comprobarás que es el directorio /release. Es decir: todoel software contenido en la distribución Mandriva Linux que hayas instalado, independientemente de si era en CD, DVD, PowerPack, Free, etc.

Main Updates (official...): Aquí están las actualizaciones del software incluído en el repositorio anterior.

Main Testing...: Aquí se almacenan las actualizaciones del software de Main que, antes de incorporarse a Main Updates, se incluyen aquí para los que deseen probarlas y comprobar que no tienen errores. Fíjate que está deshabilitada. Se debe a la naturaleza "experimental" del software de este repositorio. Si una actualización que proviene de aquí genera más problemas de los que resuelve, no es buena idea que a los usuarios con menos experiencia les entre por que sí en el sistema. Debes elegir tú el que esté activo y disponible, bajo tu propia responsabilidad.

Main Backports: Incluye las versiones más recientes del software incluído en la distribución (por ejemplo, en la distribución se incluye "Programamolón versión1.0", si durante el tiempo de vida de la distro aparece la "Programamolón versión2.0, éste es el repositorio donde lo encontrarás). También está desactivado por defecto, y por los mismos motivos que el anterior.

Contrib y non-Free: Estos dos grupos de repositiorios (con sus divisiones /Updates, /Testing y /Backports), incluyen Software libre no soportado (ni incluído) en la distribución que tienes instalada, aunque empaquetado y listo para usar en el caso de Contrib, y software no-libre que está disponible para descarga de forma pública y gratuita (drivers propietarios, algunos programas, etc.) en el caso de Non-Free.

Nota: Para las versiones de pago de Mandriva (Discovery, Powerpack, etc.) y los miembros del club , existe un último repositorio denominado restricted que contiene software comercial, de pago y todo aquel software de valor añadido que por la naturaleza de su licencia no puede incluirse en un repositorio de acceso público.

Penguin Liberation Front: La zona gris del software

Existe determinado tipo de software que por su naturaleza, funcionalidades, etc. puede conllevar problemas legales a sus usuarios. Ya sea por temas de Propiedad Intelectual, Patentes de Software, Legislaciones absurdas y cosas así. Mandriva como empresa no puede hacer disponibles a sus usuarios dicho software, puesto que entraría en conflicto con muchas y variadas legislaciones territoriales. Pero no todo está perdido. Un proyecto llamado Penguin Liberation Front ha recopilado y empaquetado este software y lo ha agrupado en forma de repositorios en una estructura absolutamente ajena a Mandriva, y podemos usar urpmi, y el gestor de software para utilizar estos repositorios. Podemos usar el Administrador de soportes para ello, y otras opciones como Easy Urpmi. Pero como el honor obliga, en su lugar usaremos un proyecto creado por un compañero de Blogdrake, pealfa. Esta herramienta web se llama Fácildriva.


Miniatura de la captura

Click para ampliar

Como todo lo que estoy explicando aquí, Facildriva es mucho más potente, y sirve para más cosas de las que menciono. Te recomiendo encarecidamente que explores más allá de este tutorial para conocer a fondo esta herramienta, porque convierte la configuración de los repositorios y la descarga de los paquetes más comunes en un plis-plas.

Importante: A partir de aquí se explica cómo configurar fácilmente los repositorios del PLF. Debes conocer la legislación vigente en tu país antes de instalar y usar cualquier software que encuentres en estos repositorios.

Más importante todavía: Debes salir de la herramienta de control de software antes de continuar, puesto que la base de datos de repositorios se bloquea con acceso exclusivo para dicha herramienta, y no podrás usar la línea de comandos mientras la tengas abierta.

Una vez cargada en nuestro navegador Facildriva, nos dirigimos, mediante el menú de la izquierda paqdriva, la sección dedicada a la configuración de repositorios, y en el submenú, seleccionamos "Avanzada".


Miniatura de la captura

Click para ampliar

Vemos que en la parte superior aparecen diversas pestañas. Iremos visitándolas todas una a una y explicaremos qué es lo que vamos a seleccionar y por qué. Empezamos por sistema:


Miniatura de la captura

Click para ampliar

Una página muy sencillita. Mediante los controles, seleccionamos la versión de Mandriva que hemos instalado en nuestro ordenador, y la arquitectura del mismo. En el ejemplo, la versión sería 2007.1 (Spring), y la arquitectura de 32 bits. Pulsamos en el enlace "Guardar cambios" y continuamos, pulsando en la pestaña "Espejo":


Miniatura de la captura

Click para ampliar

Aún más simple que la anterior. Tenemos aquí la lista de mirrors (igual que en la herramienta de control). Como puedes ver, no hay mucho donde elegir, pero ten en cuenta que Facildriva es una herramienta en desarrollo, y que irá evolucionando (a mejor) con el tiempo. Seleccionamos uno de los dos mirrors, y pulsamos en Guardar cambios. Pulsamos en la pestaña "Repositorios" y nos metemos en faena:


Miniatura de la captura

Click para ampliar

Como puedes ver, no sólo puedes seleccionar y configurar los repositorios PLF, también puedes seleccionar los oficiales y otros. Nos centramos en los PLF, guardamos cambios y pulsamos en la pestaña "Opciones":


Miniatura de la captura

Click para ampliar

Esto va a ser lo más "complicado" que vamos a hacer. Disponemos de varias opciones para realizar una vez hayamos finalizado el proceso. De arriba a abajo:

Gestor de descargas: Define el programa mediante el cual, urpmi va a descargar el software que le indiques, ya sea mediante línea de comando o a través del gestor gráfico de software. Curl es el programa por defecto, pero por ahí hay comentarios de un tipo que sabe bastante recomendando wget. Tú mismo.

Sustituir previos: Si tuvieses algún repositorio ya configurado con los mismos nombres, puedes elegir entre que la herramienta facildriva te los sustituya por los suyos o los respete.

Usaré las bases de datos: Cuando configuras un repositorio, puedes elegir entre usar un archivo hdlist o de síntesis para el control de software incluído. Hdlist es un archivo que contiene nombre, versión y bastante información sobre el contenido de cada paquete. Por tanto, su tamaño puede llegar a ser considerable. El archivo de síntesis es mucho más conciso, y su tamaño sensiblemente menor. Al gusto del consumidor.

Actualización del sistema: Facildriva te permite actualizar tu sistema, tanto globalmente (upgrade) como únicamente para corregir bugs y fallos de seguridad (update). También puedes elegir no actualizar y únicamente agregar repositorios.

Cuando hayamos seleccionado las opciones de la página, pulsamos en "Guardar cambios" y pulsamos en la pestaña "Conclusión":


Miniatura de la captura

Click para ampliar

Llegamos a la pantalla final. Facildriva nos informa de que va a generar un script para agregar los repositorios que hemos seleccionado, con las opciones que hemos indicado. También nos muestra lo que debemos hacer para ejecutar el script que generaremos y descargaremos. Pulsamos en Generar script, en el menú de la izquierda y aceptamos la descarga.

Sólo queda abrir una terminal, y obtener permisos de root con el comando su. Nos desplazamos al directorio donde hayamos descargado el script (por ejemplo con "cd /home/(directorio del usuario)/(Directorio de descarga)" y tecleamos:

[root@cabezon Desktop]# sh paqdriva.sh

El script se ejecutará, añadiendo los repositorios PLF a nuestro sistema. Posteriormente, hará una comprobación para saber si tenemos todos los repositorios al día, actualizándolos si fuese el caso, y nos listará el conjunto de repositorios definidos en el sistema.


Miniatura de la captura

Click para ampliar

Salida de la consola del script paqdriva

Si queremos, podemos entrar en el MCC, sección software, y entrar en el adminsitrador de paquetes, para comprobar de forma gráfica que todo ha quedado correctamente configurado.


Miniatura de la captura

Click para ampliar

Bueno, pues ya tenemos configurados los repositorios oficiales de nuestra Mandriva Linux y los proveídos por el Penguin Liberation Front.

En próximas entregas:

Instalando software en Mandriva Linux. Dos clicks y adelante.

Cómo configurar los repositorios PLF con un solo comando

En Mandriva 2008.1 (One, Free y PowerPack) y Cooker se puede configurar los repositorios de PLF con este comando:

urpmi.addmedia --distrib --mirrorlist 'http://plf.zarb.org/mirrors/$RELEASE.$ARCH.list'

Urpmi seleccionará el servidor más cercano a ti automáticamente y se configurará solo. También agregará los PLF Backport pero estarán deshabilitados por defecto. Podrás habilitarlos con edit-urpm-sources.pl o drakrpm-edit-media.

Por $RELEASE cambia tu versión y por $ARCH tu arquitectura. Listas de servidores: http://plf.zarb.org/mirrors/

  1. Mandriva 2008 Spring i586 (32 Bits)
    urpmi.addmedia --distrib --mirrorlist "http://plf.zarb.org/mirrors/2008.1.i586.list"
    
  2. Mandriva 2008 Spring PPC
    urpmi.addmedia --distrib --mirrorlist "http://plf.zarb.org/mirrors/2008.1.ppc.list"
    
  3. Mandriva 2008 Spring x86_64 (64 Bits)
    urpmi.addmedia --distrib --mirrorlist "http://plf.zarb.org/mirrors/2008.1.x86_64.list"
    
  4. Mandriva Cooker i586
    urpmi.addmedia --distrib --mirrorlist "http://plf.zarb.org/mirrors/cooker.i586.list"
    
  5. Mandriva Cooker PPC
    urpmi.addmedia --distrib --mirrorlist "http://plf.zarb.org/mirrors/cooker.ppc.list"	
    
  6. Mandriva Cooker x86_64
    urpmi.addmedia --distrib --mirrorlist "http://plf.zarb.org/mirrors/cooker.x86_64.list"
    

Cómo crear tus propios CDs de RPMs para URPMI

Cuantas veces les a pasado que quieren saber como hacer un disco personalizado de rpms pero no saben como pues no se preocupen mas aqui esta la solucion ;-).

En Mandriva / MDV2005LE y en las versiones de Mandrake / MDK se usa URPMI para administrador de paquetes, el tipo de archivo que usa urpmi es RPM para la instalacion de programas y otras cosas.

Mandriva tiene muchos repositorios en la red que nos proveen de rpms que no vienen en los 3 cds que se descargan debido a su licencia o para no hacer muy grande la distro ademas de que las actualizaciones se hacen por medio de estos repositorios.

para mayor informacion sobre estos se puede visitar estas direcciones:

Nuestra lista de repositorios en Blogdrake
RepositorioDrake

Un sitio que te ayuda a configurar tu base de datos de urpmi
EasyURPMI

Manual de URPMI en general por Willy Walker
Todo lo que siempre quisiste saber sobre URPMI pero que nunca te atreviste a preguntar

pues bien, despues de haberse documentado y configurado nuestro urpmi estamos listos para seguir, cada vez que instalamos algo de los repositorios de urpmi el rpm es descargado a /var/cache/urpmi/rpms/ pero luego de ser instalado se borra entonces se pierde el rpm y si queremos hacer la misma instalacion en otro sistema o en el mismo sistema (por diversas scausas)tendriamos que bajar de nuevo el rpm pero urpmi nos da la opcion de que los rpms no se borren por ejemplo yo necesito el paquete libgnomeui2_0-devel-2.8.1-2mdk.i586 para compilar un programa asi que averiguo si esta en mis cds o en los repositorios con el comando:

[dalfa@E gtubeclock-0.9.1]$ urpmq --sources libgnomeui2_0-devel-2.8.1-2mdk.i586
ftp://mirror.aca.oakland.edu/pub/linux/mandrakelinux/official/2005/i586/media
/main/libgnomeui2_0-devel-2.8.1-2mdk.i586.rpm

ahora que veo donde esta lo descargo e instalo en mi sistema pero con la salvedad que le agrego al comando urpmi el modificador --noclean asi:

[root@E ~]# urpmi --noclean  libgnomeui2_0-devel-2.8.1-2mdk.i586

Para satisfacer las dependencias, se instalarán los 13 paquetes siguientes (13 MB):
indent-2.2.9-4mdk.i586
libGConf2_4-devel-2.8.1-3mdk.i586
libIDL2_0-devel-0.8.5-1mdk.i586
libORBit2_0-devel-2.12.1-3mdk.i586
libbonobo2_0-devel-2.8.1-2mdk.i586
libbonoboui2_0-devel-2.8.1-1mdk.i586
libgnome-keyring0-devel-0.4.2-1mdk.i586
libgnome-vfs2_0-devel-2.8.4-6mdk.i586
libgnome2_0-devel-2.8.1-2mdk.i586
libgnomecanvas2_0-devel-2.8.0-1mdk.i586
libgnomeui2_0-devel-2.8.1-2mdk.i586
libhowl0-devel-0.9.10-1mdk.i586
popt-devel-1.8.3-9mdk.i586

¿Está todo bien? (S/n) s

Por favor, inserte el soporte denominado «Drivers and Plugins Special Club CD4 » en 
el dispositivo [/dev/hdb]

Presione «Intro» cuando esté listo... 

instalando...

libIDL2_0-devel-0.8.5-1mdk.i586.rpm 
libbonobo2_0-devel-2.8.1-2mdk.i586.rpm 
libORBit2_0-devel-2.12.1-3mdk.i586.rpm 
libhowl0-devel-0.9.10-1mdk.i586.rpm 
libgnome2_0-devel-2.8.1-2mdk.i586.rpm 
libGConf2_4-devel-2.8.1-3mdk.i586.rpm 
popt-devel-1.8.3-9mdk.i586.rpm 
libgnome-keyring0-devel-0.4.2-1mdk.i586.rpm  
libgnome-vfs2_0-devel-2.8.4-6mdk.i586.rpm 
indent-2.2.9-4mdk.i586.rpm 
libgnomeui2_0-devel-2.8.1-2mdk.i586.rpm 
libbonoboui2_0-devel-2.8.1-1mdk.i586.rpm 
libgnomecanvas2_0-devel-2.8.0-1mdk.i586.rpm 

desde /var/cache/urpmi/rpms

Preparando...                     #############################################
     1/13: popt-devel             #############################################
     2/13: libhowl0-devel         #############################################
     3/13: libgnomecanvas2_0-devel#############################################
     4/13: indent                 #############################################
     5/13: libgnome-keyring0-devel#############################################
     6/13: libIDL2_0-devel        #############################################
     7/13: libORBit2_0-devel      #############################################
     8/13: libbonobo2_0-devel     #############################################
     9/13: libGConf2_4-devel      #############################################
    10/13: libgnome-vfs2_0-devel  #############################################
    11/13: libgnome2_0-devel      #############################################
    12/13: libbonoboui2_0-devel   #############################################
    13/13: libgnomeui2_0-devel    #############################################

ahora gracias a --noclean si vamos a /var/cache/urpmi/rpms ahi estaran los rpms que acabamos de bajar

[root@E ~]# cd /var/cache/urpmi/rpms/

[root@E rpms]# ls
libIDL2_0-devel-0.8.5-1mdk.i586.rpm 
libbonobo2_0-devel-2.8.1-2mdk.i586.rpm 
libORBit2_0-devel-2.12.1-3mdk.i586.rpm 
libhowl0-devel-0.9.10-1mdk.i586.rpm 
libgnome2_0-devel-2.8.1-2mdk.i586.rpm 
libGConf2_4-devel-2.8.1-3mdk.i586.rpm 
popt-devel-1.8.3-9mdk.i586.rpm 
libgnome-keyring0-devel-0.4.2-1mdk.i586.rpm  
libgnome-vfs2_0-devel-2.8.4-6mdk.i586.rpm 
indent-2.2.9-4mdk.i586.rpm 
libgnomeui2_0-devel-2.8.1-2mdk.i586.rpm 
libbonoboui2_0-devel-2.8.1-1mdk.i586.rpm 
libgnomecanvas2_0-devel-2.8.0-1mdk.i586.rpm 

ahora una pequeña personalizacion (esto es opcional), borramos /var/cache/urpmi/rpms y creamos en nuestra home un directorio donde podremos estar revisando el tamaño hasta que llegue cerca a los 700 megas que es el tamaño de cd normal, despues de borrar el directorio hacemos un enlace simbolico al otro directorio en home

Para crear un repositorio local, en vez de crear un CD, dejamos todos los rpms que queramos en el directorio que queramos y ya esta :)

[root@E /]# pwd 
/

[root@E /]# cd /home/dalfa/descargas/

[root@E descargas]# mkdir mandriva2005le 

[root@E descargas]# ln -s /home/dalfa/descargas/mandriva2005le /var/cache/urpmi/rpms

ahora los rpms que descarguemos e instalemos se quedaran en home :-D, cuando el tamaño del directorio ronde los 700 megas copiamos los rpms a un cd y para mantener el orden de mandriva le ponemos este orden a los directorios:

en la raiz del cd creamos el directorio media dentro de el el directorio main, los cds officiales de mandriva vienen asi:

disco uno -- /mnt/cdrom/media/main
disco dos -- /mnt/cdrom/media/main2
disco tres -- /mnt/cdrom/media/main3

asi que a nuestro main le podriamos poner a, b, c o quizas main-dalfa o algo asi :-) luego copiamos los rpms a ese main para agregar el cd a la base de datos de urpmi se hace con el comando urpmi.addmedia

con hdlist

[root@E ~]# urpmi.addmedia -f dalfacd1 removable://mnt/cdrom/media/main-dalfa1/

con sintesis

[root@E ~]# urpmi.addmedia dalfacd1 removable://mnt/cdrom/media/main-dalfa1/

Para un respositorio local usando hdlist:

[root@E ~]# urpmi.addmedia -f dalfa_local local://home/dalfa/descargas/dalfa_local/

la explicacion del comando:

urpmi.addmedia                 --> agregar repositorio
-f                             --> crear hdlist
dalfacd1                       --> nombre que le quieras dar al repositorio
dalfa_local                    --> nombre que elijo para mi repositorio local
removable://                   --> tipo de repositorio, en nuestro caso removible
                                   osea un CD-ROM aunque esto podria ser tambien un
                                   hdusb o algo asi    
local://                        --> tipo de repositorio, en nuestro caso directorio local
/mnt/cdrom/media/main-dalfa1/   --> lugar de los rpms (el punto de montaje del CD)
/home/dalfa/media/main-dalfa1/  --> lugar de los rpms (el directorio local)

NOTA:
para crear sintesis pues no se pone -f

y ahora ya esta :-D

Cómo editar las fuentes de los repositorios de URPMI

Para editar las fuentes de urpmi fácilmente desde una GUI simplemente ejecuta:

[root@MDV2006 dalfa]# edit-urpm-sources.pl 

o bien:

[root@MDV2006 dalfa]# drakrpm-edit-media

Da lo mismo con qué orden la invoques, ambas llaman a la misma aplicación.

Nueva Forma de Añadir Facilmente los Repositorios Oficiales y PLF

Ahora en Mandriva Linux 2008 Spring es más fácil que nunca añadir los repositorios oficiales y de terceros, en especial los repositorios PLF.

  • Abre una terminal y utiliza la cuenta de root
  • [usuario@localhost]su -
    Contraselña:
    [root@localhost]
  • Añade los repositorios oficiales:
    • Forma corta:
    • [root@localhost]urpmi.addmedia --distrib --mirrorlist '$MIRRORLIST'
    • Forma más larga:
    • [root@localhost]urpmi.addmedia --distrib --mirrorlist http://api.mandriva.com/mirrors/'$RELEASE'.'$ARCH'.list
    • Forma "manual":
    • [root@localhost]urpmi.addmedia --distrib --mirrorlist http://api.mandriva.com/mirrors/2008.1.i586.list

      Nota: Cambie i586 por x86_64 si lo requiere

  • Añadir Repositorios PLF
  • [root@localhost]urpmi.addmedia --distrib --mirrorlist http://plf.zarb.org/mirrors/'$RELEASE'.'$ARCH'.list

Reconocimientos: Esto es un resumen de esta entrada del blog de Fabrice Facorat

Nota: Es posible que al instalar Mandriva 2008 Spring, los repositorios oficiales ya estén configurados

RpmDRAKE / Urpmi: Base de datos de urpmi bloqueada / rpm database locked

¿Que quiere decir ese mensaje? ¿Es un bug de Urpmi? ¿Que debo hacer? Sencillo primero que todo debes saber que Mandriva utiliza Urpmi para instalar los archivos rpm.

Urpmi tiene una base de datos que contiene los nombres de los rpms disponibles, instalados, no instalados y sus dependencias (cada archivo rpm necesita que otros archivos esten presentes en el sistema). Si la base de datos de Urpmi esta rota o es inconsistente no podras usar Urpmi para instalar ya que sin ella no sabe que tienes instalado ni que necesita para instalar un archivo rpm ni de donde tomarlo.

Urpmi solo puede ser ejecutado una vez si hay una instancia de urpmi corriendo esta toma control de la base de datos y no permite a otro proceso de Urpmi usarla ¿Porque? porque puede dar paso a inconsistencias.

Aqui podemos ver un ejemplo de Urpmi en accion:

[root@desktop dalfa]# urpmi -v filelight

getting lock on urpmi

examinando los archivos de síntesis: 

[Main Updates (Official2008.0-1).cz]
[Contrib Updates (Official2008.0-2).cz]
[Non-free Updates (Official2008.0-3).cz]
[Main (Official2008.0-4).cz]
[Main Updates(Official2008.0-5).cz]
[Main Backports (Official2008.0-7).cz]
[Contrib (Official2008.0-8).cz]
[Contrib Updates (Official2008.0-9).cz]
[Contrib Backports (Official2008.0-).cz]
[Non-free (Official2008.0-12).cz]
[Non-free Updates (Official2008.0-3).cz]
[Non-free Backports (Official2008.0-5).cz]
[plf-free_backports.cz]
[plf-free.cz]
[plf-nonfree.cz]
[plf-nonfree_backports.cz]


getting exclusive lock on rpm

found package(s): filelight-1.0-2mdv2008.0.i586

obteniendo archivos rpm desde el soporte  «Contrib (Official2008.0-8)»

ftp://ftp.nara.wide.ad.jp/pub/Linux/Mandrakelinux/official/2008.0/i586/
media/contrib/release/filelight-1.0-2mdv2008.0.i586.rpm

retrieved

ftp://ftp.nara.wide.ad.jp/pub/Linux/Mandrakelinux/official/2008.0/i586/
media/contrib/release/filelight-1.0-2mdv2008.0.i586.rpm

...recuperación hecha

instalando filelight-1.0-2mdv2008.0.i586.rpm desde /var/cache/urpmi/rpms

starting installing packages

transacción creada para instalar sobre / (quitar=0, instalar=0, actualizar=1)

Preparando...

      1/1: filelight             #############################################

removing installed rpms (filelight-1.0-2mdv2008.0.i586.rpm) from /var/cache/urpmi/rpms

unlocking urpmi database

unlocking rpm database

En este ejemplo se instalo filelight, ahora explicare cada paso:

  1. Invocamos Urpmi para instalar el programa, el parametro -v hace que Urpmi nos diga lo que hace.

    [root@desktop dalfa]# urpmi -v filelight
    
  2. Toma control de la base de datos y no permite que otro Urpmi la use.

    getting lock on urpmi
    
  3. Revisa los archivos indices de cada repositorio que se ha configurado en el sistema para determinar, en cual se encuentra el rpm, de donde lo descarga y lo mismo con cada dependencia que sea necesaria. Luego toma control de la base de datos de rpm.
    examinando los archivos de síntesis: 
    
    [Main Updates (Official2008.0-1).cz]
    [Contrib Updates (Official2008.0-2).cz]
    [Non-free Updates (Official2008.0-3).cz]
    [Main (Official2008.0-4).cz]
    [Main Updates(Official2008.0-5).cz]
    [Main Backports (Official2008.0-7).cz]
    [Contrib (Official2008.0-8).cz]
    [Contrib Updates (Official2008.0-9).cz]
    [Contrib Backports (Official2008.0-).cz]
    [Non-free (Official2008.0-12).cz]
    [Non-free Updates (Official2008.0-3).cz]
    [Non-free Backports (Official2008.0-5).cz]
    [plf-free_backports.cz]
    [plf-free.cz]
    [plf-nonfree.cz]
    [plf-nonfree_backports.cz]
    
    getting exclusive lock on rpm
    
  4. Encuentra el archivo e informa en que Repositorio esta.
    found package(s): filelight-1.0-2mdv2008.0.i586
    
    obteniendo archivos rpm desde el soporte  «Contrib (Official2008.0-8)»
    
  5. Informa de la Url de los archivos rpm necesarios.
    ftp://ftp.nara.wide.ad.jp/pub/Linux/Mandrakelinux/official/2008.0/i586/
    media/contrib/release/filelight-1.0-2mdv2008.0.i586.rpm
    
  6. Lo descarga.
    retrieved
    
    ftp://ftp.nara.wide.ad.jp/pub/Linux/Mandrakelinux/official/2008.0/i586/
    media/contrib/release/filelight-1.0-2mdv2008.0.i586.rpm
    
    ...recuperación hecha
    
  7. Inicia la instalacion de los archivos rpm que descargo (Urpmi descarga los archivos al directorio /var/cache/urpmi/rpms)
    instalando filelight-1.0-2mdv2008.0.i586.rpm desde /var/cache/urpmi/rpms
    
  8. Informa sobre las transacciones que hace con cada archivo rpm (quitar, instalar, actualizar) la transaccion que se lleva a cabo tiene un numero 1.
    starting installing packages
    
    transacción creada para instalar sobre / (quitar=0, instalar=0, actualizar=1)
    
    Preparando...
    
          1/1: filelight             #############################################
    
  9. Borra el archivo rpm que descargo, este es el comportamiento por defecto.
    removing installed rpms (filelight-1.0-2mdv2008.0.i586.rpm) from /var/cache/urpmi/rpms
    
  10. Hasta este punto libera la base de datos de urpmi y rpm para que puedan ser usadas. Esto lo hace debido al tipo de proceso que debe hacer para resolver cada dependencia.
    unlocking urpmi database
    
    unlocking rpm database
    

Este proceso se lleva a cabo cada vez que se instala algun archivo rpm, ahora bien notese que los puntos 2, 3 y 12. Las bases de datos de Urpmi y Rpm no pueden ser usadas mientras no se termine la instalacion o durante la actualizacion de los repositorios de Mandriva. Este es el proceso normal.

Cuando se intenta ejecutar una segunda instancia de Urpmi, envia el siguiente mensaje:

[root@desktop dalfa]# urpmi filelight

rpm database locked

base de datos de rpm bloqueada

No se podra instalar hasta que el primer proceso que esta instalando archivos o actualizando repositorios termine, se puede puede forzar la instalacion pero no es recomendable por razones obvias (corrupcion de la base de datos, inconsistencias, mala resolucion de dependencias, etc)

¿Entonces que se debe hacer? Usualmente este mensaje se debe a que se esta ejecutando el icono de MandrivaUpdate en la barra de KDE, GNOME u otro entorno grafico, MandrivaUpdate esta continuamente verificando que los Repositorios este al dia, para poder ver si hay actualizaciones disponibles y para ello ejecuta Urpmi.

Lo que se debe hacer es cerrar MandrivaUpdate si no se desea que siga verificando las actualizaciones, para poder instalar. MandrivaUpdate, rpmdrake y edit-urpm-sources.pl todos usan Urpmi y todos bloquean las Bases de datos al ser utilizados, que que solo una instancia de Urpmi puede estar usando las Bases de datos.

Entonces ahora sabes que este mensaje no es un Bug ni un Problema es el funcionamiento correcto de Urpmi si fuerzas instalaciones o borras los archivos .lock con los cuales se bloquea la base de datos puedes fastidiar tu Urpmi.

Si deseas saber que programa esta usando Urpmi, puedes saberlo con el comando ps, de esta forma:

[root@desktop dalfa]# ps -ufx
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 14750 0.0 0.1 2740 1284 pts/1 S 22:38 0:00 su
root 14754 0.0 0.1 2952 1708 pts/1 S 22:38 0:00 \_ bash
root 14904 0.0 0.0 2480 932 pts/1 R+ 22:46 0:00 \_ ps -ufx

root 14465 0.0 0.1 2740 1288 pts/2 S 22:23 0:00 su
root 14468 0.0 0.1 2960 1732 pts/2 S 22:23 0:00 \_ bash
root 14901 28.5 5.3 62040 53540 pts/2 S+ 22:46 0:02 \_ /usr/bin/perl /usr/sbin/urpmi gimp2-resynthesizer
root 14903 0.1 0.2 4884 2044 pts/2 S+ 22:46 0:00 \_ /usr/bin/curl -q -k --location-trusted -R -f --disable-epsv --connect-timeout 60 --anyauth --stderr - -O ftp://ftp.nara.wide.ad.jp/

El proceso que esta usando Urpmi es el 14901 de esta forma puedes verificar que un proceso de Urpmi ya se esta ejecutando y con el numero del PID podrias matarlo pero hacerlo puede traerte problemas si no termina la tarea que esta haciendo, no lo hagas si no sabes lo que estas haciendo.

Todo lo que siempre quisiste saber sobre URPMI pero nunca te atreviste a preguntar

INDICE

Todo lo que siempre quisiste saber sobre urpmi pero nunca te atreviste a preguntar


Traducido por Willy Walker de:
http://mandriva.vmlinuz.ca/index.php/SysAdmin/Urpmi [Ingles]

La version de DraKeDalfa tiene enlaces a BlogDRAKE

Otros recursos para aprender sobre urpmi

Urpmi es una importante herramienta para todos los usuarios de Mandriva. Tomate tiempo para aprender utilizarlo. Esta página te da una descripción de las opciones más comúnmente usadas. Debajo están otros recursos con una información más detallada sobre urpmi:

  1. http://www.urpmi.org/ : Página de buena documentación de urpmi en Francés y en Inglés.

  2. Páginas man: comprueba las páginas man para todas las opciones. Ésas son la fuente más actualizada de información.

    Junto a una introducción muy básica, esta página intenta cubrir lo qué no se cubre en las dos fuentes antedichas de información. Asumimos que sabes utilizar una página man y que has leído la página antedicha. Una vez que lo hayas hecho así, vuelve a esta página: hay más información sobre problemas no tan obvios que puede no funcionarte.

    No sabes que es una pagina man ejecuta en una terminal:

    man urpmi

Usando urpmi

Lista rápida de tareas comunes



Comando

Que te dice

[root@mdv ~]# urpmq -i xxx.rpm

Información del programa

[root@mdv ~]# urpmq -il xxx.rpm

Información y los archivos que instala

[root@mdv ~]# urpmq --changelog xxx.rpm

changelog (cambios)

[root@mdv ~]# urpmq -R xxx.rpm 

Que requiere este rpm

[root@mdv ~]# urpmf ruta/a/archivo 

Que rpm proporciona este archivo

[root@mdv ~]# rpm -q --whatprovides ruta/a/archivo

similar a urpmf, pero trabaja con ambos hdlist.cz y synthesis.hdlist.cz

[root@mdv ~]# urpmi.update updates 

Actualizaciones disponibles desde sus fuentes de actualización

[root@mdv ~]# urpmc

Actualizaciones disponibles desde todas las fuentes urpmi (puede necesitar urpmi a urpmc primero)

[root@mdv ~]# urpmq --list-media

Lista los repositorios que tienes

[root@mdv ~]# urpme xxxx 

Elimina el rpm (y dependencias)

[root@mdv ~]# urpmi -y xxx 

Muestra todos los rpms que coinciden con esta cadena. (cuidado: si hay solo una coincidencia trata de instalarlo)

[root@mdv ~]# urpmi --keep xxx.rpm 

Instala rpm y sus dependencias, pero si algo ha sido eliminado parará ese hilo

[root@mdv ~]# urpmi --update --auto-select 

Instala actualizaciones disponibles desde tu fuente de actualización

[root@mdv ~]# urpmi --keep --auto --auto-select 

Actualiza todos los paquetes pero no borra nada, solo dice que no funciona

[root@mdv ~]# urpmi --auto-select 

Mira que necesita ser actualizado y no te avisa para que digas si o no

urpmi.addmedia

Aquí es donde todo comienza. Añade un repositorio urpmi usando el comando urpmi.addmedia . Puedes obtener una lista de fuentes urpmi de la página Easy Urpmi . El formato para añadir un nuevo repositorio es como este:

[root@mdv ~]# urpmi.addmedia nombrerepositorio ftp://ftp.site.com/path/to/Mandriva/RPMS 
with ../base/hdlist.cz

Los espejos ftp de Mandriva-Linux contienen:

  • main que contiene la mayoría de los programas.

  • contrib que contiene algunos programas opcionales.

  • update que se usa para corregir problemas de seguridad. Todo el mundo debería tener esta fuente configurada, incluso con una conexión lenta a internet. Al agregar una fuente de la actualización agrega '--update' así el urpmi puede distinguirlo de una fuente regular.

Puedes usar synthesis.hdlist.cz en vez de hdlist.cz si tu ancho de banda es pequeño, pero perderás un montón de funcionalidades... Por ejemplo, urpmf no puede buscar en paquetes no instalados si estás usando synthesis.hdlist.cz.

Recuperando fuentes perdidas (cds).

Si ves que no tienes todos tus CDs listados como fuentes, prueba urpmi.addmedia --distrib cdrom removable://mnt/cdrom con el cd1 en tu unidad Copiando CDs al disco duro y usándolo como fuente.

Si no te gusta hacer juegos malabares con CDs durante sesiones con urpmi y tienes un cierto sitio para guardar, haz un directorio (digamos: /home/CDS/), copia la base/ y directorios de Mandriva/ (recurrentemente) del primer CD de instalación allí. Entonces copia el RPMS2 a los directorios RPMS8 en el directorio previamente creado de Mandriva/. Después de quitar o de inhabilitar la instalación CDs como fuentes haz:

[root@mdv ~]# urpmi.addmedia --distrib HD file://home/CDS

Este no funciona en la versión 10.1 cuando la estructura de directorio en los CDs se ha cambiado. Los directorios de los cuales tienes que copiar todo los RPMS ahora son:

 
      CD1:/media/main
      CD2:/media/main2
      CD3:/Applications
          /Drivers
          /media/commercial
          /media/dkms
          /media/drivers
          /main3
      CD4:/kde3.3
          /media/main4
      CD5:/media/main5
      CD6:/Applications
          /media/main6

Después de que estas copias están completas, puedes hacer (como root)

[root@mdv ~]# cd /home/CDS
[root@mdv ~]# genhdlist --dest $PWD

Entonces usa el gestor de medios en el Centro de Control de Linux Mandriva para configurar tu directorio como fuente. Después de esto, deshabilita todas las entradas de cd. Un método alterno de copiar y montar las imágenes ISO - que también funcionará en versiones más antiguas - lo puedes ver en:

Copy_CDs_to_Hard_Drive [Ingles]
Blogdrake: Nunca usar discos en Mandriva [Español]

Copiando rpms (incluyendo CDs de instalación) a un solo directorio y como fuente

Crear un directorio, por ejemplo: RPMS, para mantener todos los rpms. Copiar un montón de rpms (de instalar cds, por ejemplo):

[root@mdv ~]#  find /INSTALL_CDS/ -name *.rpm -print -exec cp {} /RPMS \;

Si has copiado los CDs instalación al disco duro, o tienes sus imágenes ISO en la unidad de disco, esto puede hecerse en un paso.

En este ejemplo, los CDs fueron montados como /INSTALL_CDS/CD1, /INSTALL_CDS/CD2, etc.

[root@mdv ~]# cd /RPMS

[root@mdv ~]# genhdlist

Esto creará entonces un archivo hdlist.cz y un archivo sythesis.hdlist.cz basado en lo que encuentra en el directorio en el que está. Busca pubkeys para los rpms y cópialos en /RPMS/pubkey. Para ML LE2005, están en CD1/media/media_info :

[root@mdv ~]# mkdir /RPMS/pubkey

[root@mdv ~]# cp /INSTALL_CDS/CD1/media/media_info/pubkey* /RPMS/pubkey/

entonces añade la fuente:

[root@mdv ~]# urpmi.addmedia local_rpms  file://RPMS/ with hdlist.cz

Se ha conocido que esto funciona bien para unos, y no tan bien para otros. Un problema que pasa a unos es que mirando instalables rpms usando rpmdrake, la información bajo el sumario está perdida (Es decir filelist...).

urpmi.update

El comando urpmi.update actualiza la lista de paquetes de un repositorio urpmi. La lista cambia cuando cambia en el servidor, necesitas así actualizar siempre que desees instalar un nuevo paquete de un repositorio cambiable, como ¿¿MandrivaCooker??. Si estás utilizando un repositorio para un lanzamiento, eso normalmente no cambia, no necesitas actualizar la lista siempre que instales algo. Funciona así:

Actualizando por repositorio:

[root@mdv ~]# urpmi.update nombrerepositorio

Actualizando todos de una vez (el argumento -a significa "todos los medios".):

[root@mdv ~]# urpmi.update -a

urpmi.removemedia

Si quieres librarte de un repositorio, este es el comando a usar. Se usa así:

[root@mdv ~]# urpmi.removemedia nombrerepositorio

urpmf

urpmf es, en mi experiencia, lo mejor de las partes desconocidas del sistema de manejo de paquetes urpmi. Con él puedes encontrar cualquier archivo que desees, conocer el paquete al que pertenece, ver una descripción del paquete y un montón de cosas más.

Supón, que quieres compilar un visor de imágenes en tu PC. Descomprimes el tarball, y ejecutas el ./configure. Ahora, el script de configuración se queja de que falta jpeglib.h . (*NOTA: el script de configuración usualmente dice "jpeg library missing", así este ejemplo no es tan relevante) Todo lo que tienes que hacer es urpmf jpeglib.h.

Esto responderá:

[root@mdv ~]#urpmf jpglib.h

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

Así sabes que la cabecera jpeglib es parte de libjpeg62-devel, y ahora puedes instalarlo usando urpmi libjpeg62-devel. Eso te ahorra un montón de tiempo :-)

También, puedes querer instalar un cliente de correo-e, pero no conoces un cliente para Linux. Así que quieres realizar una búsqueda en el sumario de los paquetes, con el término 'mail' y 'client'. El comando urpmf --summary 'mail' -a client devuelve

[root@mdv ~]# urpmf --summary 'mail' -a client

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

La opción --summary se usa para realizar una búsqueda en el sumario, y el -a traduce 'y'.

urpmi

Éste es el comando principal de la administración del paquete, que utilizas para instalar el paquete que deseas y toda lo que dependa de él, así que no tendrás que ir buscándolo todo. Se usa así

[root@mdv ~]# urpmi nombrepaquete

Por ejemplo, crees que Sylpheed es un buen cliente de correo-e porque se describe así mismo como 'lightweight' (ligero). Así que lo instalas con urpmi sylpheed.

Advertencia: haciendo un urpmi nombrepaquete usualmente pero no necesariamente instala la última versión del paquete que está siendo instalado. Urpmi comprobará el número de versión del paquete instalado con el mismo paquete en la fuente urpmi. Los excepciones son cuando una mejora importante de algunos paquetes está disponible bajo un nombre levemente diferente de modo que la vieja y nueva versión sigan estando disponible. Es a veces necesario hacerlo así para propósitos de compatibilidad hacia atrás.

Aquí hay un ejemplo notable de urpmi autoconf no dará como resultado la última versión que está siendo instalada, para la versión más alta bajo el nombre del paquete 2.13. Puedes hacer urpmi autoconf2.5 en su lugar, que te dará la últma 2.5*. Nota que en tu sistema Mandriva, ambas versiones se instalaran: Mandriva elegirá automáticamente la más apropiada. Mira /usr/share/doc/autoconf-2.13/IMPORTANT.README.MDK para más información de este ejemplo particular.

Mira urpmq --fuzzy antes para aprender tales problemas de versiones. Un ejemplo típico del uso de urpmi es actualizar tu sistema con las últimas actualizaciones de seguridad y arreglos de errores.

[root@mdv ~]# urpmi.update updates && urpmi --update --auto-select

Este ejemplo asume que tienes una fuente urpmi urpmi llamada 'updates' que fue declarada para ser 'update source' cuando fue añadida. Porque el contenido de update sources cambia frecuentemente es necesario realizar un urpmi.update para comprobar nuevos paquetes. El carácter && significa que si el primer comando tiene éxito, entonces ejecuta el segundo comando. En la segunda parte del comando el --update significa solo una búsqueda de repositorios declarados como fuentes de actualización, y el --auto-select significa 'buscar las últimas versiones de los paquetes ya instalados'. Urpmi mostrará una lista de paquetes actualizables y te preguntará si estás de acuerdo.

Si añadiste --auto el proceso será automático y todos los paquetes actualizables se actualizarán sin pedir confirmación. Si prefieres usar una GUI prueba la GUI de Actualización de Mandriva en el Centro de Control de Mandriva.

urpme

Este es el comando que desinstala el software de tu sistema. Como urpmi, comprueba las dependencias y te dice si algún software que todavía esté instalado depende de lo que deseas desinstalar, dándote la ocasión de abortar el procedimiento de desinstalación del paquete y los que dependan de él. El uso es:

[root@mdv ~]# urpme nombrepaquete

Por ejemplo, Sylpheed es tan bueno que quieres librarte de Evolution, tu cliente de correo-e anterior. Puedes liberar espacio en tu disco con urpme evolution.

urpmq

el urpmq permite que preguntes a la base de datos del urpmi, así puedes descubrir información sobre los paquetes que has instalado o que puedes instalar así como otras cosas en la base de datos, como qué fuentes de los medios has configurado, como esto:

[root@mdv ~]# urpmq --list-media 

contrib
MandrivaClub
club.comm_i586_9.0
cooker
plf

Advertencia: al usar el urpmq para buscar paquetes, asegúrate de entender la diferencia entre usarla con o sin la opción --fuzzy. Puede ser que falte algunos paquetes que buscabas si no tienes cuidado. Si el urpmq encuentra un paquete con el nombre exacto que preguntaste, volverá este paquete solamente y por defecto, no verás otros paquetes que incluyan el mismo nombre. Por ejemplo:

// Imagina que tu mejor amigo te habló sobre vegastrike, un estupendo juego 3D.

[root@mdv ~]# urpmq vegastrike

vegastrike

// ¡Estupendo! ¡Hay un paquete de Mandriva con este nombre exacto!

// ¡Pero no ves otros paquetes que incluyan este nombre!

// Preguntamos otra vez: nota la 'e' que falta en el final del nombre del paquete.

[root@mdv ~]# urpmq vegastrik

The following packages contain vegastrik:
vegastrike
vegastrike-data
vegastrike-data-music

// Esta vez el resultado de la consulta es muy diferente:

// Vemos no uno, sino tres paquetes.

// Compara la siguiente consulta con las dos anteriores.

[root@mdv ~]# urpmq --fuzzy vegastrike

The following packages contain vegastrike:
vegastrike
vegastrike-data
vegastrike-data-music

// Ve la diferencia que la opción --fuzzy hace.

urpmq --fuzzy es también estupendo ver lo que puede ser la otra versión disponible allí de un paquete: una nueva versión importante no proporciona a veces por completo compatibilidad posterior. Por esta razón la más nueva versión será distribuida bajo nombre levemente diferente del paquete. Ahora, estás seguro de que no falta nada. Por ejemplo:

[root@mdv ~]# urpmi mplayer

// Esto NO instalará la última versión de mplayer.

[root@mdv ~]# urpmq --fuzzy mplayer

The following packages contain mplayer:
kmplayer
mplayer
mplayer-fonts
mplayer-gui
mplayer-skins
mplayer1.0
mplayer1.0-gui
mplayerplugin
transcode
xmms-mplayer

// Ves que: la nueva edición 1.0 está en un paquete separado.

// ¡¡Has sido advertido!!

Instalando un nuevo kernel

Los núcleos nunca se actualizan, ellos están instalados siempre. Nunca verás tu kernel actualizado cuando ejecutas la actualización de Mandriva. Para instalar un nuevo kernel desde la línea de comando:

Obten la lista de actualizaciones disponibles desde tu fuente de actualización

[root@mdv ~]# urpmi.update updates

Lista los kernels disponibles

[root@mdv ~]# urpmq --fuzzy kernel

Método alternativo para listar los kernels disponibles

[root@mdv ~]# urpmi -y kernel


The following packages contain kernel:
kernel-2.4.22.10mdk
kernel-2.4.22.26mdk
kernel-2.6-source
kernel-2.6.0-0.test5.1mdk
kernel-BOOT-2.4.22.10mdk
kernel-enterprise-2.4.22.10mdk
kernel-enterprise-2.4.22.26mdk
kernel-i686-up-4GB-2.4.22.10mdk
kernel-i686-up-4GB-2.4.22.26mdk
kernel-multimedia-2.4.22.21mm.1mdk
kernel-multimedia-2.4.22.26mm.1mdk
kernel-multimedia-smp-2.4.22.21mm.1mdk
kernel-multimedia-smp-2.4.22.26mm.1mdk
kernel-multimedia-source
kernel-secure-2.4.22.10mdk
kernel-secure-2.4.22.26mdk
kernel-smp-2.4.22.10mdk
kernel-smp-2.4.22.26mdk
kernel-smp-2.6.0-0.test5.1mdk
kernel-source

Elige el kernel que quieres instalar

[root@mdv ~]# urpmi kernel-2.4.22.26mdk

El nuevo kernel se instalará en /boot al lado de tu viejos kernel. La configuración del Lilo se ajustará automáticamente en nueva línea para permitirte arrancar el viejo kernel. La línea por defecto de 'linux' arrancará el nuevo kernel. Si lo deseas puedes utilizar el software de instalación Mandriva con el GUI para instalar un nuevo kernel, pero debes ejecutar el GUI de actualización de Mandriva primero para forzar una actualización de la base de datos del urpmi. Notarás que uno de los paquetes disponibles es 'kernel-source' que éste es el código de fuente del núcleo más reciente disponible en la fuente de la actualización (en este ejemplo 2.4.22.26mdk) necesitas solamente instalar el paquete de la fuente del kernel si necesitas compilar cualquier cosa como un controlador de dispositivo. Asegúrate de que has instalado la misma versión del kernel-source que el kernel que tienes funcionando, o bien el controlador que compilas no funcionará.

Usando interface gráfica

  • Los Drakes

    Mandriva ofrece un número de agradables herramientas gráficas para realizar las mismas tareas. Mira las Drakes tools:

    DrakTools [Ingles]

  • urpmi.setup

    urpmi.setup es un GUI para urpmi.addmedia y urpmi.remove, y está basado en la lista de espejos del Penguin Liberation Front [Ingles].

Una cuestión de seguridad

  • Cuales son los elementos de seguridad

    Urpmi debe ser ejecutado como root para instalar paquetes. Una inteligente pero maliciosa persona tiene la posibilidad de engañar a un no tan inteligente usuario de Mandriva (sé que todos los usuarios de Mandriva son listos, pero déjame asumir que hay un usuario incauto de Mandriva en alguna parte, solo para el motivo de la discusión).

    Para instalar un paquete que parece un paquete regular usado por muchos pero que contiene un Caballo de Troya, un cierto código malvado. Una vez instalada, la aplicación puede dejar algún virus, gusano o incluso algún spyware... Hasta ahora, no hay noticia de que este exploit haya ocurrido, pero en unos pocos años, cuando GNU/Linux sea más ampliamente usado como SO, es posible que algunas personas podrían intentar realizar tal hazaña.

    Afortunadamente, fallarán, porque una preocupación sana por seguridad ha sido parte siempre de la comunidad de GNU/Linux. La mayoría de los paquetes son firmados por los embaladores para probar la autenticidad. Mira por favor:

    Al lado de una persona malévola que intenta trampearle en la instalación de su malware, lo cuál es más probable que suceda es que usted intenta instalar algún paquete que obtuviste corrupto, durante descarga de ftp, o debido a un rasguño en tu Cd de instalación... Antes de instalar, el urpmi comprobará la integridad del paquete usando el código hash MD5. Mira la sección relevante abajo para los detalles.

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

    A veces, al usar urpmi, la gente acaba teniendo filas 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
    

    Es confuso conocer cual es el origen del problema: el archivo se obtuvo quizá corrupto durante una actualización o cuando un proceso del urpmi fue matado. La solución es quitar el archivo rpmdb: /var/lib/rpm/Pubkeys e importar las claves públicas otra vez.

    P:Me gustaría ver más información aquí sobre importar claves públicas para urpmi y arreglar problemas con firmas no válidas. No conozco bastante para añadir esta información... F. SimonOosthoek

    R:Mira en: GnuPG párrafo titulado "rpm package validation with GnuPG keys" [Ingles].

  • MD5 Hash

    El MD5 hash es un código dentro del RPM que comprueba si el RPM esté corrupto o no. Si por cualquier razón se corrompe el archivo, el RPM (y el urpmi) rechazarán instalarlo.Aquí hay un ejemplo que me ocurrió recientemente:

    [root@mdv ~]# 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
    

    Fijate en las líneas:

    Invalid signature ((SHA1) DSA sha1 MD5 GPG GPG#70771ff3 NOT OK)
    MD5 digest: BAD Expected(97f2ba5a91888cd3af40f89be6b65868) !
     (393221db35071aa90eaa73816a9a5ba8)=
    The file kdesdk-3.1.3-9mdk.i586.rpm is corrupted and won't be installed.
    

    La solución es eliminar el archivo de /var/cache/urpmi/rpms/ y descargarlo otra vez. Intenta instalarlo otra vez con urpmi. Si todavía no funciona, significa que su espejo tiene un archivo corrupto. Intenta descargarlo manualmente a partir de dos o tres otros espejos y guárdalo en la carpeta /var/cache/urpmi/rpms/ . Quita siempre manualmente el archivo previamente descargado antes de procurar utilizar otro espejo. Entonces instálalo otra vez con urpmi.

    Sucede que el mismo archivo corrupto está reflejado en servidores de cada ftp. Si has intentado varios servidores y te ocurre siempre el mismo problema, ve a un foro de usuario de Mandriva o una lista de correo si otros usuarios tienen el mismo problema con el mismo archivo. Si éste es el caso, un archivo nuevo será lanzado probablemente pronto.

Problemas

  • RPM database locked

    Como superusuario, escribe:

    [root@mdv ~]# killall urpmi urpmi.update urpme rpm urpmi.addmedia
    
    [root@mdv ~]# rm -f /var/lib/urpmi/.LOCK /var/lib/rpm/RPMLOCK
    

    Si eso no desbloquea la base de datos, reiniciar es siempre la solución.

  • Reconstruir la base de datos

    Si la base de datos tiene inconsistencias (una inconsistencia puede conducir a el RPM para decirle que un "paquete está instalado ya" cuando no lo está realmente, y viceversa).

    [root@mdv ~]# rm -rf /var/lib/rpm/__db*
    
    [root@mdv ~]# rpm --rebuilddb
    
  • El error "el medio contrib usa una lista no válida"

    [root@mdv ~]# rm /var/lib/urpmi/list.contrib
    

    Esto parará el error del suceso sin interferir con la instalación del paquete.

Actualizar a la última versión de Mandriva usando urpmi

Urpmi también puede ser usado para actualizar tu sistema a una nueva versión de Mandriva Linux:
UrpmiUpgrade [Ingles]
Blogdrake: Actualizar Mandrakelinux de una versión previa a una nueva [Español]

Trucos usando urpmi

  • Instalar desde url o archivo local

    urpmi puede usarse para instalar archivos locales rpm, y entonces resolver dependencias. Ejemplo, has recompilado o creado foo-1.0-1bar.rpm. Puedes fácilmente usar urpmi ./ foo-1.0-1bar.rpm. Incluso trabaja con http o ftp url ( e incluso con ssh, dado que el rsync está instalado en ambos lados).

  • Obteniendo la lista de dependencias antes de instalar

    Usando el urpmq, puedes encontrar porciones de información con respecto al RPM. Si utilizas el urpmq -d, consigues una lista de todos los RPM que sean necesarios para instalar un software. Prueba urpmq -d bash, para ver cuales son los rpm requeridos. Añadiendo el -m, verás solamente lo no instalado en el sistema en el momento. Y con --sources, obtendrás las fuentes.

    Así pues, con el urpmq -d -m --sources, puedes fácilmente obtener una lista del URL que corresponden a la RPM que necesitas conseguir, absolutamente práctica si careces una buena conexión al Internet.
    Obteniendo información del rpm.

    urpmq -i puede darte información sobre el rpm que vas a instalar. Prueba urpmq -i bash. Solo funciona con hdlists completas, no con synthesis.

Instalando otro software

En lo posible, debes utilizar urpmi para instalar software, usando los paquetes de una fuente correcta del urpmi para tu versión actual de Mandriva. Casi todo que podrías desear está disponible, si tienes fuentes definidas para el contrib y el plf: ¡esto es una manera de evitar mucho dolor! Sin embargo, puedes desear a veces instalar un paquete diferente, o más reciente que el disponible de las fuentes de Mandriva.

La regla de oro es, nunca desvíes la base de datos del paquete RPM, si puedes ayudarle posiblemente, y nunca instales un paquete forzándolo. Si sigues esta regla, aunque el problema puede aparecer, tienes la garantía de nunca tener un sistema en estado inconsistente ¡Si rpm/urpmi no te deja instalar algo, hay generalmente una buena razón!

Compilando de las fuentes

En vez de la familiar trilogía de:

[root@mdv ~]# ./configure
[...]

[root@mdv ~]# make
[...]

[root@mdv ~]# make install
[...]

usa checkinstall en su lugar:

[root@mdv ~]# ./configure
[...]

[root@mdv ~]# make
[...]

[root@mdv ~]# checkinstall
[...]

Entonces conseguirás un RPM que se pueda instalar usando urpmi, y puedes también desinstalarlo cuando lo desees.
Instalando binarios como acrobat reader, o java de sun. Estos programas deben estar en el directorio /usr/local/. Este directorio se piensa para los paquetes oficiosos. Sin embargo, puedes desear agregar algunos symlinks si no están en su $PATH. Ejemplo: /usr/bin/java - /usr/java/j2re1.4.2_04/bin/java

Scripts

Sugiero que guardes los scripts que se escribes en $HOME/bin. (si esto no está en tu $PATH, agregúelo a su bashrc).
El controlador de Nvidia. El controlador binario de nvidia, si lo usas, tiene su propio instalador horrible, que rompe todas las reglas antedichas. ¡El resultado funciona muy bien, pero el proceso no es agradable!

Reconstruyendo RPMS

Si tienes una RPM construido para otro sistema con excepción tuyo propio, es posible reconstruirlo.

Verificación de paquetes RPM

Una herramienta realmente útil para comprobar un sistema roto debes verificar los paquetes contra la base de datos de la RPM.

[root@mdv ~]# rpm -Va archivo.rpm

Esto te dirá que qué paquetes han cambiado desde los instalaste (es decir enumera todas las maneras de las cuales tu sistema es inconsistente con la base de datos del RPM) por ejemplo, si tienes un apagón durante el arranque, algunos archivos pueden llegar a estar corruptos. (o si has hecho algo tonto). Sabiendo esto, puedes reparar tu sistema para estar tan bien como nuevo reinstalando los paquetes referidos. (esto se puede incluso hacer en un sistema no arrancable, si utilizas un CD de rescate para arrancar y repararlo).

Para comprobar un solo paquete usa rpm -V nombrepaquete (el nombre es suficiente, números de versión etc. se pueden omitir). Para verificar en uno o más paquetes la firma apropiada de md5sum, el hash y el gpg:

[root@mdv ~]# rpm -K foo.123.rpm, o rpm -K foo*

Madrugador lento

Si el msec está verificando tu sistema utiliza la base de datos de la RPM, pero eso se hace en 19, y generalmente muy temprano por la mañana. En un PC lento esto puede tomar un tiempo largo. Si ps -e muestra el msec, rpmv, grep y sort, puedes acelerar el rpmdrake/urpmi reiniciando el rpmw, grep y sort a 0. (si deseas tener un pequeño script para iniciar el rpmdrake, pero primero comprueba si el msec está haciendo esto.

Nota: El nombre del autor original se ha perdido, y se ha restaurado por ASAP

-- AnneWilson- 18 Nov 2004

-- DickGevers - 26 Dic 2004 (early bird)

-- DickGevers - 13 Mayo de 2005 (Mandriva nombre cambiado; URLs; algunas correcciones

-- EricHuff - 16 Jul 2005 Copiando rpms incluyendo instalador de CDs)... (Dick G y James S)

-- DickGevers - 16 Jul 2005 (Nota (¹); idea de respaldo para base de datos RPM; ruta en .bash_profile preferido .bashrc; algunos tipos ; rpmbuild desde tarball en 'compilación de fuente';


Copyright
© 2003-2005 by the contributing authors. All material on this
collaboration platform is the property of the contributing authors
and is licensed under a Creative
Commons License
unless otherwise noted.

Ideas,
requests, problems regarding TWiki? Send
feedback

Tomado de:http://www.llermania.com/listas/urpmi_lista_rapida.html

Arreglo de base de datos de urpmi corrupta. Reinstalación de paquetes dañados

hola a todos;

Por azares de la vida y porque ya estoy de vacaciones, ayer se me ocurrió trastear con mi MDV para actualizarlo, principalmente drivers de ATI de plf, y alguna que otra cosilla más...

El caso es que el driver de plf para mi ati radeon no funcionó muy bien a la primera, y tratando de hacer pruebas me cargué el módulo del kernel dkms-ati. Los modulos son como una especie de añadidos al kernel, que pasan en cierto modo a formar parte de él, pero que se pueden instalar y desinstalar (que alguien arroje algo de luz aqui.... :-)).

El sistema dkms (dinamic kernel module support, creo), permite de manera muy cómoda añadir estos módulos al kernel, ya que mediante urpmi puedes bajarte los sources del módulo que te interese (que van a parar a /usr/src/nombre_del_modulo), y luego, reiniciando el sistema, él mismo en el arranque compila el módulo y lo inserta en el kernel. Los ficheros resultantes acaban en /var/lib/dkms/nombre_del_modulo.

Volviendo a lo de la tarjeta gráfica, al no funcionar el driver, investigando, me cargué sin querar la parte del módulo dkms-ati compilada, es decir, la que estaba en /var/lib/... y se presentó el siguiente problema:

El módulo aparecia como instalado, porque no lo había desinstalado con urpmi ni con rpm y estaba en la base de datos de módulos instalados, pero realmente no funcionaba porque había borrado parte a mano sin querer, entonces realicé varias pruebas obteniendo estos resutlados:

- Si se trataba de desinstalar por urpmi o rpm el paquete roto, no se podía porque daba error al faltarle partes que el consideraba tener y no tenia. Esto fallaba siempre, incluso utilizando la opción --force de rpm

-No se dejaba instalar de nuevo, porque, como ya he dicho antes, aparecia como un programa ya instalado.

¿Cómo resolver este entuerto? Esto es un problema que peude pasar a mucha gente que borra algo por error, es sencillamente un programa instalado que está en la base de datos de urpmi (o de rpm, que urpmi funciona sobre rpm), que está corrupto y no se peude arreglar por métodos normales, ya que no se deja desinstalar ni instalar de nuevo.

Hablando con SInner y con DrakeDalfa por el IRC, los dos me han dado un monón de ideas sobre posibles soluciones, pero ha habido una, que por su sencillez y buen funcionamiento es la que voy exponer aqui.

Sinner me ha comentado que efectivamente urpmi funciona con la misma base de datos de rpm, así que, ¿por qué no engañar al sistema y decirle que no tengo el paquete maldito instalado para que me permita instalar de nuevo?
Ejecutando la siguiente instrucción como root:

rpm -e --justdb nombre_del_paquete_rpm

El paquete desaparece de la base de datos de rpm y por ende de la de urpm