Arreglando pkgdb - Userlinux.net

Hay veces que FreeBSD también juega malas pasadas. Este ha sido el caso de una máquina dejada en el olvido. Estoy intentando recuperar su uso y ponerla al día. Me gusta utilizar portupgrade para estas tareas de mantenimiento, con lo que, -después de un make update- al hacer un listado…

Arreglando pkgdb

03.Oct.2007 ~ 0 Comentarios ~ 1486 Lecturas
Hay veces que FreeBSD también juega malas pasadas. Este ha sido el caso de una máquina dejada en el olvido. Estoy intentando recuperar su uso y ponerla al día. Me gusta utilizar portupgrade para estas tareas de mantenimiento, con lo que, -después de un make update- al hacer un listado de los paquetes que necesitaban actualizarse procedo con uno de ellos:
# portupgrade ruby-1.8.5_4,1
[Updating the pkgdb (format:bdb_btree) in /var/db/pkg ... /var/db/pkg/pkgdb.db: unexpected
file type or format -- Invalid argument; rebuild needed] [Rebuilding the pkgdb
(format:bdb_btree) in /var/db/pkg ... [Updating the pkgdb (format:bdb_btree) in /var/db/pkg ... /var/db/pkg/pkgdb.db:
unexpected file type or format -- Invalid argument; rebuild needed]
[Rebuilding the pkgdb (format:bdb_btree) in /var/db/pkg ... /var/db/pkg/pkgdb.db: unexpected file type or format -- Invalid 
argument: Cannot update the pkgdb!]: Cannot update the pkgdb!]
Command failed [exit code 1]: /usr/local/sbin/pkgdb -aFOQ
Vaya, era previsible tener algo roto después de tanto tiempo. A ver si obtenemos más información de lo que ocurre realmente:

# pkgdb -aFOQ
[Updating the pkgdb (format:bdb_btree) in /var/db/pkg ... /var/db/pkg/pkgdb.db: unexpected file type or format -- Invalid argument; rebuild needed] [Rebuilding the pkgdb (format:bdb_btree) in /var/db/pkg ... /var/db/pkg/pkgdb.db: unexpected file type or format -- Invalid argument: Cannot update the pkgdb!]: Cannot update the pkgdb!]
Parece que falla la base de datos de paquetes (pkgdb.db), intentamos forzar su recuperación:
# pkgdb -F
--->  Checking the package registry database
[Updating the pkgdb (format:bdb_btree) in /var/db/pkg ... /var/db/pkg/pkgdb.db: unexpected file type or format -- Invalid argument; rebuild needed] [Rebuilding the pkgdb (format:bdb_btree) in /var/db/pkg ... /var/db/pkg/pkgdb.db: unexpected file type or format -- Invalid argument: Cannot update the pkgdb!]: Cannot update the pkgdb!]
Sin éxito. Pues a lo bruto. Hacemos copia de seguridad de INDEX-6.db y pkgdb.db y procedemos a la actualización manual (make, make install...) de portupgrade, ruby-bdb y db4 (el gestor de base de datos de paquetes):
# mv /usr/ports/INDEX-6.db --> INDEX-6.db.org
# mv /var/db/pkg/pkgdb.db --> pkgdb.db.org
# pkg_delete portupgrade-2.3.1,2
# pkg_delete ruby18-bdb-0.6.2
# pkg_delete ruby18-bdb1-0.2.2
Es posible que nos advierta de dependencias insatisfechas en el borrado de alguno de estos paquetes, no nos preocupamos demasiado puesto que su eliminación solo será temporal. De necesitarlo, forzamos (-f) su desinstalación:
# pkg_delete db41-4.1.25_4
pkg_delete: package 'db41-4.1.25_4' is required by these other packages
and may not be deinstalled:
amavisd-new-2.4.3_1,1
p5-BerkeleyDB-0.31

# pkg_delete -f db41-4.1.25_4
pkg_delete: package 'db41-4.1.25_4' is required by these other packages
and may not be deinstalled (but I'll delete it anyway):
amavisd-new-2.4.3_1,1
p5-BerkeleyDB-0.31
Ahora reinstalamos portupgrade a la antigua usanza y desde cero (make clean para borrar antiguas compilaciones y configuraciones). Seleccionamos BDB4 de nuevo como backend de datos (¡veis como era temporal!). Y por último recomponemos de nuevo la base de datos de paquetes (pkgdb -F):
# cd /usr/ports/ports-mgmt/portupgrade
# make clean
# make config
  [X] BDB4  Use Berkeley DB >=2 as backend 
# make
# make install
# pkgdb -F
Finalmente ya estamos en disposición de volver al proceso de instalación/actualización del software obsoleto:
# portupgrade ruby-1.8.5_4,1
Imagino que habrá múltiples formas - y más simples- de recomponer este error, yo lo he hecho así ;).
Categorías: sistemas

Comentarios


Todavía no hay comentarios

Comentarios


Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 15 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Buscar

Cargando...

Últimos comentarios

  • Juan
  • Marina
  • Francisco
  • fon
  • minWi
  • isra
  • reidrac
  • r0sk
  • Rodrigo Rega
  • minWi
  • r0sk
  • reidrac
  • r0sk
  • deady
  • errece

Moneting

Valor de mi cuenta de Facebook según Moneting
Valor de mi cuenta de Twitter según Moneting

Tagcloud

ssh frases champions userlinux iphone lugo rsidenotes felicidades films nintendo opinion sysadmin 2008 blogsfera vacaciones juegos cake ds debian sidenotes apple web blogs mac mysql cakephp deportes 2007 mundial openbsd barça ubuntu twitter blog humor meme canción alemania_2006 games bsd lucux linux twitt programación cumpleaños software django league bash macosx ps3 rfilms conciertos freebsd seguridad personal hack php bake futbol

Archivo

Social

Enlaces de interés