[Solución] Library not loaded: /usr/lib/libcrypto.0.9.dylib y SHA1 error.

Leopard (incluso con el update 10.5.1) tiene una versión de una biblioteca que tiene solo la arquitectura PowerPC, por lo cual cuando alguna aplicación la usa se cae sin remedio. El error que van a ver es como este:

————————————-
Dyld Error Message:
Library not loaded: /usr/lib/libcrypto.0.9.dylib
Referenced from: /Library/Frameworks/net.juniper.DSCoreServices.framework/
Versions/5.5.0/net.juniper.DSCoreServices
Reason: no suitable image found.  Did find:
/usr/lib/libcrypto.0.9.dylib: mach-o, but wrong architecture
/usr/lib/libcrypto.0.9.dylib: mach-o, but wrong architecture
————————————-

Solución:

Abrir la terminal.app y ejecutar esta secuencia de comandos:

cd /usr/lib
sudo cp libcrypto.0.9.dylib libcrypto.0.9.dylib.old
sudo cp libssl.0.9.dylib libssl.0.9.dylib.old
sudo ln -sf libcrypto.0.9.7.dylib libcrypto.0.9.dylib
sudo ln -sf libssl.0.9.7.dylib libssl.0.9.dylib

Problema 2)

Si utilizan algún parche hecho con iPatcher en Leopard nunca funciona dando un error: SHA1 error.

Para solucionarlo hay que “Mostrar el contenido del paquete” de la app del parche, ir a la subcarpeta Contents/MacOS y sustituir el binario iPatcher por este:

http://rs206.rapidshare.com/files/66524321/iPatcher.zip

Luego de eso ejecutan el app parcheador y funciona.

Más información.


Si estamos en nuestro CentOS y hacemos un yum update nos puede aparecer el siguiente error:

Package psa-tomcat-configurator needs mod_jk, this is not available

Si no utilizamos tomcat podemos hacer lo siguiente:

rpm -e psa-tomcat-configurator

Y finalmente:

yum update

Si después de actualizar y reiniciar vemos que nuestro apache no inicia automáticamente, haremos un:

/etc/init.d/httpd start

Y veremos que nos aparece el siguiente error:

Iniciando httpd: httpd: Syntax error on line 151 of /etc/httpd/conf/httpd.conf: Cannot load /usr/lib/httpd/modules/mod_jk.so into server: /usr/lib/httpd/modules/mod_jk.so: cannot open shared object file: No such file or directory

Simplemente es que dicho módulo nos está dando problemillas.

Si no utilizamos el conector mod_jk, hacemos esto:

sudo vi /etc/httpd/conf/httpd.conf

Buscamos la línea

Load /usr/lib/httpd/modules/mod_jk.so

Y la comentamos así:

#/usr/lib/httpd/modules/mod_jk.so

Finalmente volvemos a hacer:

/etc/init.d/httpd start

Si nos queremos quedar tranquilos y comprobar que iniciará a partir de ahora siempre bien haremos:

sudo reboot

Y listo :)


Para poder configurar Logrotate en un servidor Linux/Unix después de generar las estadísticas, si uno de los (tantos) problemas que podemos tener a la hora de gestionar nuestro servidor, es que si no controlamos el tamaño de nuestros ficheros de registros (errores y accesos por ejemplo) de nuestros alojamientos web, puede ser un problema.
Para solucionarlo he creado este tutorial con los pasos a seguir y que a mí me ha funcionado. Como todo en la informática habrá muchas formas y colores para conseguir lo mismo y/o mejorar esta.
Lo importante a tener en cuenta, es que tenemos que hacer esta rotación de registros DESPUÉS de haber generado las estadísticas, ya que sino no nos sirve de nada.

Bueno, vamos al grano:

1-. Instalar el programa logrotate:

apt-get install logrotate

2-. Crear o comprobar que tenemos las carpetas y ficheros necesarios:

mkdir -p /var/lib/logrotate/

touch /var/lib/logrotate/status

mkdir -p /etc/logrotate.d/

3-. Crear el fichero logrotate.conf:

vi /etc/logrotate.conf

Copiar el siguiente contenido el fichero logrotate.conf que antes hemos creado:

# ejecutar “man logrotate” para más información

weekly

rotate 4

create

include /etc/logrotate.d


/var/log/wtmp {
missingok
monthly
create 0664 root utmp
rotate 1
}

4-. Crear el fichero de rotación (en mi caso para los logs de acceso y errores):

vi /etc/logrotate.d/rotar_logs

Copiar el siguiente contenido en dicho fichero:

/www/*/logs/access_log {
daily
rotate 90
copytruncate
compress
notifempty
missingok
}
/www/*/logs/error_log {
daily
rotate 90
copytruncate
compress
notifempty
missingok
}

La ruta dependerá del servidor donde nos encontramos y el * lo que indica es que en todas las carpetas de dicha ruta las tenga en cuenta. Por ejemplo:

/www/pepito/logs/access_log

/www/juan/logs/access_log

/www/manuel/logs/access_log

/www/pepito/logs/error_log

/www/juan/logs/error_log

/www/manuel/logs/error_log

5-. Comprobar manualmente que funciona:

/usr/sbin/logrotate -d /etc/logrotate.conf

/usr/sbin/logrotate -f /etc/logrotate.conf

Creo recordar que se hace lo mismo con:

/usr/sbin/logrotate -d -f /etc/logrotate.conf

Si todo va bien y no se muestra ningún error es que todo ha ido bien.

6-. Ahora nos toca programar para que el servidor haga logrotate automáticamente, con ayuda de nuestro amigo crontab:

vi /etc/crontab

Copiar el siguiente contenido:

#Logrotate a las 1 AM

0 01 * * * root /usr/sbin/logrotate /etc/logrotate.conf > /dev/null 2>&1

Finalmente ejecutaremos en el terminal:

/etc/init.d/crond restart

Para que los nuevos cambios se apliquen.

La programación del crontab dependerá de cuando generemos nuestras estadísticas, ya que lo tendremos que programar momentos después de generarlas, ya que sino lógicamente no tendrá los registros de acceso correctamente al generarlas.

Si alguien conoce otros métodos o alguna forma de mejorar el mío, que deje un comentario. Espero que ayude a más de uno :)


Si queremos hacer sleep en Visual Basic y que se produzca una pausa antes de realizar cualquier acción en Visual Basic, simplemente declaramos en nuestro formulario la siguiente API de la siguiente forma:

'Función Api Sleep Para generar una espera o retardo de tiempo
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Y la utilizamos donde queramos de la siguiente forma:

'Hacemos una pausa de 1,5 seg
Sleep 1500