* Imagenes de instalación de las versiones estables para Mageia y OpenMandriva.

OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.

Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.

Cómo recuperar urpmi sin reinstalar el sistema

Este escrito quiere ser un tutorial que pueda servir de ayuda a alguno que como yo cometa el error de desinstalar el urpmi. o que por alguna razón le desaparezca.
Por suuesto que esto es un refrito de un hilo que abrí hace poco en el foro, y que voy a tratar de ordenar con algo de criterio. Sin la colaboración de LuisMago, Annubis,Vfmmeo, no hubiera sido posible así que éllos son los auténticos autores del hilo.
Al Tema
a) Copìar este scrit, denominarlo rpm2cpio.sh y darle permiso de ejecución, lo colocas en la carpeta de usuario

 
#!/bin/sh                         

pkg=$1
if [ "$pkg" = "" -o ! -e "$pkg" ]; then
    echo "no package supplied" 1>&2    
   exit 1                              
fi                                     

leadsize=96
o=`expr $leadsize + 8`
set `od -j $o -N 8 -t u1 $pkg`
il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5`
dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9`
# echo "sig il: $il dl: $dl"

sigsize=`expr 8 + 16 \* $il + $dl`
o=`expr $o + $sigsize + \( 8 - \( $sigsize \% 8 \) \) \% 8 + 8`
set `od -j $o -N 8 -t u1 $pkg`
il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5`
dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9`
# echo "hdr il: $il dl: $dl"

hdrsize=`expr 8 + 16 \* $il + $dl`
o=`expr $o + $hdrsize`

comp=`dd if="$pkg" ibs=$o skip=1 count=1 2>/dev/null \
      | dd bs=3 count=1 2>/dev/null`

gz="`echo . | awk '{ printf("%c%c", 0x1f, 0x8b); }'`"
case "$comp" in
    BZh)      dd if="$pkg" ibs=$o skip=1 2>/dev/null | bunzip2 ;;
    "$gz"*)   dd if="$pkg" ibs=$o skip=1 2>/dev/null | gunzip ;;
    # no magic in old lzma format, if unknown we assume that's lzma for now
    *)        dd if="$pkg" ibs=$o skip=1 2>/dev/null | unlzma ;;
    #*)        echo "Unrecognized rpm file: $pkg"; return 1 ;;
esac

No me preguntéis lo que es, funciona. rpm2cpio.sh es fácil de usar. Le das un paquete rpm de parámetro y te pasa los ficheros que contiene a un archivo cpio estándar. Un archivo cpio es como un tar pero con otra estructura.
Vamos a instalar ahora el rpm, lo bajamos de algún mirror o del mismo DVD que tenemos de instalación. Está en el cdroom-i586-media-relase.

rpm-4.4.2.3-20mnb2.i586.rpm

Ahora lo transformas a un archivo cpio. Por ejemplo

$HOME/rpm2cpio.sh rpm-4.4.2.3-20mnb2.i586.rpm >rpm-4.4.2.3-20mnb2.i586.rpm.cpio

Comprobamos la integridad de todos los ficheros.
cpio -i -t <rpm-4.4.2.3-20mnb2.i586.rpm.cpio

Y ahora, y como root, los descomprimes en el sistema:
cd /
cpio -i -d -v <rpm-4.4.2.3-20mnb2.i586.rpm.cpio

Comprobamos las dependencias

$ ldd /bin/rpm
        linux-gate.so.1 =>  (0xffffe000)
        libbeecrypt.so.7 => /usr/lib/libbeecrypt.so.7 (0xb8055000)
        librpm-4.4.so => /usr/lib/librpm-4.4.so (0xb7fc3000)      
        librpmdb-4.4.so => /usr/lib/librpmdb-4.4.so (0xb7f9f000)  
        librpmio-4.4.so => /usr/lib/librpmio-4.4.so (0xb7f18000)  
        libpopt.so.0 => /lib/libpopt.so.0 (0xb7f10000)            
        libbz2.so.1 => /usr/lib/libbz2.so.1 (0xb7eff000)          
        libelf.so.1 => /usr/lib/libelf.so.1 (0xb7ee8000)
        libdb-4.6.so => /usr/lib/libdb-4.6.so (0xb7d97000)
        libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0xb7d4a000)
        libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0xb7bc2000)
        libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0xb7b93000)
        libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0xb7aed000)
        libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0xb7ac5000)
        libcom_err.so.2 => /lib/libcom_err.so.2 (0xb7ac2000)
        libresolv.so.2 => /lib/libresolv.so.2 (0xb7aaf000)
        libm.so.6 => /lib/i686/libm.so.6 (0xb7a89000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7a85000)
        libz.so.1 => /lib/libz.so.1 (0xb7a71000)
        liblzma.so.0 => /usr/lib/liblzma.so.0 (0xb7a35000)
        librt.so.1 => /lib/i686/librt.so.1 (0xb7a2c000)
        libpthread.so.0 => /lib/i686/libpthread.so.0 (0xb7a14000)
        libc.so.6 => /lib/i686/libc.so.6 (0xb78c6000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb77d5000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb77c7000)
        libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0xb7751000)
        libneon.so.27 => /usr/lib/libneon.so.27 (0xb772a000)
        libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0xb7721000)
        /lib/ld-linux.so.2 (0xb80a8000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb75d0000)

Si falta alguna librería, te aparecerá algún error en la salida del listado anterior.
Ahora vamos a comrobar si funciona y está bien.

rpm -i rpm-4.4.2.3-20mnb2.i586.rpm

Una vez hecho ésto necesario para para que quede constancia en la base de datos, te dejará rpm instalado como $DEITY manda y te servirá para comprobar que todo va bien. Si da algún error, habrá que ver qué librería falla.
b)Vamos ahora a instalar todas sus dependencias, hay que instalarlas por el orden que os pongo en el cuadro.

meta-task
libusb0.1_4
libssh2_1
libreadline5
libcurl4
libcares2                                           
aria2                                               
eject                                               
gnupg                                               
perl-Config-IniFiles
perl-XML-LibXML-Common
perl-XML-NamespaceSupport
perl-XML-SAX
perl-XML-Parser
perl-XML-Twig
perl-XML-LibXML
perl-Time-ZoneInfo
perl-Net-DBus
perl-Locale-gettext
perl-MDV-Packdrakeng
perl-MDV-Distribconf
perl-Hal-Cdroms
perl-URPM
genhdlist2                                          
curl
urpmi

Los paquetes están todos en el dvd de mandriva, los buscáis, y les instaláis con el mismo método que hemos empleado antes,uno por uno y por el orden que os he indicado. Alguno me ha fallado pero no me ha impedido seguir adelante.
c) Vamos a cambiar el .bashrc de root pues por alguna razón no contempla los ejecutables. Aquí os dejo el .bashrc de origen en root y que habéis de poner en la carpeta de root, sustituendo al que aparece que es malo.

# .bashrc

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
ENV=$HOME/.bashrc
USERNAME="root"
export USERNAME ENV PATH

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

Es posible que después de ésto os funcione el urpmi, pero a mí me ha dado esta salida.

[root@localhost setupbis]# urpmi drakconf
no se puede acceder al archivo synthesis de «Main», soporte ignorado
no se puede acceder al archivo synthesis de «Main Updates», soporte ignorado
no se puede acceder al archivo synthesis de «Main Backports», soporte ignorado
no se puede acceder al archivo synthesis de «Contrib», soporte ignorado
no se puede acceder al archivo synthesis de «Contrib Updates», soporte ignorado
no se puede acceder al archivo synthesis de «Contrib Backports», soporte ignorado
no se puede acceder al archivo synthesis de «Non-free», soporte ignorado
no se puede acceder al archivo synthesis de «Non-free Updates», soporte ignorado
no se puede acceder al archivo synthesis de «PLF Free», soporte ignorado
no se puede acceder al archivo synthesis de «Non-free Backports», soporte ignorado
no se puede acceder al archivo synthesis de «PLF Free backports», soporte ignorado
no se puede acceder al archivo synthesis de «PLF Non-free», soporte ignorado
no se puede acceder al archivo synthesis de «PLF Non-free backports», soporte ignorado
no se puede acceder al archivo synthesis de «Mandriva Linux - 2009.0 (Powerpack) - Installer (restricted)», soporte ignorado
no se puede acceder al archivo synthesis de «Mandriva Linux - 2009.0 (Powerpack) - Installer», soporte ignorado
no se puede acceder al archivo synthesis de «Mandriva Linux - 2009.0 (Powerpack) - Installer (contrib)», soporte ignorado
no se puede acceder al archivo synthesis de «Mandriva Linux - 2009.0 (Powerpack) - Installer (non-free)», soporte ignorado
no se puede acceder al archivo synthesis de «Restricted i586 7380», soporte ignorado
no se puede acceder al archivo synthesis de «Restricted Updates i586 29001», soporte ignorado
Ningún paquete llamado drakconf

Esto no significa más que los repositorios no están cofigurados, como no tenemos drakconf ésto debemos hacerlo desde easyurpmi, o como cada uno quiera.
Yo lo he hecho con removemedia.urpmi -a, y desde easyurpmi y ha funcionado. Si no os funcina con el comando es debido a alguna dependencia de curl,cuya libraría no corresponde al paquete instalado, al comando le ponéis por delante el flag --wget, y se instalarán lo repositorios.
d) Probamos a instalar el drakconf para facilitar las operaciones. Nos saldrá ésto

[root@localhost ~]# urpmi drakconf
Los siguientes paquetes no pueden instalarse porque dependen de paquetes
más antiguos que los ya instalados:
drakxtools-curses-11.67-1mdv2009.0
drakx-net-text-0.52-1mdv2009.0
drakx-kbd-mouse-x11-0.64-1mdv2009.0
drakx-net-0.52-1mdv2009.0
libdrakx-net-0.52-1mdv2009.0
drakconf-11.9-1mdv2009.0
¿Seguir adelante con la instalación? (S/n)
 

Tanto si decimos si como no, no lo instalará.¿Qué ocurre? Que las dependencias no nos dejan actualizar paquetes con librerías más modernas.
Forzamos la desinstalación de los paquetes que nos impiden instalar el centro de control.

 
urpme --force drakxtools-curses-11.67-1mdv2009.0

Con esto eliminó este paquete y los otros cinco, posteriormente.

  urpmi drakconf

Y finalmente se instaló.
El centro de control está instalado, y funciona, aunque a mí no se me abre ni con el icono, ni desde consola, debido a un problema con la librería de curl, y el GTK, pero aplicando los comandos para abrir los diferentes apartados del centro de control (drakconnect, drakboot --boot, ect) todo se abre perfectamente y funciona sin problemas.
Cuando lo solucione editaré el post y os diré la solución que he encontrado, por si os pasa a vosotros.
Espero que esto le valga a alguien alguna vez, sino fuera así me quedo tránquilo después de dejarlo escrito en este magnífico blogdrake.