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.
- Blog de vafe
- Entra a tu cuenta o crea una para poder comentar.