Mi distro: Ubuntu Server + Openbox

En los artículos anteriores «En busca de la distro perfecta» partes I y II, os comentaba cómo pasé por las distintas distros hasta acabar en la que uso ahora mismo, que no es otra que Ubuntu Server con el gestor de ventanas Openbox.

Os voy a explicar a continuación cómo dejar dicha distro operativa para trabajar.

LA BASE: GNU/Linux

Queremos instalar un gestor de ventanas (Openbox en este caso), pero ¿sobre qué distro? Bien, podríamos usar cualquiera, ya que cuando instalamos un nuevo gestor de ventanas, normalmente, el gestor de login gráfico (xdm, kdm, lightdm…) reconoce esto y en el siguiente reinicio se puede seleccionar desde la ventana de entrada y usar dicho gestor de ventanas/escritorio. Sin embargo, una vez que tenemos claro qué gestor de ventanas queremos, ¿para qué instalar una distro con su propio gestor de ventanas para luego desinstalarlo o directamente no usarlo?

Mi opción, como os indicaba antes, es instalar una distro de tipo Server, es decir, en modo texto, sin entorno gráfico y, a partir de ahí, comenzar con la instalación de todo. Yo uso Ubuntu Server desde hace tiempo. Actualmente tengo la 12.04 de 64 bits y me va bastante bien (quiero probar archlinux a fondo, pero no encuentro el momento, así que sigo con Ubuntu Server).

Lo que haríamos, por tanto, es una instalación de un Ubuntu Server 12.04 64 bits (*). No voy a entrar en detalles de esta instalación ya que hay muchos sitios donde encontraréis esto (googlead un poco y hallaréis respuesta).

Instalación del gestor de ventanas

En el título pongo gestor de ventanas y no Openbox en particular porque estos pasos los podéis usar para instalar cualquier gestor de ventanas que os interese probar: icewm, fluxbox, window manager, etc.

Voy directamente a los comandos a introducir. No me gusta sudo (aunque reconozco que para muchos usuarios puede ser interesante), así que directamente os pongo los comandos de root (**), de ahí el símbolo «#» en lugar de «$». Al grano:

# aptitude install x-window-system (***)
# aptitude install openbox

Con esto ya podemos arrancar nuestro openbox con «startx». Si reinicias el equipo seguirá pidiendoos el login en modo texto. ¿Esperábais algún login tipo gráfico? Esto no es parte de openbox ni de ningún gestor de ventanas. Si queréis un login gráfico tenéis que instalar algo como xdm, kdm… Si queréis algo sencillo:

# aptitude install slim

Yo a veces trabajo en modo texto, así que por éste y otros motivos (****) prefiero login en modo texto. Si lo queréis logaros en modo gráfico -como en cualquier distro actual-, con el comando anterior ya lo tenéis (tras la instalación de «slim» reiniciáis el equipo y ya está). Hay por ahí mucha info sobre slim (es muy fácil de configurar). Si queréis otro gestor de entrada (o gestor de sesiones, o gestor de acceso, que también se le conoce así), tenéis gdm, kdm, … también lightdm (que se ha usado mucho en Ubuntu) e incluso el del entorno enlightenment: entrance.

Bueno, con esto ya tenemos un ubuntu server pero ya con gestor de ventanas, y no uno cualquiera, si no, como diría el gran Chiquito de la Calzada: ¡»echepeacho» de openbox!

Instalando el resto de cositas

Ahora hay que instalar aplicaciones para darle vida al entorno de escritorio, no? Hombre, es que si no… poco vamos a poder hacer con el sistema ;-). A estas alturas quizás ya alguno comience a preguntarse: «pero, ¿cada vez que quiera probar una nueva distro de ubuntu server tengo que instalar el gestor de ventanas, configurarlo y luego instalar de nuevo todas las cosas?»

La respuesta es simple: sí. No obstante, esto no quiere decir que tengáis que hacelo «a mano». Una de las razones por las que me gusta mucho GNU/Linux es por la potencia de sus scripts. De hecho, yo programé hace tiempo un script (en realidad varios) de forma que cuando instalo ubuntu server simplemente lo ejecuto y todo se instala y se configura automáticamente.

Este script (se llama «inst_todo.sh») llama a otros scripts que van haciendo las distintas cosas que necesito en mi GNU/Linux. Así pues, tengo estos scripts:

  • inst_actualiza_fstab.sh
  • inst_actualiza_hosts.sh
  • inst_actualiza_red.sh
  • inst_actualiza_repos_distro.sh
  • inst_crea_dirs.sh
  • inst_fuentes_ttf.sh
  • inst_juegos.sh
  • inst_mediatomb.sh
  • inst_paquetes.sh
  • inst_post.sh
  • inst_prepara_home_root.sh
  • inst_prepara_home.sh
  • inst_qemu.sh
  • inst_reemplaza_rc.local.sh
  • inst_scripts.sh
  • inst_soluciona_bugs.sh
  • inst_todo.sh
  • set_variables.conf

El nombre indica más o menos para qué sirve dicho script. En realidad, inst_todo.sh no es más que una llamada a todos los que queremos ejecutar, por lo que ejecutando ése ya se irían ejecutando todos, uno tras otro.

Los scritps inst_prepara_home.sh e inst_prepara_home_root.sh, además de -como su propio nombre indica- preparar el directorio home de el usuario normal y de root respectivamente, ejecuta otras posibles acciones que haya que realizar desde ese usuario. Así pues, seguramente en el futuro los renombre, porque cada vez van siendo más genéricos, pero de momento ése es su nombre actual.

Todos los scripts aceptan un parámetro, que puede ser «casa» o «laptop» (podéis añadir más fácilmente), según el ordenata de que se trate (sí, uso el mismo sistema en los 2). La idea es que en cada equipo (el cuál tiene una ubicación y un objetivo distinto) tiene unas necesidades particulares diferentes. Así pues, si acabo de instalar ubuntu server en mi PC de casa, ejecuto como root el script inst_todo.sh pasándole el parámetro casa. Si es en el portátil, tras la instalación de ubuntu server ejecuto dicho script pero pasándole como argumento laptop.

Existe un archivo llamado set_variables.conf, que es un fichero que define varias variables de entorno, las cuáles hacen referencia a los distintos directorios y archivos necesarios para la configuración del sistema. Esto lo uso porque no quiero referencias concretas en los scripts a ficheros y rutas de archivos, ya que si éstas cambian se me fastidia el invento cada 2×3.

Si queréis usarlo tendréis que cambiar este archivo para adaptarlo a vuestra jerarquía de directorios. También tendréis que adaptar posiblemente, los scripts inst_prepara_home.sh e inst_prepara_home_root.sh, ya que dependerá de los programas que uséis. De hecho, algunos de los que ahí aparecen ya no los uso, pero tengo su parte correspondiente en el script por si en el futuro vuelvo a usarlo.

Puesto que son muchas las aplicaciones que tengo instaladas, y dado que los scripts son bastante autoexplicativos, me limito a poneros el enlace para la descarga: Scripts para autoconfiguración del sistema.

Lo que conseguiréis con esto es que tras la instalación de inst_todo.sh y reiniciar el equipo tendréis el sistema como lo teníais la última vez conservando todo: configuración de los programas que usáis, atajos de teclas, fondo de pantalla, etc.

Lo ideal es que si usáis estos scripts, que cada vez que añadáis un programa nuevo a vuestro sistema, que lo tengáis en cuenta en dichos scripts. Básicamente, implicará añadirlo en el archivo «paquetes_XXX.txt» (donde XXX puede ser «generic» -si se va a instalar en todos los equipos, «casa» si se va a instalar en el pc de casa o «laptop» si se va a instalar en el portátil). También, si el programa tiene una configuración particular (normalmente en vuestro /home) lo suyo es hacer como en el script inst_prepara_home.sh y crear enlaces simbólicos a dichos archivos (que previamente habréis movido a vuestra partición de datos). Así siempre que los modifiquéis los cambios se guardarán incluso aunque formateéis de nuevo 😉

Si tenéis dudas me preguntáis. Si tenéis sugerencias también se agradecen.

En otro artículo os comentaré cómo tengo configurado el entorno. Por hoy ya no más.

(*) Si no tenéis procesadores de 64 bits -aunque muy antiguo tiene que ser: P IV, etc.-, si no tenéis más de 4 GB de RAM o directamente si preferís la de 32 bits, pues cogéis ésa, da igual.

(**) Cuando instalas una ubuntu o derivada, no tienes password de root. Para conseguirlo, nada más fácil:

$ sudo passwd

Metemos nuestro password y nos pedirá dos veces el de root. Ya está.

(***) Siempre uso aptitude, no apt-get. En las últimas versiones de ubuntu no viene instalado. Si es el caso:

# apt-get install aptitude

(****) Un día os pondré varios ejemplos de tareas que, aunque estamos acostumbrados a llevarlas a cabo desde un entorno gráfico, se pueden llevar perfectamente a cabo en modo texto (reproducción de música, grabación cds… entre otras).