5/18/10

Mettre à jour le JDK Java sur Debian Lenny



C'est une vidéo en live, je n'ai pas réalisé de montage. Du coup, comme il s'agit d'une vieille machine de test, je suis désolé pour le passage concernant la construction du paquet qui est un peu long. :/ J'espère juste que votre machine est plus rapide que mon vieux bousin :)

Si vous avez déjà installé la version Java fournie par la distribution (cf 1. & 2.), vous pouvez directement vous rendre au point 3.


1. Modifier son sources.list

Avant de commencer, il faut d'abord s'assurer qu'on a accès aux dépôts complémentaires (les paquets Java sont dans non-free et java-package est dans contrib). Modifiez votre /etc/apt/sources.list en conséquence.

deb http://ftp.fr.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ lenny main contrib non-free

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free
On update ses sources :
# apt-get update


2. Installer le JDK 6 Debian

Pour maintenir Java, on va s'appuyer sur certains fichiers fournis par l'installation standard de la Debian. Dans un premier temps, on va donc installer le JDK 6 Java classiquement. A ce jour, c'est l'update 12 qui sera installée via le dépôt non-free.

# apt-get install sun-java6-{jdk,plugin}
# update-java-alternatives -s java-6-sun
Pour contrôle :
$ java -version
java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)

On vérifie que c'est fonctionnel en se rendant sur java.com.


3. Générer et installer le dernier JDK

a. On récupère le dernier JDK chez Sun (Oracle). Rien de particulier à ce niveau, il suffit de se laisser guider.

b. On installe ensuite le paquet java-package

# apt-get install java-package

c. Avant de pouvoir générer le paquet contenant la mise à jour, on va corriger un fichier qui pose soucis sur Lenny car il ne prend pas en compte plus de 9 update pour Java 6 (c'est balot :/).

# vi +48 /usr/share/java-package/sun-j2sdk.sh
et modifier la ligne comme suit :
"jdk-6u"[0-9][0-9]"-linux-i586.bin") # SUPPORTED
Modification de la ligne 49 :
j2se_version=1.6.0+update${archive_name:6:2}${revision}
Suivant votre architecture, vous serez amenés à modifier les lignes 91-92 (pour amd64) ou 96-97 (pour x64).

d. On passe maintenant en mode utilisateur et on génère la paquet à partir des sources du téléchargement

$ fakeroot make-jpkg /chemin_vers_jdk_sun/jdk-6u20-linux-i586.bin

e. On repasse en root et on installe le paquet généré

# dpkg -i sun-j2sdk1.6_1.6.0+update20_i386.deb


4. Finaliser l'installation

Malheureusement, le paquet généré à l'aide de java-package ne permet pas d'utiliser tel quel update-java-alternatives. Il faut donc procéder à quelques aménagements.

a. On link notre nouveau JDK dans /usr/lib/jvm

# cd /usr/lib/jvm
# ln -s /usr/lib/j2sdk1.6-sun j2sdk1.6-sun

b. update-java-alternatives a besoin de son fichier .jinfo. Comme il n'est pas généré automatiquement par l'installation de notre paquet 'maison', on va le créer en s'appuyant sur celui qui existe pour java-6-sun

# cat .java-6-sun.jinfo|sed -e 's/java-6-sun[0-9\.-]*/j2sdk1.6-sun/'|sed -e 's/java-6-sun/j2sdk1.6-sun/'|sed -e 's/63/65/' > .j2sdk1.6-sun.jinfo

c. update-java-alternatives positionne l'alternative mais ne la crée pas. On doit donc préalablement créer les alternatives. Cela peut être très fastidieux compte tenu du nombre d'alternatives à créer pour Java. Il est finalement plus rapide et confortable d'utiliser un script créé pour l'occasion :

#!/bin/sh
# install-alternatives-for-java-package.sh
set -e
PATH=/sbin:/bin:/usr/sbin:/usr/bin

# modifier jdiralias pour les futures version de Java (1.7 ?)
jdiralias=j2sdk1.6-sun
######################

priority=65
basedir=/usr/lib/$jdiralias
basediralias=/usr/lib/jvm/$jdiralias
jre_tools='ControlPanel java java_vm javaws jcontrol keytool pack200 policytool rmid rmiregistry unpack200 orbd servertool tnameserv'
jdk_tools='HtmlConverter appletviewer apt extcheck idlj jar jarsigner java-rmi.cgi javac javadoc javah javap jconsole jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic schemagen serialver wsgen wsimport xjc'
browser_dirs='xulrunner-addons firefox iceape iceweasel mozilla midbrowser xulrunner'
PLUGIN=libnpjp2.so
PLUGINPTH=/usr/lib/jvm/$jdiralias/jre/lib/i386/$PLUGIN

for i in $jre_tools; do
    update-alternatives \
        --install \
        /usr/bin/$i \
        $i \
        $basediralias/jre/bin/$i \
        $priority 
done

for i in $jdk_tools; do
    update-alternatives \
        --install \
        /usr/bin/$i \
        $i \
        $basediralias/bin/$i \
        $priority 
done

for browser_dir in $browser_dirs; do
    if [ $browser_dir = xulrunner-addons ]; then
        browser=xulrunner-1.9
    else
        browser=$browser_dir
    fi
    update-alternatives --quiet --install \
        /usr/lib/$browser_dir/plugins/libjavaplugin.so \
        $browser-javaplugin.so \
        $PLUGINPTH \
        $priority
done

    update-alternatives \
        --install \
        /usr/bin/jexec \
        jexec \
        $basediralias/jre/lib/jexec \
        $priority 

exit 0

d. On lance le scipt qui va créer les alternatives à notre place :

# ./install-alternatives-for-java-package.sh

e. Finalement, on utilise update-java-alternatives pour mettre à jour les alternatives avec notre nouveau JDK :

# update-java-alternatives -s j2sdk1.6-sun
$ java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)

Tout cela peut paraître un peu long pour une mise à jour mais il n'en est rien (la vidéo le démontre puisqu'il faut moins de 10mn pour tout installer). De plus, pour les prochaines mises à jour, on pourra s'arrêter au 3. (tout le 4. devenant inutile tant qu'on ne passe pas à un Java 7 :p).

En résumé, des efforts minimes pour tenir à jour proprement son JDK "à la Debian".

5/12/10

Jouer à World of Warcraft sous Debian Lenny


Le résultat est plutôt bluffant compte tenu de la carte graphique :

$ lspci|grep nVidia
01:00.0 VGA compatible controller: nVidia Corporation GeForce 8600 GT (rev a1)
et du processeur :
model name : Intel(R) Pentium(R) D CPU 3.00GHz
On joue à WoW avec une fluidité et une qualité graphique difficilement soupçonnables compte tenu du matériel. Même si la vidéo peut laisser penser que c'est parfois saccadé, il n'en est rien, tout est d'une fluidité remarquable (l'encodage se fait avec 15 img/s ce qui provoque quelques désagréments visuels). On peut bien évidemment jouer en plein écran avec le même confort, WoW a juste été fenêtré le temps de la vidéo.

5/11/10

Chrome, Iceweasel et Flash - 05/10


Je suis obligé de passer quelques jours sur un autre système qu'OS X en attendant avec impatience l'arrivée de mon nouveau MacBook Pro. Ne pouvant toujours pas calmer mon urticaire à la vue d'un windows, je remonte rapidement une Debian Lenny Desktop (Ubuntu aussi me file des boutons, désolé, je suis Debian et Mac addict).

Certaines choses ne me manquaient absolument pas ces 2 dernières années au niveau du desktop. En autres, les galères avec cette technologie douteuse qu'est 'flash'. Vivement qu'HTML5 remplace tout ce qui ressemble de près ou de loin à du flash.

Je voulais simplement écouter de la musique sur Deezer avec Chrome et là... patatra... navigateur quasi gelé allant jusqu'au reboot de la session X. Burp ! J'apt-get donc un iceweasel et là, carrément pas de flash comme il se doit sur un système libre (sors de ce corps vieux barbu !).

J'ai donc repris mes vieilles habitudes de 'linuxien goret'.

Tout d'abord, j'ai téléchargé la version du flashplayer en tarball. Ensuite, il suffit de créer un répertoire dans /usr/lib pour y déposer le contenu du tarball.

# mkdir /usr/lib/flashplayer && cd !$
# tar xvzf path_vers_tarball/install_flash_player_10_linux.tar.gz

Iceweasel


On linke simplement la lib du flashplayer d'Adobe à Iceweasel
# cd /usr/lib/iceweasel/plugins
# ln -s /usr/lib/flashplayer/libflashplayer.so libflashplayer.so
C'est tout. Après avoir redémarré Iceweasel, about:plugins (dans la barre d'adresse du navigateur) doit annoncer que flash est installé (2 lignes : Shockwave Flash et FutureSplash Player)

Google Chrome


Même principe sauf qu'on va remplacer la lib utilisée par défaut par celle qu'on a récupérée (en lui donnant évidemment le nom de la lib d'origine utilisée par Chrome).
# cd /opt/google/chrome
# mv libgcflashplayer.so libgcflashplayer.so.orig
# ln -s /usr/lib/flashplayer/libflashplayer.so libgcflashplayer.so

Comme on dit, "chez moi ça marche". Si vous avez une autre solution, n'hésitez pas à lâcher votre commentaire.

5/10/10

Installer compiz-fusion sur Debian Lenny - 05/10


Une commande qui commence par # est exécutée en tant que root
Une commande qui commence par $ est exécutée avec votre compte utilisateur.

Nvidia


Tout d'abord, pour ceux qui ont une carte Nvidia, voici la marche à suivre pour respecter le Debian-Way.

Ajouter les dépôts pour 'contrib' et 'non-free' dans son /etc/apt/sources.list :
deb http://ftp.fr.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ lenny main contrib non-free
deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free
suivi d'un :
# apt-get update
Installer le nécessaire pour compiler le module
# apt-get install build-essential nvidia-kernel-common module-assistant mesa-utils
et générer le module par :
# module-assistant auto-install nvidia
Si certains paquets manquent, ils devraient être installés.

Charger le module :
# modprobe nvidia
Ajouter dans son /etc/X11/xorg.conf (faites auparavant une copie de votre xorg.conf, on ne sait jamais ;) la section Module
Section "Module"
  Load "glx"
EndSection
puis fermer la session.

Ouvrir une session et depuis un Term, lancer la commande :
$ glxinfo|more
Une ligne de la sortie devrait indiquer :
direct rendering: Yes
(dans la foulée, on peut aussi essayer glxgears)

Compiz


Installer les paquets nécessaires :
# apt-get install compiz
puis modifier son fichier xorg.conf.

Ajouter à la section Device les lignes suivantes :
Driver "nvidia"
Option "AddARGBGLXVisuals" "True" 
Option "AllowGLXWithComposite" "True"
Ajouter à la section Screen :
DefaultDepth  24
Créer une section Extensions :
Section "Extensions" 
  Option "Composite" "Enable" 
EndSection
Pour inscrire compiz en tant que Window Manager par défaut :
$ echo "export WINDOW_MANAGER=/usr/bin/compiz" >> ~/.gnomerc

cet article a été écrit avec le rustre gnome-blog-poster pour tester.

7/26/07

Linus Torvalds : I've never used Debian


A curiosity: which is your favourite distribution, and which on e do you consider more secure?

I don’t really tend to care much, I’ve changed distributions over the years, and to me the most important thing tends to be that they are easy to install and upgrade, and allow me to do the only part I really care about - the kernel.

So the only major distribution I’ve never used has actually been Debian, exactly because that has traditionally been harder to install. Which sounds kind of strange, since Debian is also considered to be the “hard-core technical” distribution, but that’s literally exactly what I personally do not want in a distro. I’ll take the nice ones with simple installers etc, because to me, that’s the whole and only point of using a distribution in the first place.

So I’ve used SuSE, Red Hat, Ubuntu, YDL (I ran my main setup on PowerPC-based machines for a while, and YDL - Yellow Dog Linux - ended up the easiest choice). Right now, most of my machines seem to have Fedora 7 on then, but that’s only a statement of fact, not meant to be that I think it’s necessarily “better” than the other distros.

(emphasis is mine)

« Debian, plus difficile à installer », rien que les mots me font rire.

Maintenant, tout dépend de quoi on parle. S'agit-il d'installer un serveur ou un desktop ? Mais même pour un desktop, bien que cette image de distribution « difficile à installer » colle à la peau de la Debian, à mon sens, ce n'est plus vrai depuis l'arrivée de la Etch.

Quant aux serveurs, ce que je leur demande, ce n'est pas d'être facile à installer mais de fonctionner sans « me prendre la tête » une fois en production et parmi toutes les distributions utilisées depuis plus de deux lustres maintenant, la Debian est la seule à avoir répondu à mes attentes.

the most important thing tends to be that they are easy to install and upgrade
(emphasis is mine)

La Debian est certainement la plus facile à upgrader.

Allez... apt-get remove linus-comment ;)

source : oneopensource.it

7/6/07

Voir une session shell en temps réel


Un post rapide en pensant à quelqu'un qui va dispenser fin Août une formation « Administration Debian ».

Pour suivre un cours et voir ce que le formateur écrit, il y a évidemment le rétro-projo mais c'est tout de même moins fun que gems :

# apt-get install gems

gems est composé d'un serveur et d'un client qui permet de suivre en temps réel ce qui est tapé dans la console du serveur.

Une petite démo sera sans doute plus parlante :


[ECHAP] pour arrêter le gif animé

1/21/07

Utiliser des applications Windows sous Linux (Debian Etch)


Lorsqu'on n'a pas le choix et qu'on souhaite utiliser une application appartenant au monde Windows, plusieurs solutions existent.

La première est d'essayer d'installer l'application en question sur son poste Linux en utilisant Wine. Si ça marche, on est sauvé. En cas d'échec, si on dispose d'une machine adaptée, la deuxième solution est d'installer Windows sur son poste Linux avec QEMU ou VMWare (voire faire l'image avec QEMU et installer Windows via le VMWare Player qui n'est pas libre mais néanmoins gratuit et très efficace). Enfin, une autre solution peut être d'accéder à un poste Windows distant avec rdesktop (« avec ou sans » son frontend tsclient).

QEMU, WMWare et rdesktop ont par contre l'inconvénient majeur de présenter à l'utilisateur l'environnement complet de Windows avec bureau et « tout le toutim Microsoft ». Tout ça pour utiliser une application particulière pendant quelques minutes, on a souvent l'impression d'utiliser un « canon de 75 » pour tuer un moustique. J'ai parfois besoin d'utiliser un applicatif de comptabilité et gestion commerciale sous Windows et cela me rebute réellement d'avoir devant les yeux l'environnement complet d'XP juste pour accéder à une facture. Je pense qu'il peut en être de même pour ceux qui développent des sites Web et qui ont juste besoin de contrôler le visuel avec Internet Explorer 7.

Heureusement, une nouvelle voie est proposée gratuitement par la société 2x. Comme l'explique très bien cet article, il suffit d'installer 2X Application Server for Windows Terminal Services sur le poste Windows XP (ou le serveur 2003) et décider des applications à publier. L'installation de l'application et les choix des applications à publier sont d'une simplicité enfantine (que ce soit pour la partie Windows ou l'installation et l'utilisation de la partie Linux), je ne m'attarderai donc pas sur ce sujet, l'article de SearchOpenSource.com étant très clair.

Bien que non précisé dans l'article, cela fonctionne aussi avec un simple VMWare Player ou pour l'accès à des applications d'un poste XP distant (cf vidéo).

Ce que j'apporterai en complément, c'est qu'il faut que la session de l'utilisateur du XP distant ou de la VMWare soit fermée pour que cela fonctionne correctement (sinon, on se retrouve dans un cadre de type RDP classique avec le bureau). D'autre part, par défaut, le clavier est de type QWERTY. Ainsi que le montre l'aide d'appserverclient, la possibilité de paramétrer cette option sera pour plus tard :

$ ./appserverclient 
2X Application Server Client.
Version 1.0.1775. Copyright (C) 2005-2006 2X Software.
Usage: ./appserverclient options
../..
-k: path to keymap file (not implemented yet)
En attendant, pauvre français, nous devrons nous contenter de faire une MAJ+ALT (gauche) pour passer le clavier en français pour chaque application ou commencer par appeler les « Options régionales » du « Panneau de configuration » et positionner le clavier français ce qui règle le problème pour la session en cours. En ce qui me concerne, comme ce n'est que pour utiliser une application bien précise de temps en temps, le MAJ+ALT me convient parfaitement.

Comme le montre la vidéo d'une piètre qualité (désolé mais la détérioration est terrible par rapport à la vidéo de base), l'appel du premier programme (ie7 dans la vidéo) ouvre la session ce qui rend la premier appel depuis Linux bloquant (il faut donc passer sur un autre screen/term pour lancer les programmes suivants). Pour libérer la session, un CTRL+C sur l'écran de la première commande est donc nécessaire.



Reste à noter que cette solution ne fonctionnera pas sur un Windows 2000 Pro ou un autre OS MS car la console 2x utilise bien sûr le bureau à distance d'XP ou TSE pour un serveur 2003. Si, d'autre part, vous possédez un serveur Web sur votre poste Windows, il faudra délocaliser le port d'écoute de la console 2x qui, par défaut, est sur le port 80. Enfin, les windoziens pourront découvrir les autres possibilités de la solution 2x comme la publication web des applications.

1/17/07

Sortie officielle de Flash 9 pour Linux (Debian Etch)


La version finale du player Flash 9 vient de sortir.

Récupérer l'archive en tar.gz et fermer le navigateur.

$ tar xvzf install_flash_player_9_linux.tar.gz
Passer en root pour installer le plugin
# cd install_flash_player_9_linux
# ./flashplayer-installer
Si vous utilisez Firefox :
Please enter the installation path of the Mozilla, SeaMonkey,
or Firefox bdir= /usr/lib/firefox

Adobe Flash Player 9 will be installed in the following directory:
Browser installation directory = /usr/lib/firefox
Proceed with the installation? (y/n/q): y
Installation complete.

Perform another installation? (y/n): n

Please log out of this session and log in for the changes to take effect.

The Adobe Flash Player installation is complete.rowser (i.e., /usr/lib/mozilla): /usr/lib/firefox
Redémarrer Firefox et se rendre ici pour contrôler si Flash est correctement installé.

Installation pour le fun « à la geek » :
Une fois l'archive récupérée dans son Home Directory :
$ tar xvzf install_flash_player_9_linux.tar.gz
$ su
# cp {install_flash_player_9_linux/,/usr/lib/firefox/}libflashplayer.so

1/15/07

Peu utilisé mais tellement élégant


Lorsqu'on sait que :

echo a{b,c,d}e
retourne
abe ace ade

Il est bien plus élégant et bien plus rapide d'écrire :
cp .vimrc{,.bak}
que
cp .vimrc .vimrc.bak

ou
mkdir -p foo1/foo2/{src,examples,app}
que
mkdir -p foo1/foo2/src
mkdir foo1/foo2/examples
mkdir foo1/foo2/app

1/14/07

pipe, fifo & ssh


L'espace de stockage d'un serveur ne permet plus de faire une archive car le cumul de la taille du tarball et des données existantes sur le serveur représente plus que l'espace disponible.

Dans ces conditions, comment effectuer un transfert ou une copie des données sur un autre serveur ?

Un pipe utilisé via ssh va venir à notre secours (FULL est le serveur plein, /srv le répertoire à sauvegarder et EMPTY le serveur qui récupère l'archive).

Depuis FULL :

# mkfifo /tmp/fifo
# tar czf /tmp/fifo /srv

La dernière commande entrée est bloquante. FULL attend qu'on lise la fifo.

Depuis EMPTY, on va aller lire la fifo pour récupérer le contenu du tarball :
# ssh -e none FULL cat /tmp/fifo > mon_tarball.tgz

1/13/07

remind & backtick screen


UPDATE 15/01 :
modif :
- section 1°) (>> au lieu de >)
- section 2°) (script modifié)
- section 4°) (alias r et vr)
motif :
une alerte non-consultée pouvait être écrasée par l'alerte suivante


Comme vu précédemment, l'affichage des alertes de remind peut se faire via des fenêtres pop-up (gxmessage ou autre). Néanmoins, cela représente des défauts majeurs dont celui de perdre le focus au moment le plus inopportun (lois de Murphy en action). Enfin, ce n'est pas le plus adapté pour des connexions ssh et ça n'a aucun intérêt lorsqu'on passe 95% de son temps dans des screen.

Reste à mettre en place une solution qui permette d'être alerté sans pour autant perturber l'activité en cours sur les différents écrans. Utiliser le « backtick » de screen est ce qui m'a paru le moins « obstrusif ».

1°) On commence par demander à remind d'écrire ses alertes dans un fichier qu'on appellera .rappels. Pour cela, on lance la commande suivante au démarrage de X et/ou lors du login de l'utilisateur.

remind -zk"echo %s >> /home/mon_user/.rappels" &

2°) On crée un script permettant de lire le nombre d'alertes envoyées par remind dans le fichier .rappels (script remind-me.sh à mettre dans ~/bin) :
#!/bin/sh
# remind-me.sh (bc 2007)
# modifier RAPPEL_FILE pour votre usage
RAPPEL_FILE='/home/mon_user/.rappels'

if [ -e $RAPPEL_FILE ] && [ -s $RAPPEL_FILE ]; then
sort -u $RAPPEL_FILE -o $RAPPEL_FILE
nbl=`wc -l $RAPPEL_FILE | cut -f1 -d' '`
case "$nbl" in
"1")
nbw=`wc -w $RAPPEL_FILE | cut -f1 -d' '`
if [ $nbw -gt 0 ]; then
echo "1 rappel"
else
exit 0
fi
;;
*)
echo "$nbl rappels"
;;
esac
else
exit 0
fi

3°) On modifie le .screenrc de l'utilisateur pour afficher le backtick qui utilise le script remind-me.sh. Voici une proposition pour la partie qui nous intéresse :
hardstatus on
hardstatus alwayslastline
hardstatus string '%{= kG}[%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{R}%{+B} %1` %{g}%{-B}][%{B} %D %d/%m %{W}%c %{g}]'
backtick 1 0 60 remind-me.sh

On demande que le rafraîchissement se fasse toutes les minutes.

4°) On crée 2 alias (dans son .bash_aliases ou son .bashrc). Le premier alias 'r' (comme 'rappels') affichera le contenu de .rappels alors que le second alias 'vr' (comme 'vider les rappels') videra le contenu du fichier ~/.rappels.
alias r='sort -u ~/.rappels'
alias vr='> ~/.rappels'

En résumé, ça donne ce résultat :

Pour la démo, le rafraîchissement du backtick est de 5 secondes.

1/12/07

remind en français (Debian Etch)


wyrd, le compagnon de remindPour mon organisation personnelle, en complément de Google Calendar, j'utilise l'excellent remind. Il est sans doute d'un abord plus rude que celebrat mais permet des paramétrages et des rappels que même les ténors du marché ne savent pas gérer.

Avec remind, il devient par exemple très simple de mettre en place un rappel pour « le dernier Lundi de chaque mois » ce que permettent difficilement voire pas du tout la plupart des agendas actuels. Sachant que remind est aussi capable de lancer des commandes ou des scripts, on imagine assez facilement tout le potentiel :
REM Lundi 1 --7 RUN /home/mon_user/bin/mon_backup.sh
=> lancera par exemple un backup personnel tous les derniers Lundi de chaque mois

Pour les alertes, il suffit de lancer la commande suivante au démarrage du window manager :
remind -zk"gxmessage -center -default "okay" -title "Rappel" -borderless %s" &
(apt-get install gmessage s'il n'est pas installé)

Malheureusement, par défaut, remind est en anglais car le choix du langage se fait au moment de la compilation. Voici donc le paquet remind pour Debian Etch avec la localisation française.

Si on souhaite gérer ses événements visuellement, il est même possible d'utiliser des frontends comme le célèbre wyrd.

1/3/07

.inputrc


Pour faire une recherche dans le .bash_history, CTRL+R est disponible par défaut.

En complément, il est possible d'effectuer une recherche sur le début de la commande avec les flèches haut et bas après avoir rajouté 2 lignes à son .inputrc (ou dans le /etc/inputrc pour la mise à disposition de tous les utilisateurs) :

# Déplacement dans l'historique en utilisant les flèches bas et haut
"\e[A": history-search-backward
"\e[B": history-search-forward

et quitte à modifier son inputrc :
# Les beeps me saoulent
set bell-style visible
# Par pitié, 1 seul TAB pour le complètement !
set show-all-if-ambiguous on

12/30/06

.bash_profile sous X (Debian Etch)


Lorsqu'on est habitué à ranger ses scripts dans ~/bin, sous X, on peut être étonné que ces fichiers ne soient pas dans le PATH alors que le ~/.bash_profile y fait référence :

# set PATH so it includes user's private bin if it exists
if [ -d ~/bin ] ; then
PATH=~/bin:"${PATH}"
fi

C'est tout simplement que le ~/.bash_profile est dédié au mode console et qu'il n'est pas lu lors d'une connexion sous X.

Pour y remédier, il suffit de créer un fichier dans /etc/X11/Xsession.d/. Par exemple, on peut créer un fichier 70bash_profile dont le contenu sera :

if [ -f ${HOME}/.bash_profile ]; then
. ${HOME}/.bash_profile
fi

Ainsi, lors de la prochaine connexion sous X, le ~/bin sera rajouté au PATH et les scripts seront directement accessibles.

12/22/06

bash prompt color pour screen (Debian Etch)


Quand on passe sa vie dans des consoles, il est préférable de repérer visuellement si on est dans un terminal screen ou non.

Une méthode consiste à changer la forme du prompt. A titre d'exemple, on peut paramétrer le prompt de l'utilisateur courant pour qu'il soit de couleur cyan et celui de root rouge. Lorsqu'on entre dans un terminal screen, on peut par exemple passer le prompt en gras pour indiquer qu'on est dans un screen. Cela ne choque pas et permet de savoir immédiatement s'il s'agit d'un screen lorsqu'on passe en revue les terminaux ouverts.

Il faut modifier le .bashrc par défaut de l'utilisateur (et le /etc/skel/.bashrc si vous créez régulièrement des utilisateurs) en rajoutant 2 sections pour le « case "$TERM" » :

xterm*|rxvt*)
PS1='${debian_chroot:+($debian_chroot)}\e[0;36m\u@\h:\e[0;37m\w\e[0;36m\$\e[0;37m '
;;
screen)
PS1='${debian_chroot:+($debian_chroot)}\e[1;36m\u@\h:\e[1;37m\w\e[1;36m\$\e[0;37m '
;;

Pour root, on rajoute la section :

case "$TERM" in
screen)
PS1='\e[1;31m\u@\h:\e[1;37m\w\e[1;31m\$\e[0;37m '
;;
xterm*|rxvt*)
PS1='\e[0;31m\u@\h:\e[0;37m\w\e[0;31m\$\e[0;37m '
;;
*)
PS1='\h:\w\$ '
;;
esac

12/14/06

Beryl 0.1.3 (Debian Etch)


Un blogger a eu l'excellente initiative de créer un dépôt Debian Etch pour Beryl 0.1.3.

Pour l'utiliser, il suffit d'enlever le précédent dépôt utilisé (celui d'Ubuntu si vous aviez suivi cet article) et d'ajouter celui d'Anuradha dans le /etc/apt/sources.list :
# Beryl
deb http://www.linux.lk/~anuradha/beryl/etch/ ./


Rafraîchir la liste des dépôts par :
# apt-get update

Par sécurité, désinstaller la précédente version de Beryl :
# apt-get remove beryl-manager beryl beryl-core beryl-plugins-data beryl-dbus beryl-plugins beryl-settings emerald beryl-dev

Puis finalement installer les paquets du nouveau dépôt :
# apt-get install beryl emerald-themes

12/11/06

Passer d'un driver NVidia 1.0.9631 au Beta Driver NVidia 1.0.9742 (Debian Etch)



Sous Debian Etch, certains jeux comme Wolfenstein Return to Castle ou Wolfenstein Enemy Territory ne fonctionnent pas avec le driver NVidia 1.0.9629 ou souffrent de problèmes d'affichage avec le dernier driver 1.0.9631.

Par contre, le beta driver NVidia 1.0.9742 fonctionne remarquablement bien. L'inconvénient est qu'il faut modifier un fichier du driver avant de l'utiliser. Pour se faciliter la vie lors d'un changement de kernel (où il faut réinstaller le pilote) ou pour passer au driver beta, voici 2 scripts livrés « as-is » (comme on dit habituellement : « Use at your own risk ») :

- get_nvidia_9742_x86.sh télécharge le driver, le modifie puis reconstruit l'archive NVidia.

- install_nvidia_9742.sh arrête le serveur X (pour ceux qui utilisent gdm), installe les paquets Debian Etch nécessaires, installe le driver beta NVidia et relance le serveur X (pour ceux qui utilisent gdm).

L'utilisation de ces scripts s'entendent plus pour un passage d'un driver 1.0.9629 (ou 1.0.9631) au beta driver 1.0.9742 que pour une première installation des drivers NVidia.

Comment utiliser les scripts :

1. Ouvrir un Terminal sous X

2. Passer en root par :
$ su -

3. Créer accessoirement un répertoire pour ranger les scripts :
# mkdir nvidia
# cd nvidia


4. Récupérer les scripts :
# wget http://bcarrere.free.fr/nvidia/get_nvidia_9742_x86.sh
# wget http://bcarrere.free.fr/nvidia/install_nvidia_9742.sh

5. Rendre les scripts exécutables :
# chmod u+x get_nvidia_9742_x86.sh install_nvidia_9742.sh

6. Lancer le script get_nvidia_9742_x86.sh
# ./get_nvidia_9742_x86.sh
Un fois l'exécution du script terminée, un nouveau fichier NVIDIA-Linux-x86-1.0-9742-pkg1-MODIFIED.run doit exister dans le répertoire.

7. Fermer la session X (Clore la session...)

8. Appuyer sur CTRL+ALT+F1 pour passer en mode console

9. Se connecter avec le compte de root

10. Lancer le script
# cd nvidia
# ./install_nvidia_9742.sh

A la fin du script, X est relancé et vous pouvez vous connecter. En cas de changement de kernel, seul le script install_nvidia_9742.sh est à exécuter en tant que root depuis une console (il faut juste laisser le NVIDIA-Linux-x86-1.0-9742-pkg1-MODIFIED.run au même endroit que le script install_nvidia_9742.sh).

12/8/06

Installer Eclipse pour Ruby on Rails (Etch)


Préalable :

- Installer les librairies pour embarquer le navigateur Mozilla
# apt-get install libmozillainterfaces-java

- Récupérer Eclipse 3.2.1

- Détarer l'archive d'Eclipse récupérée
# cd /usr/local
# tar xvzf /chemin_vers_archive/eclipse-SDK-3.2.1-linux-gtk.tar.gz

- Récupérer la localisation française
# cd /usr/local
# unzip /chemin_vers_archive/NLpack1-eclipse-SDK-3.2.1-gtk.zip

- Lancer Eclipse en root pour installer les composants pour Ruby on Rails
ALT+F2 et taper « gksu /usr/local/eclipse/eclipse » pour lancer Eclipse.


- Taper le mot de passe de root
- Cliquer sur Ok pour valider la sélection de l'espace de travail.


- Ouvrir le menu Aide > Mises à jour de logiciels > Rechercher et installer...


- Sélectionner Rechercher les nouveaux dispositifs à installer.


- Choisir le bouton Nouveau site distant...


- Renseigner la fenêtre pour les Ruby Development Tools
Nom : RDT
Adresse URL : http://updatesite.rubypeople.org/release


- Cliquer à nouveau sur le bouton Nouveau site distant... pour RadRails
Nom : RadRails
Adresse URL : http://radrails.sourceforge.net/update


- Cliquer sur le bouton Terminer de la fenêtre principale.


- Sélectionner les cases RadRails et RDT puis cliquer sur le bouton Suivant >


- Accepter les licences et cliquer sur Suivant >


- Confirmer l'installation des plugins en cliquant sur Terminer


- Eclipse récupère les plugins demandés


- Cliquer sur Installer tout


- Lorsqu'Eclipse demande de se relancer, répondre Non


- Fermer Eclipse

- Créer un script permettant à Eclipse de prendre en charge le navigateur
$ touch eclipse.sh && chmod +x eclipse.sh
$ vi eclipse.sh

Contenu du fichier :
#!/bin/sh
MOZILLA_FIVE_HOME=/usr/lib/xulrunner
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MOZILLA_FIVE_HOME
export MOZILLA_FIVE_HOME LD_LIBRARY_PATH
/usr/local/eclipse/eclipse
- Lancer Eclipse en utilisant le script
$ ./eclipse.sh &

- Menu Fenêtre > Préférences...
- Dans l'arborescence de gauche, sélectionner Ruby puis Installed Interpreters
- Cliquer sur le bouton Add


- Renseigner la fenêtre comme suit :
Interpreter Name : ruby
Location : /usr/bin/ruby


- Sélectionner dans l'arborescence à gauche la ligne Ri/rdoc et renseigner comme suit :
RDoc path : /usr/bin/rdoc
Ri path : /usr/bin/ri
Cliquer ensuite sur le bouton Appliquer


- Dans l'arborescence de gauche, sélectionner Rails puis Configuration et renseigner comme suit :
Rails path : /usr/bin/rails
Rake path : /usr/bin/rake
Valider avec le bouton Ok pour fermer la fenêtre.


- Eclipse peut maintenant être utilisé pour Ruby on Rails :


- L'auto-complétion se fait par CTRL+Espace :

Installer Ruby on Rails (Etch)


1. Installer Ruby
# apt-get install ruby rdoc irb libyaml-ruby libzlib-ruby ri

2. Installer rubygems
# apt-get install rubygems
# gem update --system

3. Installer Ruby on Rails
# gem install rails --include-dependencies

4. Tester l'installation (mode utilisateur)
$ rails test_rails
$ cd test_rails
$ ruby script/server
Ouvrir un navigateur et se rendre sur http://localhost:3000 qui doit afficher une page concernant notre application test_rails.

Installer le JRE de Sun (Debian way)


Ancien « Debian way » pour installer le JRE de Sun :

1. Récupérer le JRE sur le site de Sun. A ce jour, le JRE 1.5.0 update 10.

2. Installer ce qui est nécessaire pour créer un paquet Debian Java
# apt-get install java-package
(si vous ne disposez pas du paquet java-package, ajouter la source contrib à votre sources.list)

3. Repasser en mode utilisateur
$ fakeroot make-jpkg /chemin_vers_jre_sun/jre-1_5_0_10-linux-i586.bin

4. Installer le paquet généré en root
# dpkg -i /chemin_vers_paquet/sun-j2re1.5_1.5.0+update10_i386.deb

5. Plugin Java pour Firefox
# ln -s /usr/lib/j2re1.5-sun/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/firefox/plugins/libjavaplugin_oji.so

6. Redémarrer Firefox et tester le plugin Java en se rendant sur java.com. Le bouton « Vérifier l'installation » devrait retourner ce type de renseignement.


7. Tester la version de Java avec « java -version » qui doit retourner :
$ java -version
java version "1.5.0_10"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_10-b03)
Java HotSpot(TM) Client VM (build 1.5.0_10-b03, mixed mode, sharing)


Nouveau « Debian Way » pour installer le JRE de Sun

Le JRE Sun (de même que le JDK Sun) existe dorénavant dans les dépôts non-free de Etch. Malheureusement, la version n'est pas la 1.5.0 update 10 mais seulement l'update 8. Si vous n'êtes pas à un update près, il est donc possible d'installer le JRE de Sun en rajoutant simplement les dépôts non-free à son sources.list puis d'installer directement le JRE par :
# apt-get install sun-java5-jre sun-java5-plugin

S'assurer ensuite que le JRE de Sun est bien la version par défaut de Java pour le système par :
# update-java-alternatives --set java-1.5.0-sun

On vérifie avec « java -version » qui doit retourner :
$ java -version
java version "1.5.0_08"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_08-b03)
Java HotSpot(TM) Client VM (build 1.5.0_08-b03, mixed mode, sharing)

La vérification du plugin pour firefox doit alors retourner :