Páginas: Anterior 1 2 3 4 5 6 7 8 ...33 34 35 Siguiente

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

29 08 2010

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:

1
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:

1
2
3
4
5
6
7
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:

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

O también:

1
$ 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:

1
$ sudo apt-get -o dir::ignore-files-silently::="\.save$" update
Delicious
VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
Comparte, descargalo en pdf, imprimelo o enviaselo a un amigo!
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • Meneame
  • PDF
  • RSS
  • StumbleUpon
  • Technorati


Solucionar error pdo_sqlite.so: undefined symbol: sqlite3_libversion

5 08 2010

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

1
2
[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:

1
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.

Delicious
VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
Comparte, descargalo en pdf, imprimelo o enviaselo a un amigo!
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • Meneame
  • PDF
  • RSS
  • StumbleUpon
  • Technorati


Solucionar Warning: session_start() [function.session-start]: open(/tmp/sess_404b65f5a6f22fd57694ce1442af5769, O_RDWR) failed: Permission denied (13)

9 07 2010

El error completo sera algo como:

PHP Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp/) in Unknown on line 0
PHP Warning: Unknown(): open(/tmp/sess_404b65f5a6f22fd57694ce1442af5769, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: open(/tmp/sess_404b65f5a6f22fd57694ce1442af5769, O_RDWR) failed: No such file or directory (2)

Las sesiones en php, son simplemente una cookie, pero que se almacena en servidor. Y una cookie es simplemente un fichero de texto con un hash y variables con datos.

Este error puede darse en el session_start() y puede darse que al no asignar un nombre especifico a la sesión, se use un genérico, que tiene la forma sess_(un hash) y se use un fichero de sesión aleatorio que haya dado colisión con otro que haya sido creado por otro usuario que lo este usando también sin establecer nombre.

¿y porque se da el error? Porque estas viendo una página “cacheada” en tu navegador y el servidor tiene asignada esa cookie-sesion a otro usuario, por eso de dice que no tienes permisos. La solución seria borrar la cache, pero aunque es un apaño, la culpa no la tiene el usuario, esta en el servidor por haber asignado esa cookie-session a otro usuario previamente no haber liberado la cookie-session.

Pero tampoco podemos echarle toda la culpa al servidor si nosotros lo programamos de tal modo.

En algún comentario en ingles podéis leer ”in the belief that somehow the two people were getting the same ID and hence temp file”.

Yo tengo bastante experiencia en php y nunca se me había dado este error y ya de por sí me resultaba muy raro. Pero esto es un problema que esta generando PHP con phpsuexec.

Buscando en google, aparentemente no hay soluciones, pero si que había reportes de bug en el bugtracker de PHP:
http://bugs.php.net/bug.php?id=19022 (BUG PADRE)
Otros bugs relacionados:
http://bugs.php.net/bug.php?id=43990
http://bugs.php.net/bug.php?id=5370

Si observas las respuestas de google de otros hosting, dan como solución  “contrata a un mejor sysadmin”, “TU estas haciendo algo mal”, “comprueba tu configuración”, “Asked sys admin to fix it” , pero no dicen porque, ni como arreglarlo, ni dan soluciones, eso es para evitar decir que NO tienen solución,  en Quijost no engañamos a nuestros usuarios de tal modo y explicamos lo hechos de forma honesta.

Las únicas soluciones que se dan son:

1 – Reiniciar la máquina (MALA solución: tratándose de servidores en producción no se puede jugar con el uptime y más si se da espontánea y periódicamente)

2 – Eliminar todas las sesiones con: rm -rf /tmp/sess_* (MEDIA solución: no requiere reinicio, pero hace perder el logueo a todos los usuarios que estén en el servidor para arreglar al resto, aparte habría que ejecutarla cada vez que da este error que puede ser en cualquier momento y sin posibilidad de detectar cuando)

3 – Modificar el directorio donde se guardan las sesiones a uno del usuario para así que no den problemas de permisos:
ini_set('session.save_handler', 'files');
O bien un directorio del usuario (creando un directorio tmp en el directorio del usuario):
ini_set('session.save_path', '/home/usuario/tmp');

Documentacion:
session_save_path() www.php.net/session_save_path

Podría valer pero no es la mejor solución.

La solución más correcta y hasta que los señores de PHP se dignen a arreglar este BUG que posiblemente afecte a millones de sitios web de php sería la siguiente:

1 – Establecer la cookie-sesion en un directorio de tu propio usuario, es decir dentro de tu dominio, por ejemplo:

ini_set('session_save_path', '/home/tuusuario/tmp');

2 – Asignar un nombre a la sesión:

session_name('tuusuario');

3 – Poner este trozo de código para evitar que te de error en el session_start():

if(@session_start() == false){session_destroy();session_start();}

Lo que hacemos es borrar la sesión actual si da error y generar otra, sino da error simplemente la iniciamos (esta más cool utilizando un if ternario).

Por lo tanto, resumiendo, en vez de poner sólo session_start(), para solucionar el bug, tendrías que poner lo siguiente (claro esta, poniendo tu usuario):
ini_set('session_save_path', '/home/tuusuario/tmp');
session_name('tuusuario');
if(@session_start() == false){session_destroy();session_start();}

Delicious
VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
Comparte, descargalo en pdf, imprimelo o enviaselo a un amigo!
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • Meneame
  • PDF
  • RSS
  • StumbleUpon
  • Technorati


Páginas: Anterior 1 2 3 4 5 6 7 8 ...33 34 35 Siguiente