APT con segfault

Ya tení­a tiempo que no actualizaba el Kubuntu que tengo instalado en mi casa, y esto debido a que de pronto “apt” dejó de funcionar.

Primero, apt marcaba un extraño error al terminar de descargar:

Configurando python2.4-minimal (2.4.4~c1-0ubuntu1) …
Linking and byte-compiling packages for runtime python2.4…
Traceback (most recent call last):
 
File “/usr/bin/pycentral”, line 1329, in ?
    main()
  File “/usr/bin/pycentral”, line 1323, in main
    rv = action.run(global_options)
  File “/usr/bin/pycentral”, line 958, in run
    requested = list(pyversions.requested_versions(vstring, version_only=True))
  File “/usr/share/pycentral-data/pyversions.py”, line 128, in requested_versions
    raise ValueError, ’empty set of versions’
ValueError: empty set of versions
dpkg: error al procesar python2.4-minimal (–configure):
 
el subproceso post-installation script devolvió el código de salida de error 1
Se encontraron errores al procesar:
 python2.4-minimal

Después el error desapareció, solo para dar paso a un espantoso “Segmentation fault”. No importa si hací­a un apt-get update o un apt-cache search.

De entrada, lo atribuí­ al hecho de estar usando una versión “inestable” de Kubuntu, la Edgy Eft. De hecho aún no se si habrá sido ese el problema.

Pero bueno… dado que ya probé en el mismo equipo la moderna distro Fedora Core Pre6, y dado que no pude observar mejoras considerables con respecto a Kubuntu, decidí­ seguir haciendo la prueba con esa distro.

Para lo último (lo cual obviamente tendrí­a que ser resuelto primero), encontré un enlace. Todo se resume en borrar la base de datos de apt, y listo. En efecto, funcionó, pero regresé al error anterior: falla en python. Dado que el error parecí­a bastante común, no encontré gran cosa en el internee. Así­ que sin remedio, tuve que recurrir a mis viejas prácticas de juaquer. El último error que APT mostraba (cuando dpkg intentaba compilar y reconfigurar el paquete) era:

  File “/usr/share/pycentral-data/pyversions.py”, line 128, in requested_versions
    raise ValueError, ’empty set of versions’

áAjá! pyversions.py, lí­nea 128… áUmm! Interesante… Abro el archivo en la lí­nea 128 y qué me encuentro:

125     else:
126         raise ValueError, ‘error in version string’
127     if not versions:
128         raise ValueError, ’empty set of versions’

Oh… entonces lanza la excepción (el error, pues) ya que la variable “versions” está vací­a. Pues bien. Hagamos el parche:

125     else:
126         raise ValueError, ‘error in version string’
127     versions = supported
128     if not versions:
129         raise ValueError, ’empty set of versions’

Lí­nea 127, asignamos “supported” a la variable “versions”. Un apt-get upgrade, y voilá! El sistema actualizándose sin problemas.

Ya sé, ya sé… No faltará quien diga: “qué porquerí­a es esa???”, refiriéndose obviamente al “parche”. No importa… ¿Funcionó? Si. ¿Afectará? No lo sé. Ya platicaré cuando se de.

Abur! 

Leave a Reply

Your email address will not be published. Required fields are marked *