RSS Feed

RSS Feed

Como ya he dicho otras veces, estoy usando Ubuntu Hardy desde hace un tiempo. Al ser esta una versión en desarrollo la cantidad de paquetes actualizados a diario es impresionante, en esta última etapa del desarrollo el ritmo es aún más frenético. Dispongo de conexión para bajar todo eso a diario, pero por simple salud mental/comodidad suelo bajar updates más o menos cada semana.
Esto hace que de una vez a la siguiente haya sorpresas, como la que he tenido hoy. Al ir a bajar los paquetes he ido a hacer update y dist-upgrade y me he encontrado con que no podía pasar de la primera etapa:
~$ sudo apt-get update
sudo: unable to resolve host nombreequipo
"nombreequipo" es el nombre de este ordenador.
Vale. La solución era muy sencilla porque enseguida he visto de donde venía el problema. Ayer mismo estuve tocando el "grupo de trabajo" del sistema de conexión de red compatible con windows, para poder acceder a otra computadora de mi red local. Por ese motivo en los hosts de mis conexiones de red mi PC ya no se llamaba "nombreequipo", sino "nombreequipo.GRUPODETRABAJOWINDOWS". Por eso el "sudo" no podía encontrar este equipo.
¿Cómo se soluciona?
De hecho, ahora que lo pienso, esta última solución es incluso más rápida y también para los que tienen contraseña de root (a éstos les sirve todo, claro, para eso son supervacas).
Una vez hecho este pequeño cambio, seremos capaces de activar sudo sin problemas para realizar la acción que queramos. Es tan sencillo que no sé si le servirá a alguien, pero lo dejo aquí para los paracaidistas que puedan aprovecharlo.
Drupal es un CMS estupendo, quizá excesivo para un simple weblog, pero desde luego es un gran CMS (no en vano ha sido elegido mejor CMS libre de 2007). Los que leen este blog regularmente ya saben que desde el principio (y ya hace algún tiempo...) uso Drupal para su gestión y aunque alguna vez pensé la migración a Wordpress, me alegro de no haberla hecho (uso wordpress en otros sitios y aún siendo enormemente sencillo de utilizar, no me da todo el manejo que sí me da éste).
Pero los que han usado/usan Drupal saben que hay pequeñas cosas a las que sus desarrolladores no prestan atención. Siendo un CMS fantástico, hay pequeños detalles que ayudan a que la cosa sea más amigable para todos. Es el caso que comentamos en este post: cualquiera que haya usado Wordpress sabe que casi todos los temas listan un pequeño bloque con las categorías y el número de posts incluídos en cada una. Veamos como ejemplo una captura de Vive Málaga (un blog construido sobre Wordpress).

¿Entendido? Pues nosotros, como buenos drupaleros, queremos exactamente lo mismo. No queremos ser menos que un usuario de wordpress cualquiera, capisci? No es tan difícil, aunque yo soy un patán que sin ayuda no hace nada, la solución es tan fácil como crear un bloque que ejecute código PHP y pegar el siguiente código (recuerda que esto es válido para Drupal 5):
$vid = 1; // Donde el $vid lo debes ajustar al id del vocabulary para el que quieres crear el bloque de categorías
$items = array();
$terms = taxonomy_get_tree($vid);
foreach ( $terms as $term )
{
$count = "(".db_result(db_query("SELECT COUNT(nid) FROM {term_node} WHERE tid = %d", $term->tid)).")";
$termdepth = "";
for ($i=0;$i<$term->depth;$i++)
{
$termdepth = $termdepth . "-- ";
}
$items[] = $termdepth . l($term->name, "taxonomy/term/$term->tid") . " $count";
}
if ( count($items) ) { print theme('item_list', $items);}
?>
Y eso es todo, ¿ven qué fácil? Espero que a algún usuario de Drupal esto le sirva, a mí me ha hecho un rey (antes cada vez que hacía una categoría nueva tenía que ir modificando el código html de un bloque que yo mismo hice, y la mitad de las veces lo olvidaba así que era un desastre).
*** Lo encontré como siempre, en la red donde todos los trucos buenos (y algunos malos :P) se comparten. En concreto lo ví en el portal de usuarios Persas de Drupal, para que luego digan que de Irán sólo salen cosas malas :)
Este es uno de esos COMOs o How to de baja tecnología que yo suelo poner. En esta ocasión vamos a recuperar el efecto «tipo expose à la Mac OS X» que venía por defecto en versiones de Ubuntu/Compiz anteriores a Feisty y que eché de menos en Gutsy. Luego me enteré que habían cambiado el modo en que se activaba... ¡así sin avisar ni nada!. Es una pequeña putada porque este efecto, a parte de ser visualmente atractivo, nos va a ayudar a acceder en cuestión de nada a cualquier ventana que necesitemos. Una vez que te habitúas a usarlo es difícil estar sin él, porque te ahorra tiempo.
Espero que para la próxima Hardy Heron mejoren este tipo de detalles y no dejen a los usuarios colgados, buscando cosas donde ya no están... algo tan propio de la gente del lado oscuro.
Bueno, vayamos al grano.
$ sudo -s
# apt-get install compiz xserver-xgl
(nos preguntará si queremos instalar algunas cosas más además de compiz, aceptamos)
# apt-get install compizconfig-settings-manager
(este es importante porque nos añade a nuestro menú de preferencias un programita de configuración con una interfaz fácil de usar).
Con esto hemos acabado por hoy. ¿Les ha sido de ayuda? Eso espero, porque la sensación de perder el tiempo es chunga :)
Ahora vamos al grano con lo que nos ha traído hasta aqui.
1. Instalar Ubuntu
Asumo que ya habéis bajado y quemado el CD de Ubunu Feisty (versión alternate). Hacemos una instalación en modo texto. Supongo que no tendréis mayores problemas pero por si las moscas hice hace tiempo un CÓMO instalar Ubuntu Linux en sistema dual que está algo desactualizado, pero que considerando que vamos a hacer instalación en modo texto puede ser útil. Le dais a instalar, seleccionáis las opciones de localización (hora, ciudad, distribución de teclado...) y os preparáis la infusión que más os guste (té, café, ¿algo para la resaca?).
2. El problema de las X durante la instalación
Al instalar Ubuntu, ésta se va a instalar correctamente, salvo porque va a intentar configurar tu sistema gráfico («las X») y no lo va a conseguir. Ojo, el proceso es normal y parece que se configuran bien pero no es así. Si queréis podéis arrancar el sistema tal y como te dice al finalizar la instalación (quitar CD e iniciar sistema), pero creo que no vale la pena perder tiempo. No funcionará. Así que cuando el sistema reinicie, en el selector de GRUB escogéis Ubuntu 2.16.20-XXX (Recovery Mode)
3. Añadiendo los repositorios necesarios
Ahora necesitamos que Ubuntu mire en todos los repositorios, no sólo en los libres. Desde la consola de comandos a la que llegamos cuando iniciamos en modo recovery ejecutamos:
~# nano /etc/apt/sources.list
Y quitamos la # delante de todas las lineas de repositorios. A continuación actualizamos la instalación:
~# apt-get update
~# apt-get dist-upgrade
Esto nos instalará el kernel último con los módulos restringidos que ahora ya no necesitamos recompilar, ¿no es magnífico? :)
4. Añadiendo drivers de Intel
Ya casi estamos listos. Hemos instalado nuestro Kernel nuevo que ya no da errores y ahora necesitamos los drivers de Intel para nuestra tarjeta gráfica. Los drivers que hay disponibles son para la tarjeta Intel X3000, y funcionan bien con la nuestra en el escritorio «normal», pero nos va a dar algún problema en escritorios 3D (Compiz, Beryl, y cualquier otro XGL), que veremos más adelante. Por tanto aunque nos sirvan, no son los definitivos, si bien estos permiten configurar el sistema. Alguna gente dice que el renderizado del texto hace que se vea borroso... no es mi caso. Para instalar los drivers:
~# apt-get install xserver-xorg-video-intel
5. Reconfigurando las X
Y una vez que tenemos eso instalado reconfiguramos las X
~# dpkg-reconfigure xserver-xorg
Durante la reconfiguración de las X normalmente todas las opciones por defecto nos van a servir, sólo un par de notas:
6. XGL
Pues bien, es aquí donde no he conseguido llegar todavía. El problema está claro: los drivers que estamos empleando son para una tarjeta inferior (algo más antigua) y funcionan bien para escritorio 2D (de hecho funcionan perfectamente), pero al no ser específicos para la tarjeta tienen problemas con el renderizado 3D de los servidores XGL. En principio tenemos nuestros drivers instalados y Ubuntu nos da la opción de activar Compiz (Sistema>Preferencias>Open GL). Sin embargo, hagas lo que hagas unos segundos después de activar Open GL el escritorio se congela. Podrás mover el ratón pero nada más. El problema reside, sin duda, en problemas con los drivers gráficos, pero es que estamos usando unos drivers que se pensaron para la tarjeta anterior. Habrá que esperar a que estén disponibles los nuevos ellos para poder disfrutar de nuestro «cubo». Actualización 2007-06-21: Dicen en la sección de bugs de Ubuntu de Launchpad que actualizar a Gutsy Tribe 1 (alpha 1 de la Ubuntu 7.10) soluciona el problema de congelación de la 3D. Si te gusta vivir al filo de la navaja ya sabes lo que hacer. Sin embargo, yo no lo he probado y no lo recomiendo (al menos si necesitas tu ordenador para trabajar) porque la Alpha 1 seguro soluciona ese asunto, pero es un sistema en desarrollo y (seguro) altamente inestable que se puede romper en cualquier momento haciéndote perder la tarde reinstalando y (con algo de mala suerte) parte de tu trabajo. Pero ahí queda el aviso.
7. Referencias
Pues a ver... sobre la pista de usar un alternate CD me puso Foncu en los comentarios a la entrada donde expliqué que tenía problemas con Ubuntu y el portátil. En principio eso no resolvió nada, ya que tampoco pude configurar las X. Pero un par de semanas después, y ya totalmente cansado de vagabundear por distintas distribuciones (probé hasta Fedora y OpenSuSE, y mira que las odio visceralmente xD) que no me terminaban de gustar y bastante cabreado por tener que vivir en windows XP, decidí darme otra oportunidad y en Ubuntu Forums leí que ya había drivers empaquetados para el mismo chipset y la tarjeta X3000... Decidí que probar no sería tan grave y aquí está el resultdo.
8. Conclusiones
Dicho esto hay que añadir que podemos reiniciar el sistema completamente o directamente arrancar las X (~# startx), yo soy partidario de reiniciarlo completamente. Por lo demás Ubuntu se comporta como casi siempre: Reconocimiento de hardware total, incluso la WiFi se configuró sola durante la instalación. Esa normalidad también incluye los defectos propios de un sistema (feisty) al que le faltó un hervor, un par de meses más para dejarlo muy bien plantado como dejaron la Dapper. No ha sido fácil echarlo a andar porque me compré un hardware demasiado nuevo, pero ya está... todo instalado y funcionando casi bien. A ver si Tengo problemillas menores pero ya no parecen tan graves.
1. Abrimos un terminal y ejecutamos:
sudo echo "Beryl & nVidia installation script for ubuntu Ubuntu Feisty"(usamos sudo para que no nos la pida luego, ya que usamos un texto multilínea que no debe ser interrumpido).
2. Copiamos y pegamos este texto completo en el terminal, de una vez [Selecciona el texto, ve al términal y haces click en el botón central -la rueda-].
echo "¡Instalacion completa!"
echo -e "Cierra la sesión y reinicia las X pulsando \e[0;31mCTRL+ALT+BACKSPACE\e[0m "
cp /usr/share/applications/beryl-manager.desktop ~/Desktop/beryl-manager.desktop
sudo cp /usr/share/applications/beryl-manager.desktop /etc/xdg/autostart/beryl-manager.desktop
sudo nvidia-xconfig --add-argb-glx-visuals
sudo apt-get -y install beryl beryl-manager emerald-themes
sudo apt-get update
-O- | sudo apt-key add -http://ubuntu.beryl-project.org/root@lupine.me.uk.gpgwget
feisty main" | sudo tee -a /etc/apt/sources.list http://ubuntu.beryl-project.orgdeb-src
feisty mainhttp://ubuntu.beryl-project.orgecho "deb
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup.beryl-script
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup.beryl-script
3. Cerramos la sesión y reiniciamos las X usando [CTRL+ALT+BACKSPACE].
Este sistema sirve para instalar beryl en muy poco tiempo, pero si no hemos preparado adecuadamente nuestra instalación (módulos de kernel, drivers) no funcionará y no sólo eso, sino que nos estropeará la configuración de las X (nada que no solucione un pequeño backup del archivo «xorg.conf», pero mejor no tener contratiempos, ¿no?).
¡Que aproveche!
AuthName "Introduce tu usuario/contraseña"
AuthType Basic
AuthUserFile /.htpasswd
require valid-user
El bloqueo afectará a ese directorio y a todos sus subdirectorios, de modo que si lo ponéis en el directorio raiz afectará a toda la web.
¿Qué significa cada una de esas líneas?
AuthType: Sólo es posible el módo Basic, se están desarrollando métodos más seguros pero de momento no funcionan bien. AuthUserFile: Es el archivo que contiene las contraseñas, le puedes poner el nombre que quieras pero manteniendo ese nombre te aseguras que nadie verá su contenido (algo realmente importante pues ese fichero almacena las claves cifradas, pero es cifrado de una clave susceptible de ser atacado por fuerza bruta. require: Esta línea sirve para definir qué usuarios tienen acceso, dejando «valid-user» cualquier usuario que introduzca su clave correcta tiene permiso.
2. Creando el archivo .htpasswd
Ya hemos mencionado antes que necesitamos un archivo .htpasswd. Este archivo consiste en una serie de líneas, cada una contiene un nombre de usuario y su contraseña separados por el símbolo ":". Las contraseñas, como ya hemos mencionado, no están en texto claro, sino cifradas. Para cifrar la contraseña en la consola de comandos puedes escribir
~$ htpasswd <fichero> <usuario>
Y te preguntará la contraseña en una nueva línea. La escribes y el resultado será algo parecido a:
usuario1:WrU808BHQai36
usuario2:iABCQFQs40E8M
usuario3:FAdHN3W753sSU
Para hacer login, el usuario introduce las contraseñas en forma «normal», no en este formato cifrado (¡claro!).
Permitiendo acceso a grupos de usuarios
Si queremos restringir varios directorios pero no todos van a ser utilizados por las mismas personas nos interesará agrupar los usuarios en grupos y definir en el htaccess qué grupo puede ver qué directorio. Eso lo hacemos modificando la línea require del archivo .htaccess, en lugar de poner lo explicado en el primer punto vamos a poner:
require group amigos
AuthGroupFile /misgrupos
El archivo «misgrupos» (en este ejemplo está en el mismo directorio que .htaccess y .htpasswd) está formado por líneas de este tipo:
grupo1:usuario1 usuario2
grupo2:usuario2 usuario3
grupo3:usuario1 usuario3
Con .htaccess se pueden llevar a cabo multitud de acciones mucho más complejas que éstas, desde crear redirecciones hasta evitar el acceso a ficheros concretos, pero no es el fin de este cómo explicar todo eso, sino simplemente ayudar a proteger directorios en nuestros sitios web.