Bite my shiny metal… fedora
Преди малко един дребен линукс ми спретна едно от най-омразните фокуси – тотално се размаза изневиделица.
Цялата история: наложи се да си играя малко с мрежовите карти на машината и използвах случая да ъпдейтна. Нали се сещате – един бърз
yum update
…да, ама не – когато погледнах конзолата след известно време, видях една купчина грешки – “cpio: MD5 sum mismatch”. Първосигнална реакция – терминиране на процеса ( от мен да знаете – да спреш ъпдейт на каквато и да е ОС по време на инсталация е тъпо ). В последствие се оказа, че в моя конкретен случай не съм навредил кой-знае-колко, просто защото пакетите не са се инсталирали така или иначе. Последващия проблем обаче беше по-сериозен:
rpmdb: /var/lib/rpm/Packages: unsupported hash version: 9 error: cannot open Packages index using db3 - Invalid argument (22)
Триенето на “__db*” от /var/lib/rpm не помогна, не помогнаха и призоваване на тъмни сили, псуване и други инструменти от обичайната практика. Отне ми известно време, преди да се усетя, че след като съм си играл последния път с репозиторитата на yum, не съм оставил само стандартните. В резултат на това “yum update” се е хвърлил да инсталира fedora 11 ( в момента – в бета ). Дотук добре, обаче… rpm на fedora 11 работи с MD5 подписаните пакети по нов начин ( предполагам, свързан с тази статия ). Ако човек чете, преди да пише команди, това не е основен проблем. Ъпгрейда протича с две команди:
yum update rpm yum update
и толкоз. Ако обаче сте в бакиите ( като мен ) вече нямате rpm, няма yum и почвате да се чешете на места, дето не ви сърби, защото цялата инсталация е във някакво странно състояние ( при мен работеше почти всичко, но може и да е частен случай ).
Решението:
Трябва да инсталирате новия rpm и пакетите, от които се нуждае. Започвате от db4-utils-4.7.25-11.fc11.i586.rpm, защото се ползва Berkeley DB version 9, следват rpm-4.7.0-0.beta1.3.fc11.i586.rpm, rpm-libs-4.7.0-0.beta1.3.fc11.i586.rpm и rpm-python-4.7.0-0.beta1.3.fc11.i586.rpm.
За да подкарате и yum са необходими openssl-0.9.8j-8.fc11.i586.rpm, python-2.6-5.fc11.i586.rpm, python-iniparse-0.3.0-2.fc11.noarch.rpm, python-libs-2.6-5.fc11.i586.rpm, python-urlgrabber-3.0.0-12.fc11.noarch.rpm и накрая yum-3.2.21-16.fc11.noarch.rpm и yum-metadata-parser-1.1.2-12.fc11.i586.rpm
Четете внимателно dependencies и използвайте –nodeps при инсталацията при нужда. Ако не можете да инсталирате по никакъв начин – отидете във /var/lib/rpm, изтрийте __db* файловете и преименувайте db-тата ( Basenames, Filemd5s, Providename, Requirename, Sigmd5, Conflictname, Dirnames, Group, Name, Provideversion, Requireversion, Triggername, Packages ), след което изпълнете:
Това ще ви позволи да инсталирате необходимите пакети. В това състояние системата е неизползваема, защото няма идея какво точно е инсталирано. След като инсталирате rpm, вече трябва да можете да върнете обратно db-тата към старите им имена и да доинсталирате yum. Оттам нататък "yum update" върши прекрасна работа и след едно известно време и свалени пакети имате новичка, лъскава fedora 11. Ползвайте със здраве!
Подобни статии:


