Personalizando Solaris

Hace poco estube estuve ensuciándome las manos con otro sistema operativo que no es nuestro bienquerido Linux. Se trata de Solaris 10; la tarea era pasar de la versión 8 a la 10. La instalación fue bastante limpia y nos dejó un sistema nuevecito para empezar a jugar. Ahora bien el entorno de la línea de comando en Solaris es bastante duro. La shell por defecto no soporte autocompletado y vi es inusable (por lo menos para mí). Por eso la tarea era hacer el entorno de Solaris lo más parecido a un entorno Linux. Para eso hubo que seguir algunos pasos.

Instalación de pkg-get

Primero que nada vamos a necesitar agregar software a nuestro Solaris que no viene en el DVD de serie. El software para Solaris se puede obtener ya compilado en formato de paquetes.

La herramienta para instalar paquetes en este sistema es pkgadd, que vendría a ser como el dpkg de Debian o el rpm de otras distros de Linux. Pero como usamos Debian y amamos apt-get queremos una solución un poco más cómoda e inteligente. La respuesta es pkg-get, que es el equivalente a apt-get pero para Solaris. pkg-get resuelve las dependencias automáticamente y descarga e instala los paquetes directo desde un repositorio por la red.

Para instalarlo obviamente vamos a necesitar de pkgadd

# pkgadd -d http://www.blastwave.org/pkg_get.pkg

Luego de aceptar todas las preguntas que nos hace pkgadd, tenemos que definir los repositorios desde los cuales vamos a descargar el software.

La opción más recomendable son los repositorios de www.blastwave.org, que contiene mas de 1700 paquetes de software en su mayoría open source. Todo el software de este repositorio se instala bajo /opt/csw. Por lo tanto modificamos el fichero de configuración de pkg-get:

#nano /opt/csw/etc/pkg-get.conf

Usamos nano, no porque nos guste, sino porque el vi que viene por defecto en Solaris es a mi gusto inusable. Luego lo arreglaremos.

Buscamos en www.blastwave.org/mirrors.php un mirror que este cerca o que sea rápido y lo definimos como sigue:

url=http://mirrors.sunsite.dk/csw/stable

Podemos usar la rama stable y la unstable, dependiendo de para qué vayamos a usar el equipo. Solo es necesario agregar una línea más con unstable o stable al final de la url.

Si estamos detrás de un proxy, lo configuramos:

http_proxy=http://proxy.mi.red.com:8080
export http_proxy ftp_proxy

Por último, podemos deshabilitar el chequeo de firmas y sumas md5, si nos sentimos confiados. Aunque nunca nadie sabe…

use_gpg=false
use_md5=false

Instalación de Vi mejorado

Ahora que tenemos pkg-get configuado lo podemos usar para instalar software. Lo primero que hacemos es instalar vi-enhanced, o vim.

# pkg-get install vim

Ahora bien si corremos vim nos daremos cuenta de que funciona igual que el vi que trae por defecto Solaris. Entre otras cosas la tecla backspace no funciona bien y las teclas de dirección (las de las flechas) no nos permiten movernos por el texto sino que imprimen caracteres en la pantalla. Para solucionarlo debemos crear un archivo de configuración para vim en el directorio personal de nuestro usuario. Si el usuario es root, entonces el directorio de usuario es “/” (Sí, “/”, Solaris no pone un “/root” para el superusuario).

# cd
# nano .vimrc

Y en .vimrc ponemos las siguientes líneas que solucionan los problemas anteriores del vim. Además activamos el coloreado de la sintaxis que es muy útil:

set nocp
set backspace=2
syntax on

Y listo, ya podemos usar vim como en Linux.

Cambiar la shell de root

Una de las cosas más molestas de Solaris cuando recién se instala es la shell. Por defecto Solaris no trae una shell moderna como bash sino la típica shell de Bourne o sencillamente “sh”. Esta shell no tiene ni histórico ni autocompletado y es bastante dura de usar.

¿Por qué viene por defecto? La razón es que es un ejecutable pequeño que no está enlazado dinámicamente con ninguna librería. De forma que si el sistema se vuelve inestable y no se puede montar alguna partición donde se alojan las librerías, lo mismo tendríamos una shell para acceder al sistema.

Nosotros vamos a hacer que se cargue bash como shell por defecto de root, siempre y cuando esté disponible, de manera que el sistema seguirá siendo a prueba de fallos. No tendremos que cambiar la shell en /etc/passwd, el valor lo dejaremos como está.

Para hacer el cambio, dentro del directorio del usuario editamos el archivo .profile, que es el archivo que lee la shell sh cuando se ejecuta. Será esta shell la que cargue bash de forma automática. Creamos el archivo con este contenido:

if [ -x /usr/bin/bash ]; then
SHELL=/usr/bin/bash
export SHELL
exec /usr/bin/bash
else
echo /usr/bin/bash not found using default shell of $SHELL
fi

Si salimos de la sesión y volvemos a entrar veremos que bash se carga automáticamente.

Un último detalle un tanto lamentable es que definiendo bash como shell para el entorno, no se puede iniciar el entorno gráfico. Cuando tratamos de ingresar desde el inicio gráfico de Solaris, este ser reinicia y no podemos acceder a Gnome o a CDE. Si definimos Bash para el usuario root, esto no es problema ya que usar el entorno gráfico con root no es buena opción; pero no deja de ser una solución poco elegante. Seguiré investigando para ver como solucionarlo.

Modificación del entorno de bash.

Hay algunas variables de entorno que controlan como funciona bash y que es muy útil definir.

En primer lugar debemos crear los archivos de configuración de bash, que son dos. En primer lugar .bash_profile, con el siguiente contenido:

source ~/.bashrc

Esto hace que se cargue el contenido de .bashrc que es el archivo donde guardamos las configuraciones personales para bash.

De seguro la más importante es el path, o sea los directorios donde la shell buscará los programas que se pueden ejecutar. Por defecto el path de Solaris es el siguiente:

/usr/bin:/usr/sbin:/usr/openwin/bin:/usr/ucb

Que nos sirve si usamos el software oficial de Solaris. Pero como vamos a instalar software de blastware y también software libre que Sun provee que no se encuentra dentro de ese path, entonces tendremos que modificarlo. Ponemos:

export PATH='/usr/bin:/usr/sbin:/usr/openwin/bin:/usr/ucb:/opt/csw/bin:/usr/sfw/bin'

  • /opt/csw/bin es el directorio donde están los binarios del software que instalamos con pkg-get, desde los repositorios de blastwave.
  • /usr/sfw/bin es el directorio donde se ubican los binarios de software libre provisto por Sun como samba y wget.

ls en colores

El comando ls que provee Solaris no nos permite colorear la salida, así que vamos a solucionarlo de nuevo con una opción libre. Instalamos el paquete fileutils que nos provee un ls con colores.

# pkg-get install fileutils

Fileutils nos instalará el comando gdir que no es otra cosa que el ls que usamos en bash. Modificamos .bashrc para crear un alias de ls a gdir y habilitamos los colores. Agregamos lo siguiente:

export LS_OPTIONS='--color'
eval "`gdircolors`"
alias ls='gdir $LS_OPTIONS'
alias ll='gdir $LS_OPTIONS -l'
alias l='gdir $LS_OPTIONS -lA'

Bash Completion

Aunque bash nos completa de forma muy útil los paths y los nombres de los programas por defecto, hay algunas cosas que no nos completa como por ejemplo los argumentos de ciertos programas. Bash Completion viene a solucionar esto, y es muy útil con comandos como pkg-get o svcadm. Lo instlamos con pkg-get:

# pkg-get install bash-completion

Para que el autocompletado se cargue de forma automática, debemos agregarlo también en .bashrc:

source /opt/csw/etc/bash_completion

Cambio del paginador y alias para vi

Las páginas del manual son paginadas por defecto con more que es bastante molesto de usar. Lo cambiamos por less, modificando lo siguiente en .bashrc:

export PAGER=less

Creamos un alias para vi en .bashrc para que se llame automáticamente a vim:

alias vi='/opt/csw/bin/vim'

Prompt descriptivo y en color

Como último paso vamos a modificar el prompt para que entregue más imformación. Además le vamos a poner color para visualizarlo mejor. Agregamos a .bashrc:

export PS1="\[33[0;32m\][\u@\h:\W]\$\[33[0m\] "

explicamos qué es cada cosa:

  • \[33[0;32m\] Es un carácter no imprimible que cambia el color del terminal a verde, así el prompt adquiere este color.
  • \u Imprime el nombre del usuario logueado
  • \h imprime el nombre de la maquina o hostname
  • \W Imprime el nombre del directorio en el que estamos parado.
  • \$ Si el usuario es root, imprime un “#”, de lo contrario imprime un “$”
  • \[33[0m\] Con esta secuencia volvemos al color original de la shell para que no siga en color verde.

Nuestro prompt quedaría de la siguiente manera:

[root@servidor:etc]#

Esto es todo, ya tenemos un entorno en Solaris bastante más familiar y agradable que nos hace la vida más sencilla.

About these ads
Explore posts in the same categories: Bash, Solaris, vi

Etiquetas: , , ,

You can comment below, or link to this permanent URL from your own site.

5 comentarios en “Personalizando Solaris”

  1. JJ Says:

    Hola,
    En primer lugar gracias por tu articulo me sirve de bastante ayuda.
    Hay algunas cosillas que se pueden corregir pero no te las posteare hasta que este seguro :)
    Para empezar comentarte que no hace falta cambiar la shell de la manera que lo haces puedes cambiarlo directamente en “/etc/passwd” si el sistema se vuelve inestable o no puede cargar la shell se lanzara por defecto la sh. Es una caracteristica del Solaris 10.
    Espero que eso te ayude
    Saludos

  2. aterra Says:

    Puf, qué bien me ha venido poder ponerle colorines.

  3. Alejandro Says:

    Thx un excelente tutorial, me ayudo mucho por que eso de vi tipo solaris es una aberrasión y para lo del bash por que no intentas simplemente usar usermod, “usermod -s /bin/bash root ” bueno a mi hasta el momento me a servido

  4. Luis Says:

    A mi me ha pasado exactamente lo que comentabas de las aplicaciones gráficas, pero el error que me daba era del display. Antes de hacer el “su -” he ejecutado “xhost +” y después he exportado el display en el .profile:

    DISPLAY=:0.0
    export DISPLAY

    Prueba a ver si te corrige los problemas y me cuentas

  5. Antonio Says:

    Solaris es un entorno para hombres curtidos, no la gualtrapada de Linux, que para jugar no está mal, al menos está por delante del Güindos.


Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: