Utilisateur, à titre personnel, depuis maintenant plus de deux ans de stations Sun, je me suis lancé dans Solaris 10, et je commence à regarder de près du coté d'OpenSolaris. Pour aller plus loin je souhaitais disposer d'une station pouvant être une machine me servant de desktop. Mon Ultra 80 est certes une très bonne machine, mais un peu poussive lorsqu'il s'agit de faire tourner un environnement graphique, et elle ne tient pas du tout la comparaison par rapport à mon PowerBook ou à mon PC sous KDE.
J'ai récemment fait l'acquisition d'une Blade 1000, équipée de 2Go de RAM, de deux processeurs UltraSPARC III @ 750Mhz et de deux cartes graphiques Expert3D. Mon objectif est d'en faire une station de type "desktop" pouvant devenir ma machine principale à la place de mon AthlonXP, et en complément de mon PowerBook. Je ne sais pas encore à l'heure où j'écris ces lignes si je ferai le switch, mais je vais mettre en place la machine "comme si je le faisais".
Cet article est le premier de ce qui sera peut-être une série décrivant l'installation et la configuration des logiciels me permettant de transférer mes applications et mes données de Linux vers Solaris 10.
Je tiens à remercier Thomas Lecomte, pour m'avoir donné l'idée initiale et avoir fait un premier script (et sans doute plus à venir dans un autre article...). Je remercie aussi Andreas Almroth, du projet Blastwave, pour son packaging.
Une des premières questions qui se pose après l'installation de la machine est quel environnement graphique utiliser ?
Solaris 10 est fourni avec deux environnements, CDE et JDS. Malgré leurs qualités, je ne compte pas les utiliser comme environnement principal. Les deux sont de bons environnements, l'un plus léger que l'autre... mais à l'ergonomie un peu moins tendance. Cependant, même si JDS n'est pas réputé pour ses performances, j'ai eu l'impression que la dernière release de Solaris 10 (01/06) propose une version plus rapide, et que cela devenait utilisable sur mon Ultra 80. A moins que le fait de ne pas l'avoir utilisé depuis un petit moment me donne une fausse impression de vitesse :)
Après avoir rapidement écarté des environnements tels que KDE ou Gnome (principalement pour leur lourdeur), mon choix se porte sur XFce, qui offre un bon compromis (à mes yeux, chacun a son avis selon ses goûts et son utilisation :) ) entre performances, fonctionnalités et ergonomie.
Afin de vous donner une petite idée de ce qui vous attend (si vous ne connaissez pas déjà XFce) voici trois copies d'écran issues du site officiel du projet.
Enlightment 0.17 m'attire beaucoup aussi, mais je préfère commencer par quelque chose de plus simple à utiliser et surtout à installer. En effet, il n'existe pas à ce jour de distribution des binaires de E17 ou même de version stable. Simplement des versions CVS, qui marchent certes, mais pour lesquelles tout est à faire ou presque. E17 viendra donc après.
Il est donc temps de se jeter à l'eau et d'installer XFce. Pour cela une chose s'impose... un petit tour sur le site du projet !.
Le menu du site nous propose de télécharger soit les sources de la dernière version stable, soit une distribution binaire, soit la version en cours de développement (XFce utilise SubVersion).
Le site du projet XFce ne diffuse que les sources, comme l'annonce l'avertissement suivant (recopié du site). Les versions binaires sont des articlesutions externes.
Le projet Xfce 4 ne rend officiellement disponible que le code source de son environnement de bureau.
Cependant, des paquets binaires peuvent également être disponibles pour votre distribution grâce à la articlesution d'autres personnes. Notez que la version proposée ici n'est pas toujours la dernière version officielle de Xfce 4.
Une version pour Solaris est disponible sur le site de Blastwave. Par contre, celle-ci n'est malheureusement pas à jour. Je choisis tout de même de l'utiliser, et de la mettre à jour ensuite en utilisant les dernières versions des sources stables.
Avant de débuter la procédure d'installation, voici une brève introduction au projet Blastwave.
Blastwave est un effort communautaire pour créer des packages pour les logiciels libres, qui peuvent être installés automatiquement au travers du réseau sur un ordinateur faisant tourner Solaris (à base d'architecture SPARC ou x86).
Blastwave possède une ferme de serveurs de compilation mise à disposition des développeurs et des mainteneurs de la communauté Solaris. Tous les packages sont construits et testés dans un environnement standardisé en utilisant les outils de Sun ONE Studio 8 et Sun ONE Studio 10, aussi bien que GCC.
L'objectif initial du site blastwave.org était de fournir aux utilisateurs de Solaris un accès aux logiciels Open Source indépendamment de l'architecture des machines. Maintenant, Blastwave se définit comme un site de la communauté Open Source pour les utilisateurs de Solaris.
Vous en saurez plus en lisant ce texte de présentation du projet, écrit dans la langue de Shakespeare (ou de David Beckham selon vos références...).
L'installation depuis le site de Blastwave demande d'avoir installé l'outil pkg-get, et configuré les sources en ligne. La procédure d'installation est décrite ici. Je vous invite à lire ce lien si vous n'êtes pas familier avec pkg-get.
Une fois pkg-get installé et configuré, l'installation de XFce est triviale. Les deux étapes principales étant de taper la commande pkg-get pour télécharger les packages, et d'attendre que ce soit fini :)
Voici un peu plus en détail les principales étapes. Tout d'abord, voyons quels sont les packages disponibles. Ceci se fait à l'aide de la commande pkg-get -a ou pkg-get available.
bash-3.00# pkg-get available | grep xfce
xfce 4.2.1.1,REV=2005.04.20
xfce_appfinder 4.2.1,REV=2005.04.21
xfce_calendar 4.2.1,REV=2005.04.21
xfce_desktop 4.2.1,REV=2005.04.21
xfce_dtlogin 4.2.1.1,REV=2005.05.18
xfce_engine 2.2.6,REV=2005.04.21
xfce_iconbox 4.2.1,REV=2005.04.21
xfce_iconthemes 4.2.1,REV=2005.04.21
xfce_launcher 4.2.1,REV=2005.04.21
xfce_libs 4.2.1,REV=2005.04.21
xfce_manager 4.2.1,REV=2005.04.21
xfce_mixer 4.2.1,REV=2005.04.21
xfce_panel 4.2.1.1,REV=2005.04.21
xfce_plugins 4.2.1,REV=2005.04.21
xfce_print 4.2.1,REV=2005.04.21
xfce_session 4.2.1,REV=2005.04.21
xfce_systemload 0.3.4
xfce_systray 4.2.1,REV=2005.04.21
xfce_toys 4.2.1,REV=2005.04.21
xfce_utils 4.2.1,REV=2005.04.21
xfce_xffm 4.2.1,REV=2005.04.21
xfce_xfwm 4.2.1,REV=2005.04.22
xfce_xfwmthemes 4.2.1,REV=2005.04.22
Il ne reste plus qu'à tout installer... En pratique nous n'avons besoin que du package xfce_dtlogin puisque un peu plus loin nous allons recompiler la dernière version en utilisant les chemins par défaut. Comme son nom l'indique ce package (xfce_dtlogin) configure dt_login pour permettre de lancer une session XFce depuis l'écran de login.
Cependant, je choisis de tout installer. Cette méthode, un peu brutale, permet d'installer les dépendances, et de garantir une installation fonctionnelle. Etant donné que j'utilise au quotidien le système de package de Blastwave, ceci ne me pose pas de problème. Mais pour d'autres, faites attention à ne pas dupliquer l'installation de vos librairies (gtk par exemple).
Après avoir vérifié (avec le grep ci-dessus) la liste des packages que je souhaite installer, la commande suivante me permet de tout installer, dépendances comprises, et de répondre oui à toutes les questions :
bash-3.00# yes | pkg-get install `pkg-get available | grep xfce | awk '{ print $1 }'`
Après quelques minutes à quelques dizaines de minutes d'installation, selon votre connexion et la charge du miroir, il n'y a plus qu'à redémarrer et XFce est disponible.
Maintenant que XFce est installé, il faut recompiler et installer la dernière version. Je fais l'hypothèse que gcc est installé sur la machine et qu'il est dans le PATH (autrement vous pouvez l'installer grâce à Blastwave) et que les compilations sont faite par l'utilisateur root. Ceci est nécessaire étant donné qu'il y aura plusieurs make install à faire durant la procédure automatique.
Si gcc n'est pas encore sur votre machine vous pouvez installer gcc4 depuis Blastwave selon le même principe que XFce. La commande suivante vous permet de savoir quels sont les packages disponibles.
-bash-3.00# pkg-get -a | grep gcc4
gcc4ada 4.0.2,REV=2005.09.29
gcc4adart 4.0.2,REV=2005.09.29
gcc4core 4.0.2,REV=2005.09.29
gcc4corert 4.0.2,REV=2005.09.29
gcc4g++ 4.0.2,REV=2005.09.29
gcc4g++rt 4.0.2,REV=2005.09.29
gcc4g95 4.0.2,REV=2005.09.29
gcc4g95rt 4.0.2,REV=2005.09.29
gcc4java 4.0.2,REV=2005.09.29
gcc4javart 4.0.2,REV=2005.09.29
gcc4objc 4.0.2,REV=2005.09.29
gcc4objcrt 4.0.2,REV=2005.09.29
Vous pouvez installer gcc par la commande suivante (en espèrant qu'il ne manque pas de package ... documenter après coup c'est mal ! (c) )
-bash-3.00# pkg-get -i gcc4core gcc4corert gcc4g++ gcc4g++rt
Vous aurez aussi très certainement besoin de gmake, binutils, pkgconfig automake et autoconf (j'en oublie sans doute d'autres, et je hais la rétrodoc ... j'aurais dû le noter ! Normalement la sortie de "configure" vous donnera une erreur, n'hésitez pas à utiliser les forums pour me poser des questions à ce sujet).
J'utilise dans mon PATH les chemins /opt/csw/bin et /opt/csw/gcc4/bin. Ceux-ci sont ajoutés à mon environnement par mon fichier .bash_profile (donc évidement j'utilise bash comme shell...) dans lequel j'ai ajouté les lignes suivantes. Voici un extrait de mon .bash_profile, qui donnera des idées aux débutants.
-bash-3.00$ cat .bash_profile
# Modification du PATH d'execution. Attention l'ordre est important !
export PATH=$PATH:/opt/csw/bin export PATH=$PATH:/opt/csw/gcc4/bin export PATH=$PATH:/opt/csw/xemacs/bin export PATH=$PATH:/usr/ccs/bin export PATH=$PATH:/usr/sfw/bin export PATH=$PATH:/usr/openwin/bin export PATH=$PATH:~/bin # Options de compilation par defaut pour GCC export CC=gcc export LD_OPTIONS="-R/opt/csw/lib -L/opt/csw/lib" export CFLAGS="-mcpu=ultrasparc3 -mtune=ultrasparc3 -O3 -I/opt/csw/include -L/opt/csw/lib" export CPPFLAGS=$CFLAGS
La première étape est de récuperer les sources de la dernière version de XFce. Retour au site officiel et à la page de download !
Plusieurs sites sont disponibles et proposent les sources. Que ce soit depuis le site de xfce.org ou depuis des miroirs, dont SourceForge. Je choisis ce dernier, qui me propose à nouveau une série de miroir dont OVH, le plus près de chez moi...
Etant donné que je compte suivre les évolutions de XFce et recompiler régulièrement les sources des versions stables, j'ai écrit un petit script bash, nommé getSource.sh (original non ?) qui permet de récuperer les sources depuis le miroir d'OVH et d'extraire les archives. En voici le code :
#!/usr/bin/bash
export PKG_VERSION=4.2.3.2
export PKG_NAME=xfce
# Get the sources
wget http://ovh.dl.sourceforge.net/sourceforge/$PKG_NAME/$PKG_NAME-$PKG_VERSION-src.tar.bz2
# Extract tarballs content
gtar xvfj $PKG_NAME-$PKG_VERSION-src.tar.bz2
rm -f $PKG_NAME-$PKG_VERSION-src.tar.bz2
cd $PKG_NAME-$PKG_VERSION/src
for FILE in *.tar.gz ; do gtar xzf $FILE ; done
rm -f *.tar.gz
Le script précédent utilise deux variables internes, le nom du package et sa version. J'ai choisi de ne pas passer ces informations en arguments, c'est plus simple pour moi et je n'ai pas à me tromper sur les valeurs. Je préfère modifier le contenu du script lorsqu'une nouvelle version est disponible (il n'en sort pas une par jour...).
Le script utilise la commande gtar, qui n'est autre que la commande tar du projet GNU. Cette commande a été installée à l'aide de Blastwave. Etant donné que les commandes GNU ne sont pas exactement les mêmes que celles de Solaris, les binaires obtenus suite à la compilation sont préfixés par un g.
Maintenant que les sources ont été extraites, il reste à les compiler et les installer. Cette opération va aussi être scriptée, bien que pour la première compilation je vous conseille de vérifier les dépendances et les sorties du script configure. Cependant, l'installation préliminaire de XFce par Blastwave et l'utilisation des librairies de Blastwave pour la compilation nous permet de disposer de toutes les bibliothèques nécessaires.
Le script suivant va nous permettre d'automatiser la compilation :
#!/usr/bin/bash
export PKG_VERSION=4.2.3.2
export PKG_NAME=xfce
export CC=gcc
export LD_OPTIONS="-R/opt/csw/lib -L/opt/csw/lib"
export CFLAGS="-O3 -mcpu=ultrasparc3 -mtune=ultrasparc3 -I/opt/csw/include -L/opt/csw/lib"
export CPPFLAGS=$CFLAGS
export PKG_CONFIG_PATH=/opt/csw/lib/pkgconfig
cd $PKG_NAME-$PKG_VERSION/src
for i in dbh-1.0.24 libxfce4util-4.2.3.2 libxfce4mcs-4.2.3 libxfcegui4-4.2.3 \
gtk-xfce-engine-2.2.8 xfce-mcs-manager-4.2.3 xfcalendar-4.2.3 xfce-mcs-plugins-4.2.3 \
xfce-utils-4.2.3 xfce4-appfinder-4.2.3 xfce4-icon-theme-4.2.3 xfce4-iconbox-4.2.3 \
xfce4-panel-4.2.3 xfce4-mixer-4.2.3 xfce4-systray-4.2.3 xfce4-toys-4.2.3 \
xfce4-trigger-launcher-4.2.3 xfdesktop-4.2.3 xffm-4.2.3 xfprint-4.2.3 xfwm4-4.2.3.2 \
xfwm4-themes-4.2.3 xfce4-session-4.2.3 ;
do cd $i
gmake distclean
./configure --prefix=/opt/csw --disable-debug
gmake
gmake install
cd ..
done
cd ../..
Tout comme le précédent, ce script utilise des variables d'environnement contenant le nom du package et le numéro de version. Ceci est discutable selon les habitudes de chacun. Personnellement cela me simplifie la vie en terme de réutilisation de script, et de tests de compilation. A vous de voir ... chacun fait selon ses habitudes :)
Les options de compilation ( CFLAGS ) sont destinées à optimiser le code produit ( -O3 ) et à produire du code pour un processeur UltraSPARC III (au début de l'article je vous parle de la Blade 1000...). A vous de remplacer ces options par celles destinées à votre processeur. Pour cela allez jeter un oeil à la page suivante du site de gcc. Il s'agit d'une page issue du manuel de gcc 4.0.2. A vous d'adapter l'URL selon la version du compilateur que vous utilisez.
Il est important de conserver l'ordre des bibliothèques. Surtout si vous décidez d'utiliser ce script sans installer au préalable XFce depuis Blastwave. Je l'ai testé sans problème et il fonctionne seul. Comme je le disais au début de l'article, vous pouvez tout compiler "from scratch" et n'installer que le package xfce_dtlogin (ou le faire à la main).
Le script est à lancer depuis la racine où vous avez lancé le script de récupération des sources. Ces deux scripts s'utilisent conjointement, le script de compilation navigue dans l'arborescence des sources extraites par le premier. A chaque étape il fait un gmake distclean (version GNU de make donc préfixée par un g selon les standards Blastwave) pour supprimer les résultats des compilations précédentes (inutile lors de la première compilation, mais bien pratique lors de certains tests d'options de compilation ou de benchmark de temps de compilation entre plusieurs machines), et à chaque étape il fait le gmake install faisant suite à la compilation.
Il ne reste plus qu'à lancer le script et attendre la fin de la compilation... ensuite connectez-vous en ouvrant une session XFce, et vous pourrez vérifier la version en faisant un click droit dans le fond du desktop et en choisissant l'option "A propos de XFce"
Que reste-t'il à faire ?
Pour vous pas grand-chose :) Vous pouvez maintenant utiliser la dernière version de XFce sur votre Sun.
Mais pour moi un peu plus de choses afin de complèter cet article. En particulier, donner des exemples de configuration (vous trouverez cependant toutes les informations nécessaires sur xfce.org) et présenter la compilation et l'installation du plugin systemload. Et bien sûr contacter Andreas pour mettre à jour les packages sur Blastwave.
Ceci fera l'objet d'une mise à jour de cet article. Je préfère le rendre disponible maintenant pour que vous puissiez vous faire la main sur la chaîne de compilation.
Dernière mise à jour de cette page : Lundi 20 février 2006. Version : 1.0.4
Fait avec l'éditeur HTML Bluefish sous Solaris 10.