> j'ai essayé, j'obtiens un tas d'erreurs
SVP, quand vous demandez de l'aide, mettez _TOUJOURS_ les messages d'erreur !
> Sinon y a pas besoin de l'option --dbpath, elle n'existe pas en fait.
Elle existe, lis la doc.
Par contre, j'ai dit une petit connerie. Il faut utiliser :
- "rpm -i --root /mnt/sysimage --dbpath /var/lib/rpm ..."
et non
- "rpm -i --root /mnt/sysimage --dbpath /mnt/sys/var/lib/rpm ..."
Quoiqu'il en soit, "--dbpath" est inutile dans ton cas car la valeur par défaut est "/var/lib/rpm".
Exemple :
[root@one i386]# rpm --initdb --root /tmp/sysimage/
[root@one i386]# rpm -i --root /tmp/sysimage/ basesystem-8.0-4.noarch.rpm setup-2.5.36-1.noarch.rpm filesystem-2.3.0-1.i386.rpm
[root@one i386]# rpm -q -a --root /tmp/sysimage/
filesystem-2.3.0-1
setup-2.5.36-1
basesystem-8.0-4
[root@one i386]# ls /tmp/sysimage/var/lib/rpm/
Basenames __db.001 __db.003 Filemd5s Installtid Packages Provideversion Requirename Sha1header Triggername
Conflictname __db.002 Dirnames Group Name Providename Pubkeys Requireversion Sigmd5
Avec dbpath :
[root@one i386]# rm -r -f /tmp/sysimage/*
[root@one i386]# rpm --initdb --root /tmp/sysimage/ --dbpath /var/lib/rpm2
Et cette simple command pour installer rpm "from scratch" (ça marche niveau rpm mais il manque encore quelques trucs.
[root@one i386]# rpm -i --root /tmp/sysimage/ --dbpath /var/lib/rpm2 basesystem-8.0-4.noarch.rpm setup-2.5.36-1.noarch.rpm filesystem-2.3.0-1.i386.rpm rpm-4.3.2-21.i386.rpm bash-3.0-17.i386.rpm glibc-2.3.3-74.i686.rpm glibc-common-2.3.3-74.i386.rpm coreutils-5.2.1-31.i386.rpm beecrypt-3.1.0-6.i386.rpm bzip2-libs-1.0.2-13.i386.rpm mktemp-1.5-10.i386.rpm grep-2.5.1-31.i386.rpm pam-0.77-65.i386.rpm libacl-2.2.23-5.i386.rpm rpm-libs-4.3.2-21.i386.rpm libselinux-1.17.14-1.i386.rpm libattr-2.4.16-3.i386.rpm popt-1.9.1-21.i386.rpm sed-4.1.2-4.i386.rpm glib2-2.4.7-1.i386.rpm db4-4.2.52-6.i386.rpm createrepo-0.4.1-1.noarch.rpm pcre-4.5-3.i386.rpm python-2.3.4-11.i386.rpm rpm-python-4.3.2-21.i386.rpm libgcc-3.4.2-6.fc3.i386.rpm libstdc++-3.4.2-6.fc3.i386.rpm elfutils-libelf-0.96-1.i386.rpm elfutils-0.96-1.i386.rpm less-382-4.i386.rpm info-4.7-5.i386.rpm initscripts-7.93.2-1.i386.rpm zlib-1.2.1.2-1.i386.rpm readline-4.3-13.i386.rpm fedora-release-3-8.i386.rpm ncurses-5.4-13.i386.rpm util-linux-2.12a-16.i386.rpm cracklib-2.7-28.i386.rpm cracklib-dicts-2.7-28.i386.rpm gawk-3.1.3-9.i386.rpm kernel-2.6.9-1.667.i686.rpm mingetty-1.07-3.i386.rpm e2fsprogs-1.35-11.2.i386.rpm SysVinit-2.85-34.i386.rpm words-2-23.noarch.rpm module-init-tools-3.1-0.pre5.3.i386.rpm mkinitrd-4.1.18-2.i386.rpm libsepol-1.1.1-2.i386.rpm net-tools-1.60-37.i386.rpm ethtool-1.8-4.i386.rpm shadow-utils-4.0.3-37.i386.rpm tzdata-2004e-2.noarch.rpm findutils-4.1.20-7.i386.rpm libxml2-python-2.6.14-2.i386.rpm openssl-0.9.7a-40.i686.rpm gzip-1.3.3-13.i386.rpm udev-039-8.FC3.i386.rpm cpio-2.5-7.i386.rpm tar-1.14-4.i386.rpm chkconfig-1.3.11.1-1.i386.rpm lvm2-2.00.25-1.01.i386.rpm libtermcap-2.0.8-39.i386.rpm iptables-1.2.11-3.1.i386.rpm libxml2-2.6.14-2.i386.rpm device-mapper-1.00.19-2.i386.rpm MAKEDEV-3.13-1.i386.rpm hotplug-2004_04_01-6.i386.rpm syslinux-2.11-1.i386.rpm gdbm-1.8.0-24.i386.rpm gmp-4.1.4-3.i386.rpm iputils-20020927-16.i386.rpm hwdata-0.145-1.noarch.rpm mtools-3.9.9-9.i386.rpm usbutils-0.11-6.1.i386.rpm psmisc-21.4-4.i386.rpm sysklogd-1.4.1-22.i386.rpm termcap-5.4-3.noarch.rpm iproute-2.6.9-3.i386.rpm procps-3.2.3-5.i386.rpm krb5-libs-1.3.4-7.i386.rpm
[root@one i386]# ls /tmp/sysimage/var/lib/rpm2/
Basenames __db.001 __db.003 Filemd5s Installtid Packages Provideversion Requirename Sha1header Triggername
Conflictname __db.002 Dirnames Group Name Providename Pubkeys Requireversion Sigmd5
[root@one i386]#
Donc --dbpath existe et marche.
> En ce qui concerne rpm, je savais pas que l'option oldpackage servait à défaire des transactions. merci.
Non, "--oldpackage" ne défait pas une transaction. up2date fait ça.
Selon la doc :
--oldpackage
Permettre qu?une mise à niveau remplace un paquetage par un paquetage plus ancien.
> je vais essayer de reconstruire la base ...
Surtout pas ou en dernier recours.
> à moins que quelqu'un ait une solution plus... douce! 😉
Donner les messages d'erreurs est un début.
Puis donnes la sortie de "df" lorsque tu utilises les CD de secours.