Solucionar error: N: Ignoring file ‘somefile.list.save’ in directory ‘/etc/apt/sources.list.d/’ as it has an invalid filename extension en Ubuntu Maverick 10.10

Posiblemente si usas Ubuntu Maverick 10.10, que mientras escribo estas líneas se encuentra en la Alpha 3, te encontrarás con errores similares a este cuando actualizas tus paquetes o repositorios:

N: Ignoring file 'loneowais-ppa-maverick.list.save' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension

El error se da en los archivos de PPA en todos los programas que usen apt.

Existe un bug en Launchpad reportado al respecto: https://bugs.launchpad.net/ubuntu/+source/apt/+bug/611925

Aunque dicho error se da por un comportamiento intencional que han añadido los desarrolladores. Como puede verse en el log del binario .deb de apt:

apt (0.7.26~exp8) experimental; urgency=low

 [ David Kalnischkies ]
...
* apt-pkg/contrib/fileutl.cc:
- show notice about ignored file instead of being always silent
- add a Dir::Ignore-Files-Silently list option to control the notice

Esto ocurre, porque el directorio sources.list.d supuestamente no debe contener archivos con las extensiones .save y .distupgrade.

Probablemente hayan decidido hacer esto, para forzar a siga algún estándar en la forma en la que se guardan los PPA o unificar los diferentes modos que existan.

La cuestión es que para el usuario final, resultan molestos estos mensajes a la hora de actualizar y en mi opinión deberían haber hecho el cambio de forma menos drástica o avisando con tiempo del nuevo formato a utilizar.

Pero por suerte, podemos silenciar o ignorar estos mensajes escribiendo el siguiente comando en el terminal:

$ sudo sh -c "echo 'Dir::Ignore-Files-Silently:: \"(.save|.distupgrade)$\";' > /etc/apt/apt.conf.d/99ignoresave"

O también:

$ echo "Dir::Ignore-Files-Silently:: \"\.save$\";" | sudo tee /etc/apt/apt.conf.d/99ignoresavefiles

Y si no quieres modificar ningún fichero y solo ignorarlo para la ejecución actual de apt:

$ sudo apt-get -o dir::ignore-files-silently::="\.save$" update

Solucionar error pdo_sqlite.so: undefined symbol: sqlite3_libversion

Si utilizas Cpanel y Centos 5.5 o cualquier sistema similar donde encuentres este error en tus error_log de apache:

[04-Aug-2010 10:32:08] PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20090626/pdo_sqlite.so'
- /usr/local/lib/php/extensions/no-debug-non-zts-20090626/pdo_sqlite.so: undefined symbol: sqlite3_libversion in Unknown on line 0

Puedes llegar a saturarte el disco de mensajes de error y para evitar dicho error y solucionar el problema, simplemente debes desactivar la extensión pdo_sqlite.so de tu php.ini global y puedes hacerlo fácilmente con el siguiente comando:

sudo sed -i 's/extension=pdo_sqlite.so/;extension=pdo_sqlite.so/g' /usr/local/lib/php.ini

Esta es una solución para evitar el problema, pero la solución buena sería conseguir detectar el error que lo produce y solucionar para que no se tenga que desactivar dicha extensión.

Si conoces como solucionarlo bien, me encantaría leerlo en los comentarios.