domingo, 1 de febrero de 2009

Compilación de scripts

Con el comando "shc" creado por Francisco Rosales (http://www.datsi.fi.upm.es/~frosal/), podemos generar el código C de los scripts que usen sh, de esta forma si en algún momento no nos interesa dejar "visible" nuestro código en alguna máquina o por ejemplo se nos plantea la necesidad de suidear la tarea realizada por el script, podríamos llegar a usar este comando.

Un ejemplo de utilización:

[MiKasa] # cat prueba.sh
#!/bin/sh
echo "hola"
[MiKasa] # shc -v -r -f prueba.sh
[MiKasa] # ls
prueba.sh (el script original)
prueba.sh.x (el ejecutable generado)
prueba.sh.x.c (el código C generado)
[MiKasa] # ./prueba.sh
hola
[MiKasa] # cc prueba.sh.c

Interesante la siguiente opción:

-e date
Expiration date in dd/mm/yyyy format [none]

-m message
message to display upon expiration ["Please contact your provider"]

De esta forma y de ahora en adelante solo escribiré scripts que se puedan ejecutar en días laborables, ya está bién de trabajar los festivos o que mi trabajo se use los festivos XD!!!

jueves, 12 de junio de 2008

RPMForge para Centos...

Al acabar de instalar una CentOS 5.0 en un servidor de desarrollo, me puse a buscar repositorios extras para ahorrarme unos minutos en ciertas instalaciones. En Fedora puedes instalar Livna y listos, pero no en Centos, a menos que quieras dejar el sistema más inestable que una coctelera con nitroglicerina , así que como solución está el repositorio de la gente de rpmforge.

En la Wiki de CentOS explica paso a paso como hacerlo (con lo que no voy a copiarlos aquí) , con el detalle de la instalación de prioridades en los repositorios. Al configurar las prioridades nos aseguramos que los repositorios con menos prioridad no sobreescriban paquetes instalados desde repositorios más prioritarios, lo que nos ahorra algún que otro conflicto en el sistema.

domingo, 1 de junio de 2008

Problemas de sonido con Flash en Fedora Core 9

La verdad es que no me está convenciendo demasiado la versión de Fedora Core 9 . Después de todo el día con varios problemas "divertidos" como por ejemplo no poder desconectar los altavoces a la hora de conectar los auriculares, el último ha sido que el Macromedia Flash reproducía pero sin sonido. Mirando páginas donde recomendaban hacer de todo,desde poner una vela a Santa Tecla hasta reescribir el 90% del código he encontrado un apunte donde indicaban la solución:
# yum install libflashsupport
Y fin, ni crear archivos de preferencias , ni modificar los módulos a cargar, ni reescribir código! Con esto ya puedo volver a disfrutar de este video:





Y ahora a ver que es lo siguiente que falla...

miércoles, 28 de mayo de 2008

A ver si con este post me acuerdo de una vez por todas como recuperar el password de Mysql, que pese haberlo hecho cientos de veces, siempre tengo que acabar buscándolo para acordarme (y mira que es sencillo y que poca memoria que tengo)...

Primer paso, paramos el mysql,
# /etc/init.d/mysqld stop
Stopping MySQL: [OK]
Segundo paso, ejecutar el mysqld con la opcion --skip-grant-tables
# mysqld --skip-grant-tables
080528 11:29:20 InnoDB: Started; log sequence number 0 92228487
080528 11:29:20 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.0.45' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
Tercer paso, ya podemos entrar en el mysql para cambiar el password
# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.45 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set password=PASSWORD("tonto_quien_lo_lea") where User='root';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 3 Changed: 2 Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye
Cuarto y último paso, reiniciar el mysql
# /etc/init.d/mysql restart
Y con esto ya está!!! Espero que la próxima vez me acuerde y no tenga que acabar recurriendo a esta recetilla...

martes, 27 de mayo de 2008

Configurar VMware bajo Fedore Core 8...

Hace un tiempo me dió por instalar el Vmware ante la necesidad imperante de aprender a darme de ostias con un MSSQL (a veces las personas tienen que hacer cosas que no quieren, pero que no queda más remedio que hacerlas). Así que me puse manos a la obra.

Cual es mi sorpresa que lo primero que se queja es que no puede encontrar el código del kernel, cosa que se soluciona creando un simple enlace o marcando la ruta exacta de donde tiene que ir a buscarlo, así que no le dí más importancia. El problema vino más tarde cuando ya encontró el código del kernel y comenzó a compilar de forma seria, dando el siguiente problema:

CC [M] /tmp/vmware-config0/vmmon-only/linux/driver.o
/tmp/vmware-config0/vmmon-only/linux/driver.c: In function ‘LinuxDriver_Ioctl’:
/tmp/vmware-config0/vmmon-only/linux/driver.c:1659: error: ‘struct mm_struct’ has no member named ‘dumpable’
make[2]: *** [/tmp/vmware-config0/vmmon-only/linux/driver.o] Error 1
make[1]: *** _module_/tmp/vmware-config0/vmmon-only Error 2
Estos son los típicos errores que te quitan las ganas de seguir con el tema, pero como era eso o dedicar una partición a Windows, seguí en mi empeño consultando foros de problemas de Vmware encontrando la siguiente constestación:

http://forum.fedoraforum.org/forum/showthread.php?t=175072

En la solución recomiendan bajarte el parche vmware-any-any-update115.tar.gz, descomprimirlo en el directorio donde tengas en código, en mi caso instalado de rpm /usr/lib/vmware y ejecutes el runme.pl. Funcionó, pero surgió otro problema:

In file included from include/asm/bitops.h:2,
from /tmp/vmware-config3/vmmon-only/./include/vcpuset.h:74,
from /tmp/vmware-config3/vmmon-only/./include/modulecall.h:23,
from /tmp/vmware-config3/vmmon-only/common/vmx86.h:19,
from /tmp/vmware-config3/vmmon-only/common/hostif.h:18,
from /tmp/vmware-config3/vmmon-only/common/cpuid.c:15:
include/asm/bitops_32.h:9:2: error: #error only can be included directly
make[2]: *** [/tmp/vmware-config3/vmmon-only/common/cpuid.o] Error 1
make[1]: *** [_module_/tmp/vmware-config3/vmmon-only] Error 2
La solución a este problema la encontré en el siguiente blog (http://eitchpress.eitchnet.ch/?p=13). El problema se resuelve simplemente corrigiendo la ubicación del include bitops.h, para ello se tiene que descomprimir el fichero vmmon, y modificar el fichero vmmon-only/include/vcpuset.t en la línea 74 cambiando tal como indica en el blog anterior #include “asm/bitops.h” por #include “linux/bitops.h”, con esto hecho volvemos a generar el fichero vmmon.tar con el nuevo contenido del directorio vmmon-only y ya se debería poder ejecutar el vmware-config.pl sin error de compilación. Eso sí, aparecen gran cantidad de warnings pero acaba por compilar ...

miércoles, 23 de abril de 2008

Registrar toda la sesión...

Si algún día, por esas casualidades de la vida te encuentras en la obligación de documentar cualquier instalación/actuación o simplemente sufres igual que yo de una carencia total de memoria a largo plazo, un comando que puede resultar útil es el comando script.

¿Qué es lo que hace este comando?, lo que hace exactamente es registrar toda nuestra sesión bajo un fichero, obteniendo por ejemplo si realizamos una instalacion la secuencia de comandos y su salida.

# script registro
Script started, file is registro
# ... instalación ...
# exit
Script done, file is registro
# cat registro
... instalación ...
#

En este punto tendremos un fichero llamado registro con toda la actividad del terminal del proceso de instalación, que para temas de documentación, didácticos o memorísticos puede ser de gran ayuda.

jueves, 27 de marzo de 2008

tac odnamoc eL

Hay comandos más útiles que una navaja suiza, otros con parametros que a primera vista no parecen tan útiles pero que en determinados casos nos van que ni clavaooos y por último tenemos algunos que no se sabe si son productos del aburrimiento o de alguna resaca. Este es el caso del comando tac.

Y es que si con un cat mostramos el fichero, un tac lo mostramos con orden inverso (para quien no haya notado la coña). En resumen, un tac de un fichero nos comenzaría a mostrar por la última línea... Curioso el tema...