Lenny passa a ser estable

febrer 15, 2009

Després d’un any i vuit mesos, ahir (14 de febrer), Debian va publicar la nova versió estable anomenada Debian 5.0 o simplement “Lenny“. Dóna la casualitat que justament ahir al vespre feien per la TV les dues primeres pel·lícules de la saga Toy Story (per si algú encara no ho sap: els noms de les versions de Debian corresponen a personatges d’aquesta pel·lícula) i com que no les havia vist me les vaig mirar. Ara ja puc posar “cara” a les diferents versions de Debian:

Versions de Debian i personatges de Toy Story

Versions de Debian i personatges de Toy Story

Anuncis

Manpages en espanyol en una Debian en català

febrer 15, 2009

Que jo sàpiga, a Debian no hi ha les versions en català de les pàgines dels manuals. De manera que si consultem el manual de qualsevol comanda el veurem, per defecte, en anglès.

# man ls | grep ls | head -n 1
ls – list directory contents

Si ens interessa veure les pàgines en espanyol, podem configurar els locales per al nostre usuari amb aquest idioma. Haurem de tenir instal·lats els paquets locales, manpages-es i manpages-es-extra.

Podem veure quins locales tenim disponibles si consultem el fitxer /etc/locale.gen:

# cat /etc/locale.gen
ca_ES.UTF-8 UTF-8

I, encara que en aquest cas resulta obvi, el locale per defecte del sistema es troba indicat a /etc/default/locale:

# cat /etc/default/locale
LANG=ca_ES.UTF-8

Si volem generar nous locales, pot fer-se de forma manual (editant el fitxer /etc/locale.gen i executant locale-gen), però crec que és molt més còmode i segur fer servir dpkg-reconfigure.

#dpkg-reconfigure locales

A banda del català, marcarem els locales de l’espanyol d’Espanya (es_ES):

[*] es_ES ISO-8859-1
[*] es_ES.UTF-8 UTF-8
[*] es_ES@euro ISO-8859-15

i escollirem per defecte el quin vulguem (jo hi he deixat el ca_ES.UTF-8 que ja tenia). De fet n’hi hauria prou triant-ne un dels espanyols per tenir els manuals en aquest idioma. Però deixem-ho així i anem a veure com ho ha de fer cada usuari per a configurar l’idioma dels seus manuals.

Important! Si en fer el dpkg-reconfigure veieu que no genera els locales automàticament (no ho farà, per exemple, si teniu el paquet locales-all instal·lat) haureu d’executar:

# locale-gen

A partir d’aquí les configuracions ja no les hem de fer com a root sinó com un usuari del sistema.

Com és lògic, cada usuari, si no ho canvia tindrà predeterminat el locale per defecte del sistema.

$ locale
LANG=ca_ES.UTF-8
LC_CTYPE=”ca_ES.UTF-8″
LC_NUMERIC=”ca_ES.UTF-8″
LC_TIME=”ca_ES.UTF-8″
LC_COLLATE=”ca_ES.UTF-8″
LC_MONETARY=”ca_ES.UTF-8″
LC_MESSAGES=”ca_ES.UTF-8″
LC_PAPER=”ca_ES.UTF-8″
LC_NAME=”ca_ES.UTF-8″
LC_ADDRESS=”ca_ES.UTF-8″
LC_TELEPHONE=”ca_ES.UTF-8″
LC_MEASUREMENT=”ca_ES.UTF-8″
LC_IDENTIFICATION=”ca_ES.UTF-8″
LC_ALL=

Trobareu més informació sobre aquestes variables aquí o aquí. El que hem de saber és que la variable LC_ALL sobreescriu el valor de totes les altres i que la variable que defineix l’idioma dels manuals és LC_MESSAGES.

En resum, si volem aplicar el locale es_ES ISO 8859-1 farem:

export LC_MESSAGES=es_ES

Si volem aplicar el locale es_ES.UTF-8 UTF-8 farem:

export LC_MESSAGES=es_ES.UTF-8

I si volem aplicar el locale es_ES@euro ISO-8859-15 farem:

export LC_MESSAGES=es_ES@euro

Aleshores, comprovem el valor de les variables:

$ locale
LANG=ca_ES.UTF-8
LC_CTYPE=”ca_ES.UTF-8″
LC_NUMERIC=”ca_ES.UTF-8″
LC_TIME=”ca_ES.UTF-8″
LC_COLLATE=”ca_ES.UTF-8″
LC_MONETARY=”ca_ES.UTF-8″
LC_MESSAGES=es_ES.UTF-8
LC_PAPER=”ca_ES.UTF-8″
LC_NAME=”ca_ES.UTF-8″
LC_ADDRESS=”ca_ES.UTF-8″
LC_TELEPHONE=”ca_ES.UTF-8″
LC_MEASUREMENT=”ca_ES.UTF-8″
LC_IDENTIFICATION=”ca_ES.UTF-8″
LC_ALL=

I que, efectivament el manual aparegui en castellà:

$ man ls | grep ls | head -n 1
ls, dir, vdir – listan los contenidos de directorios

Per descomptat, si l’usuari vol que aquests canvis siguin permanents haurà de modificar el valor de la variable en el seu fitxer ~/.bashrc

echo “export LC_MESSAGES=es_ES.UTF-8” >> ~/.bashrc


Habilitar diversos terminals gràfics locals

febrer 9, 2009

Tant si usem xdm, com kdm o gdm, la configuració per defecte a Debian (i suposo que a la majoria de distribucions GNU/Linux) fa que només tinguem un escriptori gràfic disponible (normalment al terminal vt7). Com podem fer-ho per tenir-ne més d’un?

Si fem servir kdm (K Display Manager)

Les versions actuals de kdm ja no usen un fitxer anomenat Xservers (antigament situat al directori de configuració del kdm) per a controlar quins servidors locals cal engegar. Aquesta configuració, molt més senzilla, pot fer-se des del propi fitxer kdmrc (normalment a /etc/kde3/kdm/kdmrc)

[General]
ConfigVersion=2.3
ConsoleTTYs=tty1,tty2,tty3,tty4,tty5,tty6
PidFile=/var/run/kdm.pid
ReserveServers=:1,:2,:3
ServerVTs=-7
StaticServers=:0

Les tres últimes línies són les que ens interessen. StaticServers és la que indica quants (i quins) servidors gràfics s’engegaran per defecte. ServerVTs indica en quins terminals s’engegaran aquests servidors (el guió “-” evita que s’utilitzi vt7 si ja està ocupat. En aquest cas s’utilitzaria el primer que estigués lliure). Finalment ReserveServers indica quins terminals gràfics estan a la reserva o, el que és el mateix, quins podem engegar posteriorment (però que no s’engegaran de forma automàtica). Així doncs, si per defecte volem dos servidors gràfics als terminals vt7 i vt8 modificarem el fitxer així:

[General]
ConfigVersion=2.3
ConsoleTTYs=tty1,tty2,tty3,tty4,tty5,tty6
PidFile=/var/run/kdm.pid
ReserveServers=:2,:3
ServerVTs=-7,-8
StaticServers=:0,:1

Si fem servir gdm (GNOME Display Manager)

Encara és més fàcil. Només cal editar /etc/gdm/gdm.conf i modificar la secció [servers]:

[servers]
0=Standard vt7
1=Standard vt8

Amb això, haurem definit dos servidors gràfics als terminals vt7 i vt8.

Si fem servir xdm (X Display Manager)

xdm sí que utilitza el fitxers Xservers, com les versions velles de kdm i gdm, per tant, si volem iniciar dos servidors gràfics a vt7 i vt8 caldrà que editem /etc/X11/xdm/Xservers i el configurem així:

:0 local /usr/bin/X :0 vt7 -nolisten tcp
:1 local /usr/bin/X :1 vt8 -nolisten tcp


Usar el servidor X d’un altre usuari

febrer 8, 2009

Per defecte Debian no permet que l’usuari root iniciï una sessió gràfica, però de tant en tant ens pot interessar executar algun programa que utilitzi finestres des d’un terminal de root a l’entorn gràfic.

llengot:~# kcalc
kcalc: cannot connect to X server

Això ho podem arreglar donant permís a l’usuari root perquè utilitzi el servidor X de l’usuari que ha iniciat la sessió. L’usuari haurà d’executar:

xhost +local:

I d’aquesta manera s’indica que els usuaris locals tenen permís per usar aquest servidor X. Després, root haurà d’instanciar la seva variable DISPLAY fent:

export DISPLAY=:0.0

I immediatament ja podrà llançar comandes que obrin programes gràfics des de la consola (només durant la sessió actual, és clar).


man 5 xorg.conf

febrer 7, 2009

VIDEOADAPTOR SECTION
Nobody wants to say how this works. Maybe nobody knows …


Muntar una carpeta compartida amb VirtualBox OSE

febrer 6, 2009

El meu sistema natiu és Debian Sid, però per motius laborals també tinc dues Debian Etch instal·lades amb VirtualBox; i resulta que la versió OSE de VirtualBox no permet la “transparència” dels dispositius USB de la màquina host a la màquina virtual.

En el cas dels llapis de memòria, discs usb, memòries flash i altres dispositius de memòria USB es pot solucionar facilment gràcies a les carpetes compartides entre host i guest.

Primer cal instal·lar les Guest Additions, i això és tan fàcil com descarregar la ISO del CD (que ja ho fa sol el VBox si indiquem “Instal·la les Guest Additions…” al menú Dispositius), muntar-lo i executar l’script VBoxLinuxAdditions.run que hi ha.

Les Guest Additions s’apliquen com un mòdul del kernel (dos, de fet) i per tant cal que tinguem instal·lat al sistema el paquet de capçaleres del nostre kernel.

aptitude install linux-headers-`uname -r`

`uname -r` (les cometes són accents oberts `, no cometes simples ‘ ) retornarà la versió actual del kernel i per tant la instrucció anterior ja instal·larà les capçaleres adequades. Després, l’script recomana reiniciar el sistema…

compartirQuan ja tenim les Guest Additions funcionant (el primer que notarem serà que la màquina virtual ja no captura el ratolí) compartim la (o les) carpeta de la màquina host on muntem els dispositius USB. En el meu cas /media/disk.

A la imatge veiem com es comparteix la carpeta /media/disk del host i se l’anomena, simplement, usb. (Evidentment, podem donar-li el nom que vulguem)

Per acabar, només cal que configurem el fitxer /etc/fstab de la màquina virtual per tal que munti aquesta carpeta on vulguem. Per exemple:

mkdir /media/usb

echo -e “usb\t /media/usb\t vboxfs\t defaults\t 0\t 0\n” >> /etc/fstab

on usb és el nom de la carpeta compartida, /media/usb el punt de muntatge que hem triat per a la màquina virtual i vboxfs és el mòdul de VirtualBox que s’encarrega de gestionar les lectures/escriptures a la carpeta compartida.

Quan hem fet això, n’hi ha prou executant:

mount usb

per muntar l’usb a la màquina virtual. La resta de vegades, si quan iniciem la màquina virtual ja tenim l’USB connectat i muntat a la màquina host, no farà falta perquè l’opcio defaults de l’fstab ja inclou el muntatge automàtic.