HowTo: Cómo instalar OilRush en Fedora

Si, como yo, ya compraste el OilRush y bajaste un pre-release (versión 0.6 o posterior) he aquí cómo hacerlo jalar:

Por lo pronto, yo lo hice jalar con:

[renich@introdesk OilRush-0.6]$ lspci | grep VGA
01:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 9400 GT] (rev a1)


# Instala RPMFusion
su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm'

# Instala nvidia
su -c 'yum install kmod-nvidia'

# Configura nvidia
su -c 'nvidia-xconfig'

# Re-empieza tu compu
su -c 'shutdown -Fr now'

# Descarga el juego
echo "descarga el juego desde tu cuenta"

# Descomprímelo
chmod 700 OilRush-0.6.run; cd OilRush-0.6

# Échalo a jalar
./x64_1024x768_windowed.sh

Es obvio que, si tienes la resolución de 1920 x 1080, pues corre ese…

El juego está bien chido; las gráficas poca madre y la música de primera… además, es de los pocos juegos comerciales nativo para GNU & Linux. Vamos apoyandolos, eh?!

p.d. no olvides leer la hoja de requerimientos de ellos. Necesitas openal y ese rollo.

# Juego

http://oilrush-game.com/

CloudSigma abre en USA!

Muy buenas noticias, mi computín amigo! CloudSigma abrirá en USA y, ésto, significa:

- Menos latencia
- Mayor cobertura
- Más clientes, más dinero, mejor desarrollo y, por tanto, más features!

Y, qué tienen de bonito? Usan KVM/Qemu! Si sabes de virutalización, sabes que ésto es lo que rifa y soporta el kernel oficialmente!… (si, ya sé que aceptaron a los de Xen otra vez… pero es puro paro)

Además, está re-barato, el servicio está de poca madre y puedo instalar cualquier distro que quiera!… y chafi-windows también, para los tontos!

Me dá gusto por mis compas de CloudSigma! Ojalá y les vaya muy bien. Además, son donadores oficiales de LinuxCabal, A.C.; mi LUG! ;)

# referencia

http://www.nytimes.com/external/gigaom/2011/02/18/18gigaom-how-swiss-import-cloudsigma-plans-to-compete-in-i-94276.html

HowTo: Como instalar Zend Framework cualquier distro

Aparte de los paquetes de php-ZendFramework-* en Fedora, podemos instalar ZF desde pear; obviamente, sin instalar los php-ZendFramework-*

El código es el siguiente:

# Te haces root
su -

# descubres el canal
pear channel-discover pear.zfcampus.org

# instalas zf
pear install zfcampus/zf

Te instala ZF más actual que el paquete. Incluye zf tool instalado en /usr/bin y todo funciona, al parecer, de maravilla.

100% recomendado!

HowTo: Cómo pegar en Vim sin hacer un desmadre de indentación

Alguna vez has usado vim y usado autoindent y smartindent? Si; es muy común hacerlo. El único problema es que, cuando pegas cosas, se hace un desmadre!!

Bueno, hay una solución: modo de “paste” de vim.

Para activarlo, solo agrega lo siguiente a tu .vimrc:

set pastetoggle=<f12>

Puedes cambiar al F12 por la F que más te guste.

Así, cuando quieras pegar algo, pones a vim en funcionalidad paste, pegas (no olvides ponerlo en insert mode antes si lo que quieres pegar está en el clipboard de gnome) y listo!

recuerda que tu .vimrc va en ~/ y debe llevar un . antes; es un archivo de configuración y va oculto:

ls -al ~/.vimrc
-rw-r--r--. 1 renich renich 154 Feb 3 16:01 /home/renich/.vimrc

Ok, bueno, ojalá y te sirva de algo. Te paso un link a mi .vimrc por si se lo quieres forkear:
http://downloads.woralelandia.com/src/vim/vimrc

# referencia
http://mr-euro.com/vim-paste-indent-problems/

HowTo: Cómo apager SELinux desde la CLI? (momentaneamente)

Recientemente, me puse a configurar cobbler y, al parecer, no se lleva bien (aún; estamos trabajando) con SELinux.

Para importar una imagen, necesito apagar SELinux, por el momento y no permanentemente. Para hacer ésto:
su -c 'setenforce Permissive'

o

su -c 'setenforce 0'

Estoy totalmente en contra de apagar SELinux permanentemente o por cualquier razón. El software debe irse adaptando a las condiciones de seguridad avanzada.

HowTo: Cómo usar sed para actualizar mis zonas de DNS

Hoy, se me ocurrió que sería buena idea actualizar 120 zonas de dns que tengo.

Quería asegurarme de que mis DNS esclavos tuvieran la última versión de mis zonas. Así que, sed me ayudó:

sed -i s/[[:digit:]]\\{10\\}/2011012000/g /var/named/*.db

Éste código buscó las cadenas de dígitos de 10 caracteres y los substituyó por otra cadena de 10 caracteres.

Problema resuleto.

Una explicación breve:

[[:digit:]] representa los dígitos del 0-9
\{10} le dice que sean 10 instancias de dígitos del 0-9
hay dobles \ porque son necesarias en bash para escapar los \. El código de la expresión regular original sería:

s/[:digit:]\{10\}/2011012000/g

Pero, como bash necesita que escape los \

s/[[:digit:]]\\{10\\}/2011012000/g

La neta, lo de la [[ no lo entiendo… pero así jaló. Habrá que esperar comentarios de los aborígenes wwwnautas.

HowTo: Cómo resetear bacula?

Hay una bronca; resetear bacula! Es una weba. Hay que apagar como mil servicios y borrar unas madres y bla bla bla…

Ahí les va un script, para webones como yo! Ponlo en /usr/local/libexec/bacula y lo corres con su -c ‘/usr/local/libexec/bacula/resetBacula’

#!/bin/bash

# check if it's the authorized user; which is the local user.
if [ $(id -u) != 0 ]; then
echo -e "Córrelo como root! O, también, puedes usar su -c 'resetBacula'"
exit 1
fi

# stop bacula
echo "Stopping bacula..."
service bacula-dir stop
service bacula-fd stop
service bacula-sd stop

# reset DB
echo -e "\nReseting DB..."
/usr/libexec/bacula/drop_mysql_database
/usr/libexec/bacula/create_mysql_database
/usr/libexec/bacula/make_mysql_tables

# remove state and bsr files
echo -e "\nRemoving state and bsr files..."
rm -f /var/spool/bacula/*.{bsr,state}

# remove backup volumes
echo -e "\nRemoving volume files..."
rm -f /var/backup/bacula/*

# restart bacula
echo -e "\nRestarting bacula..."
service bacula-sd start
service bacula-fd start
service bacula-dir start

exit 0

Permisos recomendados:
su -c ‘chmod 1700 /usr/local/libexec/bacula/resetBacula’

GPLv3 all the way, my friends! Úsenlo y háganle lo que se les inche…

Raphaël: Framework para SVG en JavaScript

No me gusta el javascript… es una porquería…

Dicho ésto, me encontré un magnífico framework para manipular SVG de manera sencilla.

Me gusta mucho la idea de que funciona en varios navegadores como: Firefox 3.0+, Safari 3.0+, Chrome 5.0+, Opera 9.5+ e Internet Explorer 6.0+.

Además, los demos están geniales! Ya hasta me dieron ganas de usarlo.

Otra cosa increible: no necesitas ningún tipo de plugin. Además, pudiéramos hacer cosas como mapas interactivos, y cosas de esas con ésta cosa.

Se me ocurre que pudiéramos vectorizar (con Inkscape) el mapa de México a gran detalle, no crees?

Lo bonito de usar vectores es que no se pixelea ni madres. Además, pudiéra generar una GUI excelente para mi sitio… si encuentro la creatividad.

Me avisas si la encontraste: http://raphaeljs.com/

HowTo: WHMCS y SELinux

Al parecer, WHMCS necesita usar whois…

Bueno, para que no tengas que apagar SELinux, solo:

su -c 'setsebool -P httpd_can_network_connect on'

Ésto permitirá, a apache, conectarse al puerto 43.

Nota sobre iptables

En Fedora, todas las conexiones iniciadas desde el servidor a cualquier puerto, están permitidas. No hay que agregar ninguna regla.

He visto muchos posts pidiéndote que abras el puerto 43… ésto es ridículo. La gente permite la entrada del puerto y, lo que importa; en este caso, es la salida de puerto; la cual ya está permitida por default.

HowTo: Micro-intro a SELinux

He visto, para mi pesar, muchas soluciones de “chmod 777 / -R” y estupideces por el estilo.

La gran mayoría de éstos vienen de usuarios que no saben ni qué onda; generalmente ubunteros inexpertos y no propensos a leer y a saber cómo están las cosas.

Te pido que no empieces con estas soluciones. En Fedora, seguido, debemos checar si SELinux no está impidiéndonos hacer algo y asignar la etiqueta necesaria para poder hacerlo.

SELinux nos impide hacer cosas cuando las hacemos mal; por ejemplo, poner archivos de samba en /home/samba o una página web en /home/miuser/paginas

Te recuerdo que existe el Filesystem Hierarchy Standard o HFS. Búscalo y entérate de los mejores lugares para poner las cosas.

SELinux en Fedora viene pre-configurado para permitir acceso de los daemonios solo en las carpetas reglamentadas por el FHS; por ejemplo:

Las páginas web van en /var/www
Los respaldos en /var/backup
Las DBs en /var/lib/
Los archivos de usuario en /home
Las librerías en /usr/lib, /usr/lib64, /lib, /usr/local/lib, etc.

Dicho ésto, algunas veces debes re-etiquetar algunas cosas por motivos ajenos a la distribución. Un ejemplo de esto es cuando instalas o desarrollas una aplicación web que necesita escribir en algún directorio o algún archivo. Para esto, existe una etiqueta: httpd_sys_content_rw_t; la cual permite, a apache, que escriba sobre un directorio y/o archivo específico.

Para configurar esto de manera temporal; mientras pruebas, usa:

su -c 'chcon httpd_sys_content_rw_t /var/www/websites/miapp/tmp'

Pero, cuando re-etiquetes, perderás esta etiqueta si no creas la política con semanage:

su -c 'semanage fcontext -a -t httpd_sys_content_rw_t /var/www/websites/miapp/tmp'

Una vez hecho ésto, solo haz un

su -c 'restorecon -R /var/www/websites/miapp/tmp'

para que se re-etiqueten los archivos debajo de ese directorio.

Para remover tu política, solo:

su -c 'semanage fcontext -d /var/www/websites/miapp/tmp'

Y no olvides re-etiquetar.

Si aprendes algo del FHS, no tendrás tantos problemas con SELinux. Y, por cierto, NO LO APAGUES! APRÉNDELO!

Debes leer mucho más al respecto de esto si lo quieres usar. Recuerda que SELinux es otra capa de protección/regulación. Debes tomar en cuenta el sistema de permisos de GNU & Linux y, además, los permisos avanzados.

# Páginas de referencia

http://www.pathname.com/fhs/

http://docs.fedoraproject.org/en-US/Fedora/13/html/Security-Enhanced_Linux

http://en.wikipedia.org/wiki/Filesystem_permissions

http://en.wikipedia.org/wiki/Setuid

http://en.wikipedia.org/wiki/Sticky_bit

http://en.wikipedia.org/wiki/Access_control_list

http://acl.bestbits.at/

http://en.wikipedia.org/wiki/Extended_file_attributes