Accès rapide aux articles de la page


Gravatar de Zarer

Installer Xcfa sous OpenSuse 11 

Cette fois, nous innovons.. ;)

Au lieu d'un article sur le site, vous trouverez un fichier pdf et ses sources au format .odt dans cet article..

Je tiens à adresser un hommage à mon ami Claude (développeur de Xcfa) et à sa patience à mon égard..

Je l'embête souvent pour les paquets de programmes tiers pour les différentes distributions GNU Linux ;)

Un grand merci également à toute l'équipe de la Mailing-list linonroot-dev et aux développeurs qui nous font l'amitié d'échanger avec nous ...

Bonne lecture !

Ah, encore un détail mais un gros, le document que vous trouverez pour le tutoriel est sous licence GFDL (GNU Free Documentation Licence).

N'hésitez pas à nous faire vos retours, il nous sont toujours précieux ! :)

Retourner au sommaire

Gravatar de Nicolargo

CactiPlug v0.2 pour lier Cacti et Nagios 

CactiPlug est un plugin que j’ai développer pour lier facilement Cacti (outils de génération de graphe RRD) et Nagios (outils de supervision).


Dennis Yusupoff, un lecteur russe du blog a apporté quelques modifications pratiques:

  • utilisation des hosts name en plus des adresses IP
  • redirection vers une page centralisant l’ensemble des services supervisés

La nouvelle version est disponible ici, la procédure d’installation reste inchangée (consultable là).

Vive l’open-source…

Pour partager ce billet:
  • del.icio.us
  • Scoopeo
  • Technorati
  • Digg
  • BlogMemes Fr
  • blogmarks
  • Google
  • E-mail this story to a friend!
  • Wikio FR
  • TwitThis

Retourner au sommaire

Gravatar de Julien Leatherface

Ubuntu veut aller plus loin que Mac OS X 

Macgeneration publie un billet sur la volonté affichée d’Ubuntu d’aller plus loin dans la facilité d’utilisation et de mise en oeuvre de son système, que Mac OS X.
Mark Shuttleworth le milliardaire sud africain à l’origine d’Ubuntu, dit clairement que son OS a le potentiel pour faire mieux en terme d’expérience utilisateur dont Apple est la référence mondiale (même Steve Balmer le reconnait).
Mais il semblerait que pour atteindre cet objectif Ubuntu devrait contrevenir quelque peu aux principes du logiciel libre.

Partager ce billet : Ces icônes sont des liens vers des sites de partage de signet sociaux où les lecteurs peuvent partager et découvrir de nouveaux liens.
  • Digg
  • del.icio.us
  • Technorati
  • Fleck
  • blogmarks

Retourner au sommaire

Gravatar de Corbier

DimDim Script 

Dimdim est une application intranet-internet de réunion à distance, à l’instar de logiciels comme Netmeeting ou Ekiga. Ainsi, il est possible de diffuser la voix de trois personnes au maximum sur tous les clients, ou de voir la caméra du maître de conférence. Ce dernier peut choisir, en outre, d’afficher :
- son écran
- un document au format PDF
- un document au format Word
- un document au format Excel
- un document au format PowerPoint

Dimdim ne se trouve pas sous forme de logiciel, mais s’intègre à un site Internet déjà existant. L’éxécutable installera un serveur apache, Tomcat. Dès lors, l’intérêt devient énorme quand on pense aux plateformes d’apprentissage en ligne, où les étudiants pourront avoir des cours en direct.

Dimdim semble à terme avoir un gros potentiel, d’autant plus que des paquetages d’installation existent pour différents LCMS (Learning Content Management System) : Claroline, Moodle et SugarCRM et s’installent facilement, comme des modules.

Beaucoup de personnes sur les forums n’arrivent pas à le faire fonctionner sous Ubuntu. Voici un script qui permet le téléchargement et l’installation des paquets nécessaire afin de le faire fonctionner sous Ubuntu.

Install_dimdim.sh

#######ChangeLOG##################
#Createur : Maussion Frederic
#Contact : Fmaussion@starxpert.fr
#Date de creation : 16/05/08
###################################

#Installation des paquets necessaire a dimdim
apt-get update && apt-get -qy install lighttpd openoffice.org sun-java6-jre wget python-setuptools

#On stop lighttpd pour plus tard
/etc/init.d/lighttpd stop

#Telechargement de Dimdim
cd /usr/src/
wget http://surfnet.dl.sourceforge.net/sourceforge/dimdim/Dimdim_Linux_Native_Install_v3.5.tar.gz

#Decompression de dimdim
tar xzvf Dimdim_Linux_Native_Install_v3.5.tar.gz
mv dimdim/ /usr/local/

#Telechargement et installation de cherrypy
wget http://download.cherrypy.org/cherrypy/3.0.3/CherryPy-3.0.3.tar.gz
tar xzvf CherryPy-3.0.3.tar.gz
cd CherryPy-3.0.3
chmod +x *
python setup.py install
cd /usr/src
rm -rf CherryPy-3.0.3/
rm -rf CherryPy-3.0.3.tar.gz

#Telechargement et installation de flup
wget http://www.saddi.com/software/flup/dist/flup-1.0.tar.gz
tar xzvf flup-1.0.tar.gz
cd flup-1.0
chmod +x *
python setup.py install
cd /usr/src/
rm -rf flup-1.0
rm -rf flup-1.0.tar.gz

#Telechargement et installation de zdeamon
wget http://pypi.python.org/packages/source/z/zdaemon/zdaemon-2.0.2.tar.gz
tar xzvf zdaemon-2.0.2.tar.gz
cd zdaemon-2.0.2
python setup.py install
cd /usr/src/
rm -rf zdaemon-2.0.2
rm -rf zdaemon-2.0.2.tar.gz

#On backup les fichiers de configuration que l’on va modificer
cp /usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/conf/wrapper.conf /usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/conf/wrapper.conf.bak
cp /usr/local/dimdim/Mediaserver/mods/toolkit/osconfig.py /usr/local/dimdim/Mediaserver/mods/toolkit/osconfig.py.bak
cp /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_status.sh /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_status.sh.bak
cp /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_start.sh /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_start.sh.bak
cp /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_stop.sh /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_stop.sh.bak
cp /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_watcher.sh /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_watcher.sh.bak
cp /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_daemon_checker.sh /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_daemon_checker.sh.bak
cp /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_check.sh /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_check.sh.bak

#On indique ou se situe le fichier dans une variable
wrapper=/usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/conf/wrapper.conf
osconfig=/usr/local/dimdim/Mediaserver/mods/toolkit/osconfig.py
java=/usr/lib/jvm/java-6-sun-1.6.0.06/jre/lib/i386/jvm.cfg
startdimdim=/usr/bin/startDimdim

#On remplace la commande “source” par un point
sed -e ’s#source#.#’ -i /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_status.sh
sed -e ’s#source#.#’ -i /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_start.sh
sed -e ’s#source#.#’ -i /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_stop.sh
sed -e ’s#source#.#’ -i /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_watcher.sh
sed -e ’s#source#.#’ -i /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_daemon_checker.sh
sed -e ’s#source#.#’ -i /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_check.sh
#Dans le fichier de configuration on remplace le root de java par le notre
sed -e ’s#wrapper.java.command=DIMDIM_JAVA_HOME/bin/java#wrapper.java.command=/usr/lib/jvm/java-6-sun-1.6.0.06/bin/java#’ -i $wrapper

#Dans le fichier de configuration on remplace le root de OOo par le notre
sed -e ’s#/opt/openoffice.org2.3/program/#/usr/lib/openoffice/program/#’ -i $osconfig

#Dans le fichier de configuration de java on indique a java qu’il n’agisse pas en temps que client regle des pb dans openvz
sed -e ’s#-client IF_SERVER_CLASS -server#-client KNOWN#’ -i $java

#Changement de l’executable de lighthttpd
sed -e ’s#/usr/local/dimdim/lighty/sbin/lighttpd#/usr/sbin/lighttpd#’ -i $startdimdim

#On creer les dossiers
mkdir /usr/local/share/swftools

#Copie des fichiers necessaire a dimdim
cp /usr/local/dimdim/swftools/pdf2swf /usr/bin
cp /usr/local/dimdim/swftools/swfextract /usr/bin
cp /usr/local/dimdim/swftools/swfdump /usr/bin
cp /usr/local/dimdim/swftools/libs/* /usr/lib
cp -r /usr/local/dimdim/swftools/swffonts/fonts /usr/local/share/swftools/
cp -r /usr/local/dimdim/swftools/swffonts/swfs /usr/local/share/swftools/

#Export du home de java dans le .bashrc
echo “JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.06/” >> /root/.bashrc
echo “export JAVA_HOME” >> /root/.bashrc
echo “PATH=$JAVA_HOME/bin:$PATH” >> /root/.bashrc
echo “export PATH” >> /root/.bashrc

#Creation de lien symobilques
ln -s /usr/lib/openoffice/program/soffice.bin /usr/bin/soffice.bin
ln -s /usr/local/dimdim/startDimdim.pl /usr/bin/startDimdim
ln -s /usr/local/dimdim/stopDimdim.pl /usr/bin/stopDimdim
ln -s /usr/lib/libpcre.so.0 /usr/lib/libpcre.so.3
#pour wrapper
ln -s /bin/ps /usr/bin/ps

#On applique les permissions aux differents dossier
chmod +x /usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/bin/*
chmod +x /usr/local/dimdim/red5/*
chmod +x /usr/local/dimdim/red5/conf/*
chmod +x /usr/local/dimdim/nginx/sbin/*
chmod +x /usr/local/dimdim/DTP3/Deployment/Reflector/*
chmod +x /usr/local/dimdim/Mediaserver/mods/*
chmod +x /usr/local/dimdim/Mediaserver/www/pages/*
chmod +x /usr/local/dimdim/swftools/*
chmod +x /usr/bin/*
chmod +x /usr/lib/*
chmod +x /usr/local/share/*

#/usr/lib/jvm/java-6-sun-1.6.0.06/jre/lib/i386/jvm.cfg

#Lancement de dimdim
startDimdim

Si vous avez des soucis vous pouvez me contacter sur l’adresse suivante : fmaussion (at) starxpert.fr

Télécharger le script Install_Dimdim.sh

Références :

http://www.dimdim.fr

http://www.dimdim.com

Retourner au sommaire

Gravatar de Kagou

Ubuntu-fr filmé aux RMLL2008 

Freenews TV a filmé[1] le village des associations aux RMLL2008 à Mont de Marsan. Vous pourrez découvrir sur cette vidéo, Mister Didier Roche himself, sur le stand d'Ubuntu-fr, se faire mitrailler de questions par un journaliste qui a l'air de confondre l'association Ubuntu-fr avec Canonical/Ubuntu ;)

Didrocks (pour les intimes) a tenu le coup, gageons qu'il sera encore mieux préparé pour le round suivant :)

PS : Le stand du projet Openstreetmap est également visible sur cette vidéo.

Notes

[1] Voir le film

Retourner au sommaire

Gravatar de Kate

Astro Ubuntu : transformer votre ubuntu en observatoire 

  • 11 votes
    vote oui vote non

Regarder la lune, les planètes et les étoiles c'est passionnant... mais il faut regarder à tour de rôle dans l'oeilleton et le petit dernier doit monter sur une chaise pour espérer voir quelques choses... pas si simple. On va voir comment adapter une webcam (mais là je n'apprendrais rien aux astronomes amateurs qui connaissent bien ces choses là, moi je débute...) et utiliser ce petit matériel sous linux, et plus particulièrement Hardy Heron, afin que tout le monde profite en même temps des belles images livrées par le télescope.

Stellarium ou Qu'y a t'il au télescope ce soir

http://www.stellarium.org/fr/

Dixit le site Stellarium est un logiciel de planétarium open source et gratuit pour votre ordinateur. Il affiche un ciel réaliste en 3D, comme si vous le regardiez à l'oeil nu, aux jumelles ou avec un télescope. Il est utilisé avec des projecteurs de planétarium. Rentrez vos coordonnées et c'est parti !

Ce logiciel permet de savoir ce qu'il est possible de regarder lorsque vous sortez votre télescope.

Ce logiciel fait partie des paquets Ubuntu, et l'installation est donc un jeu d'enfant :

[bash]
sudo aptitude install stellarium

Lancement et configuration

Voici à quoi ressemble stellarium

La manuel de l'utilisateur peut être trouvé ICI

Il faut configurer un minimum le logiciel (position de votre lieu d'observation) afin qu'il y ait correspondance entre ce que l'écran vous affiche et ce que vous pouvez voir dans le ciel.

La molette de la souris vous permet de zoomer sur l'endroit désiré

Il est possible de rechercher des astres très facilement et ensuite de les suivre. On peut par ailleurs accélérer le temps pour voir comment se déplace un astre ou encore savoir s'il sera visible à une date précise.

Maintenant que nous savons ce que nous pouvons voir, intéressons nous à la manière de regarder la nuit étoilée. Comme je suis un pur amateur, j'ai commencé par l'achat d'un télescope SkyWatcher 150/750mm EQ3-2. Maintenant nous allons l'équiper d'une webcam pour pouvoir afficher sur une écran l'image du télescope.

Webcam Philips SPC900NC et accessoires

Le choix de la Webcam Philips SPC900NC n'est pas anodin. Elle est très prisée pour ce genre d'usage chez les amateurs d'astronomie. Elle permet à moindre coût d'obtenir une image de bonne qualité de fait de son capteur CCD.

On peut la trouver sous la forme de pack chez Astroshop au tarif de 159€, ou encore à la maison de l'astronomie. Il comprend, la webcam, l'adaptateur 1"25 et un filtre infra rouge. Il est bien sur possible d'acheter les pièces séparément chez des vendeurs différents afin de gagner de l'argent :

En gros on ne gagne que sur la promo de la webcam.

Voici l'objet :

L'intérêt de cette webcam réside dans ses caractéristiques techniques :

  • Sensor VGA CCD
  • Video resolution VGA (640 x 480)
  • Snapshot resolution 1.3 MP (1240 x 1024)
  • Max. frame rate 90 fps @
  • Lens F2.2, D55°
  • White balance 2600 – 7600
  • Min. illumination < 1 lux
  • Color depth 24 bits

Mais comment faire pour installer l'adaptateur Webcam - 31.75mm!

Pas de documentation. Il ne s'adapte pas directement sur la webcam. Il va donc falloir démonter un partie de celle-ci afin de pouvoir le monter. Nous allons être obligé de démonter la partie Optique/réglage Optique. Pour cela 3 écoles :

  • la manière brute qui consiste à dévisser à fond la molette de réglage de netteté et ensuite tirer fortement sur cette dernière afin de faire sortir les deux pièces (optique + molette). Pour ma part, j'ai cassé une patte de fixation de la molette de réglage lors de ce démontage.
  • la manière Astroshop : Utiliser une fine lame (couteau) pour séparer la molette de réglage du corps de la webcam. La molette est clipsée sur le web cam (cf photo). Il faut donc insérer le couteau dans l'espace entre la molette et le corps de la webcam, faire levier et déposer la molette. Ensuite on enlève l'objectif, et on visse l'adaptateur sur le socle fileté.
  • la manière douce pour laquelle il faut démonter entièrement la webcam. Voir la page suivante qui décrit en fait un patch pour modifier le temps de pause du capteur CCD. La même page en français.

Voila si tout se passe bien vous obtenez cela (pour moi une version cassée des 2 pièces ;) ) :

On peut voir le capteur CCD au fond ainsi que l'emplacement pour visser l'adaptateur :

Ensuite il reste à positionner et visser l'adaptateur :

Il ne reste plus qu'à positionner le tout sur le télescope :

Cheese : Prendre des photos et des films

Le second gros avantage est qu'elle est reconnue sous Ubuntu Hardy Heron :

[bash]
$ lsusb
...
Bus 006 Device 004: ID 0471:0329 Philips 
...

Test via gqcam

On peut tester son fonctionnement à l'aide gqcam, mais il faut spécifier le périphérique de capture, car par défaut l'application recherche /dev/video :

[bash]
$ gqcam -v /dev/video0

L'image n'est pas très jolie, car la webcam n'est pas montée sur le télescope et aucune mise au point n'est faite. Ce test a juste pour objectif le test de bon fonctionnement de la webcam.

Essais de capture vidéo infructueux

Xdtv

Suite à l'article précédent sur Xdtv, j'ai essayé de réaliser la capture vidéo de la webcam par celui-ci. Mais Xdtv ne réussit pas à initialiser le périphérique même en forçant certaines options.

[bash]
$ xdtv 
...
VIDIOC_S_FREQUENCY: Argument invalide
asked for 368x576, and I have 368x480
try to run with -capt_width 368 -capt_height 480
      or -force_capt_width 368 -force_capt_height 480
      or -only_capt_width 368 -only_capt_height 480
...

Avec les options suivantes le programme ne se crashe pas, mais je n'ai pas d'image :

[bash]
$ xdtv -only_capt_width 640 -only_capt_height 480
vlc

Avec vlc, je suis bien arrivé à visualiser l'image de la webcam, je suis aussi arrivé à capturer des vidéos, mais impossible de réaliser les deux en même temps (mais j'ai peut-être mal cherché et pas assez longtemps). De plus, ce n'est pas très pratique, car on ne dispose pas d'un bouton qui permette la capture d'une séquence de la vidéo que l'on regarde. J'ai donc laissé de coté cette solution, même si vlc est vraiment très puissant et très configurable.

Avec Cheese c'est du gâteau (la lorraine me comprendra ;) )

Après quelques recherche je suis tombé sur ce projet : Cheese. Cheese est une application gnome qui permet de prendre des photos et des vidéos à partir d'une webcam. On peut aussi utiliser des effets graphiques grâce à l'utilisation de Gstreamer.

Tout est automatique avec Cheese; cela peut sembler pratique, mais on verra dans la suite que l'absence de réglage est un manque important de l'application.

Lors de ces recherche, je suis aussi tombé sur Cupid, mais qui semble vraiment trop jeune.

Voici l'interface de Cheese, on ne peut pas faire beaucoup plus simple :

Mais tout n'est pas rose dans ce petit logiciel. En témoigne ce post ainsi que les messages d'erreurs dans la console lors de l'acquisition d'une vidéo :

[bash]

$ cheese 

(cheese:7945): GLib-GObject-WARNING **: IA__g_object_notify: object class `GstV4l2Src' has no property named `norm'

(gnome-video-thumbnailer:7963): GStreamer-CRITICAL **: gst_event_new_new_segment_full: assertion `start != -1' failed

(gnome-video-thumbnailer:7963): GStreamer-CRITICAL **: gst_event_new_new_segment_full: assertion `start != -1' failed
gnome-video-thumbnailer couldn't process file: 'file:///home/user/.gnome2/cheese/media/0009.ogg'
Reason: Took too much time to process.

** (cheese:7945): WARNING **: could not load /home/user/.gnome2/cheese/media/0009.ogg (application/ogg)


** (cheese:7945): WARNING **: Changing the `location' property on filesink when a file is open not supported.

(cheese:7945): GStreamer-WARNING **: Element photo_save_bin is not in bin pipeline

(cheese:7945): GStreamer-WARNING **: Name video_save_bin is not unique in bin pipeline, not adding

Ces messages d'erreurs empêchent l'affichage des miniatures des vidéos réalisées juste après l'acquisition. Si on quitte l'application et la relance, les miniatures apparaissent bien! Dans mon cas, la première acquisition semble bloquer l'application sur son arrêt. En fait c'est juste un peu long. Ensuite lors des acquisitions suivantes il faut quitter et relancer à chaque acquisition, car l'image de la webcam se fige à la fin de chacune d'elles.

Vidéo en 320x240

Lors de mes essais, il me fut impossible de réaliser une vidéo de taille supérieure à 320x240. Même en essayant de configurer via gstreamer-properties.

En configurant la sortie vidéo en mode personnalisé et en mettant la configuration suivante dans le pipeline, j'obtiens bien une fenêtre en 640x480 via le bouton de test, mais rien n'y fait dans Cheese.

[text]
video/x-raw-yuv,format=(fourcc)YV12,width=640,height=480! xvimagesink

Par contre il est tout a fait possible de réaliser une vidéo en 640x480 par gstreamer à l'aide de la commande suivante trouvée sur http://noraisin.net/~jan/diary/?p=40 :

[bash]
gst-launch v4l2src ! video/x-raw-yuv,width=640,height=480 ! ffmpegcolorspace ! theoraenc ! oggmux ! filesink location=test.ogg

Mais dans ce cas on perd aussi la visualisation. Peut être est il possible de réaliser un pipeline qui permette la visualisation puis l'encodage et l'envoie dans un fichier. Mais on perd encore la fonctionnalité du bouton enregistrement de Cheese.

Ces petits tests me font dire que la limitation provient de Cheese. Mais là encore je ne suis pas un pro de Gstreamer.

Résultats

Voici en guise de fin d'article, une photo et une vidéo prises avec le télescope (en plein jour désolé, promis, dès que la lune se montre je fais des essais). Ces petites feuilles se trouvent environ à 150m de chez moi. Je n'ai utilisé aucune lentille, juste la webcam dans l'oculaire.

Retourner au sommaire

Gravatar de Silvyn

Key Status Monitor sous Fedora 

C'est en regardant le dernier screencast n° 67 de chez Screencasters at heathenx.org, que j'ai aperçu ce petit utilitaire bien pratique pour de tel tutoriel vidéo, à savoir KeyStatus. Il s'agit d'afficher sur une petite boite de dialogue les touches du claviers et de la souris qui sont utilisées.

Je trouve rapidement la page de KeyStatus pour télécharger l'archive.
Pour l'installation c'est simple :

  • décompressez l'archive dans le répertoire de votre choix (par exemple /home/votre-utilisateur/bin/)
  • ouvrir un terminal à l'emplacement de l'application (un clic droit Ouvrir dans un terminal)
  • lancez l'utilitaire par son fichier exécutable ($ ./key-status)

Vous avez une fenêtre d'erreur avec ce message ? There were an error ? C'est normal, il faut les droits administrateurs (root).
Un su plus tard, retentez l'opération (# ./key-status)

KeyStatus Monitor sous Fedora

Vous pouvez alors fermer votre terminal, KeyStatus restera ouvert. Par contre, il est fort probable que rien ne se passe lorsque vous utiliserez votre clavier et souris. Comme indiqué sur le site de l'auteur, il vous sera peut-être nécessaire d'ouvrir le fichier exécutable key-status avec un éditeur de texte, pour modifier les variables suivantes :

# Device locations
KEYBOARD_LOCATION = "/dev/input/event0"
MOUSE_LOCATION = "/dev/input/event1"

J'avoue avoir modifié ces deux lignes un peu par hasard pour que ça fonctionne chez moi. Ayant un clavier et une souris Logitech branchés sur un port USB, en regardant de plus près le répertoire /dev/input/ puis /by-id/, j'ai trouvé les deux fichiers me concernant (usb-Logitech_USB_Receiver-event-kbd et usb-Logitech_USB_Receiver-event-mouse).

KeyStatus répertoire dev-input

KeyStatus répertoire dev-input-by-id

Ce qui me donne ceci :

# Device locations
KEYBOARD_LOCATION = "/dev/input/by-id/usb-Logitech_USB_Receiver-event-kbd"
MOUSE_LOCATION = "/dev/input/by-id/usb-Logitech_USB_Receiver-event-mouse"

Relancez KeyStatus en fonction des changements que vous aurez apportés, et normalement c'est bon ! Capture exemple avec la touche 5 et le clic gauche :

KeyStatus Monitor exemple touche 5 et clic gauche

On notera au passage, que Jakub Steine (plus connu sous le pseudo jimmac) est à l'origine de l'artwork. D'ailleurs, les fichiers SVG sont inclus dans l'archive. Merci !

Retourner au sommaire

Gravatar de Artisan Numérique

Mise en oeuvre de VMPlayer 

  • 21 votes
    vote oui vote non

Que ce soit pour tester de nouvelles distributions, des environnements de production, avoir un WilainOS sous la main en cas de besoin, ou garder son bureau GNU/Linux et malgré tout pouvoir développer en environnement "clientèle", la virtualisation est un outil indispensable aujourd'hui. Il existe de nombreuses solutions fonctionnelles sous Linux pour permettre de virtualiser un environnement. Mais malgré tout le bien que je pense de VirtualBox ou Qemu, VMWare reste de loin le plus stable et le plus efficient de tous. Au point d'avoir pu l'utiliser pendant un an en continu comme station de travail principale pour des développements lourd.

Maintenant VMWare Workstation reste payant. Alors voici comment utiliser VMPlayer qui lui est gratuit pour faire rigoureusement la même chose avec juste un peu plus d'huile de coude.

Introduction

VMWare est un fantastique outil permettant d'exécuter des OS guest sur un OS host. Vous pouvez ainsi lancer Windows dans Linux, Linux dans Linux, ReactOS dans linux, etc...

Contrairement à d'autres systèmes, VMWare n'émule pas le processeur. Le code est exécuté nativement sur l'unité physique permettant des performances totalement comparables à un environnement natif. Le pendant de cette approche est que seul les OS i86 peuvent devenir des guests.

La couche matérielle, est elle émulée. C'est là la principal perte de performance de la plateforme. Perte limitée par l'utilisation des pilotes optimisés contenus sur les Guest Tools. Limitée aussi si l'on utilise un disque physique dédié comme espace de stockage plutôt qu'un disque virtuel.

Installation de VMPlayer

VMPlayer s'installe comme n'importe quel autre logiciel en téléchargeant le paquet et en l'installant via un urpmi VMPlayer.XXX.rpm. Ceci fait, il va nous falloir compiler les modules kernels de VMWare nécessitant le téléchargement préalable des sources du votre kernel. Ensuite, un simple vmware-config.pl suffit à lancer l'assistant qui vous poser divers questions pour finir par construire les modules. Après cela, VMWare devient le service /etc/init.d/vmware que l'on peut lancer (service vmware start) ou arrêter à loisir.

Création de la machine virtuelle

Pour fabriquer la machine virtuelle, rien de plus simple. Choisissez un emplacement approprié sur votre disque et créez un nouveau dossier. Allez dans ce dossier et créez un fichier vm.vmx.

J'ai commenté ce fichier de sorte à ce qu'il soit le plus compréhensible possible et restant facilement copiable :

vm.vmx
  1. # Ces versions indiquent que notre VM est conçue une version 6 de VMWare Worstation
  2. # et qu'elle est donc optimum pour VMPlayer 2.x. Placez un virtualHW.version="4" pour une
  3. # Workstation 5.x.
  4. #
  5. config.version = "8"
  6. virtualHW.version = "6"
  7.  
  8. # Le petit nom de note VM, il sera affiché dans la barre de titre du player
  9. #
  10. displayName = "VM Native"
  11.  
  12. # La définition de l'OS "invité". Personnellement je n'ai jamais vu ce que changeait
  13. # cette valeur. Et comme j'utilise le même VMX pour plusieurs OS en multi boot
  14. # comme nous le verrons plus loin, il semble bien que cela n'empêche pas un Linux de
  15. # fonctionner très bien avec ce paramètre.
  16. #
  17. guestOS = "winxppro"
  18.  
  19. # Ici nous définissons le nombre de processeur à simuler. Ce nombre ne peut dépasser 2, et ne doit
  20. # dans tous les cas pas être supérieur au nombre réel de processeur.
  21. #
  22. numvcpus="1"
  23.  
  24. # Taille de la mémoire à allouer à VMWare. Il faut raisonner comme pour une machine physique. Ainsi ne tentez pas
  25. # de faire fonctionner Vista avec 512mo de RAM, ça ne marchera pas pas mieux que dans la vraie vie Wink
  26. #  
  27. memsize = "1024"
  28.  
  29. # Avec ce paramètre à TRUE, vous autorisez le player à diminuer la mémoire physique réellement
  30. # utilisée en fonction de son utilisation par le guest. Ainsi si vous avez déclaré un memsize à
  31. # 1Go, et que vous autorisez le scaleDown, la mémoire réellement consommée peut être moindre.
  32. # La contepartie c'est que pour regagner la mémoire rendu, il peut y avoir de la latence de la part
  33. # de l'OS host.
  34. #
  35. # Le MemTrimRate permet de définir le rythme de désallocation de la mémoire. A ce que j'ai compris les deux paramètres
  36. # vont de paire mais je n'ai pas trouvé d'information sur l'unité (seconde, milli ? )
  37. #
  38. MemAllowAutoScaleDown = "FALSE"
  39. MemTrimRate = "-1"
  40.  
  41. # Le page sharing consiste pour VMWare à utiliser une seule page mémoire sur le host lorsque le guest en a deux ou plus
  42. # d'identique. Cela peut certe réduire la consommation sur le host, mais réduit aussi les performances.
  43. #
  44. sched.mem.pshare.enable=FALSE
  45.  
  46. # Permet de créer un ID unique à la machine virtuelle au démarrage de celle-ci.
  47. #
  48. uuid.action = "create"
  49.  
  50. # Réglage des outils de base
  51. #
  52. tools.remindInstall = "TRUE"    # vous préviens si les Guest Tools ne sont pas installés
  53. tools.upgrade.policy = "upgradeAtPowerCycle"  # vous préviens si une mise à jour est disponible
  54. tools.syncTime = "TRUE"   # Synchronise l'heure entre le guest et le host
  55.  
  56. # Ces paramètres permettent d'activer toutes les interactions entre le guest et le host.
  57. # Ces fonctions nécessitent l'installation des Guest Tools
  58. #
  59. isolation.tools.hgfs.disable = "FALSE"    # Permet à la souris de sortir de la VM sans CTRL+ALT
  60. isolation.tools.dnd.disable = "FALSE"    # Autorise le Glisser-Déposer
  61. isolation.tools.copy.enable = "TRUE"    # Autorise le Copier
  62. isolation.tools.paste.enabled = "TRUE"  # Autorise le Coller
  63.  
  64.  
  65. # Configuration de la carte son. Ici nous émulons une Ensonic ES1371. Il est possible d'utiliser
  66. # aussi une Sound Blaster 16 en utilisant la valeur SB16. Mettre .present à false pour désactiver le son.
  67. # D'un point de vue général, les périphériques peuvent activées ou désactivées en utilisant la barre
  68. # d'outils du player.
  69. #  
  70. sound.present = "TRUE"
  71. sound.virtualdev = "es1371"
  72. sound.synth.operational = "TRUE"
  73.  
  74.  
  75. # Configuration du port série n°1, on laisse ici le player trouver
  76. # le device correspondant. Si vous voulez l'activer, positionnez
  77. # .present à "TRUE", de même pour le second port.
  78. #
  79. serial0.present = "FALSE"
  80. serial0.fileName = "Auto Detect"
  81. serial0.autodetect = "TRUE"
  82. serial0.hardwareFlowControl = "TRUE"
  83. serial1.present= "FALSE"
  84.  
  85. # Configuration du port parralèle. Même chose que pour le port série,
  86. # désactivé par défaut.
  87. #
  88. parallel0.present = "FALSE"
  89. parallel0.fileName = "Auto Detect"
  90. parallel0.autodetect = "TRUE"
  91. parallel0.bidirectional = "TRUE"
  92.  
  93. # Configuration du lecteur de disquette, là aussi désactivé, ces bêtes là deviennent rares Wink
  94. #
  95. floppy0.present = "FALSE"
  96. floppy0.startConnected = "FALSE"
  97.  
  98. # Configuration de l'USB. Là ça peut être utile. La configuration est assez simple mais
  99. # vous notez la présente d'un .present ET d'un usb.generic.autoconnect. Ce dernier indique
  100. # que par si le port USB est bien reconnu par VMPlayer, les périphériques qui y sont connectés
  101. # ne sont pas automatiquement connectées. Elle pourront l'être de manière dynamique
  102. # par la barre d'outils de VMPlayer qui prendra ainsi la main sur une clef USB ou une souris.
  103. #
  104. # Notez que si le player prend la main sur une périphérique USB, le host n'en dispose plus. Faites donc
  105. # attention si vous avez l'idée de connecter votre souris ou clavier par exemple  ;-)  
  106. usb.present = "TRUE"
  107. usb.generic.autoconnect = "FALSE"
  108.  
  109. mks.enable3d = "FALSE"
  110.  
  111. # Là c'est important, le paramétrage du réseau. L'adresse indiquée sera l'adresse MAC de votre machine.
  112. # Pensez donc à la modifier d'une machine à l'autre, et ne pas utiliser la même chose qu'une machine
  113. # physique.
  114. # Ensuite vient le virtualDev qui correspond (comme pour la carte son), à la carte réseau émulée. La valeur
  115. # peut être e1000 pour une Intel Pro Gigabit, vlance pour la carte du même nom, ou vmxnet pour une carte
  116. # VMWare.  
  117. # Comme pour serial0/1, il est possible d'avoir deux cartes réseau auquel cas il faut dupliquer les paramètres
  118. # d'ethernet0 pour ethernet1 et biensur changer l'adresse MAC.
  119. #
  120. ethernet0.present = "TRUE"
  121. ethernet0.connectionType = "nat"
  122. ethernet0.addressType = "generated"
  123. ethernet0.generatedAddress = "00:0c:29:59:aa:eb"
  124. ethernet0.virtualDev = "e1000"
  125. ethernet0.generatedAddressOffset = "0"
  126. ethernet1.present="FALSE"
  127.  
  128. # Originellement il était possible de choisir entre SCSI et IDE. Pour les tests que j'avais fait
  129. # il n'y avait aucun gain de performances en passant de l'un à l'autre. Donc j'opte pour le plus
  130. # simple : IDE.
  131. #
  132. # La VM disposent de deux contrôleurs IDE pouvant recevoir deux disques chacun. Nous allons
  133. # donc coller sur le deuxième contrôleur, deux lecteurs de CD-ROM. Le premier sera relié au lecteur
  134. # physique, le second à une image ISO.
  135. #
  136. # Le problème du player, est qu'il n'y a pas de moyen de changer l'image ISO à chaud comme avec
  137. # la version workstation. L'astuce consiste donc à utiliser un fichier cdrom.iso dans le même dossier
  138. # que le fichier .vmx. Et de faire des liens symboliques entre la véritable image ISO et ce fichier. Cela
  139. # permet d'installer un Linux sur 3 CD-ROM sans problèmes.
  140. #
  141. ide1:0.present = "TRUE"
  142. ide1:0.deviceType = "cdrom-raw"
  143. ide1:0.startConnected = "FALSE"
  144. ide1:0.fileName = "auto detect"
  145. ide1:0.autodetect = "TRUE"
  146. ide1:1.present = "TRUE"
  147. ide1:1.fileName = "cdrom.iso"
  148. ide1:1.deviceType = "cdrom-image"
  149. ide1:1.startConnected = "FALSE"
  150.  
  151. # Nous arrivons enfin au plus important, le disque de stockage
  152. # Ici, seul un disque est monté sur le contrôleur IDE, mais l'autre peut
  153. # être facilement activé.
  154. #
  155. # Je ne vais pas rentrer dans les détails du independent-persistent, disons
  156. # que ce mode est sensé être le plus proche d'un fonctionnement physiques. En tout cas
  157. # c'est pour moi le mode le plus efficace.
  158. #
  159. # Pour ce qui est du fichier native.vmdk, c'est tout l'objet du prochain chapitre.  
  160. ide0:0.present = "TRUE"
  161. ide0:0.fileName = "disque_dur.vmdk"
  162. ide0:0.mode = "independent-persistent"
  163. ide0:0.deviceType = "rawDisk"
  164. ide0:0.redo = ""
  165. ide0:0.writeThrough = "TRUE"
  166. ide0:0.startConnected = "TRUE"
  167. ide0:1.present = "FALSE"

Création de l'espace de stockage

Utilisation d'un disque virtuel

Cette approche est sans doute la plus simple. L'avantage du disque virtuel est qu'il n'occupe que la place utilisée par le guest. Ainsi à sa création, il n'occupe que 1.4mo.

Pour créer ce disque nous allons utiliser l'utilitaire qemu-img provenant du paquet du même nom. La syntaxe est trés simple :

qemu-img create -f vmdk disque_dur.vmdk 10G

Et voilà, nous avons cré un disque de 10G qui pour l'instant en occupe beaucoup moins vu qu'il est vide.

A partir de là, notre VM est déjà utilisable, et nous pouvons la lancer par un

vmplayer vm.vmx

Votre machine virtuelle devrait normalement démarrer sans encombre. Vous pouvez alors aller (F2) dans le BIOS pour régler les priorités sur les disques pour démarrer sur un CD-ROM et commencer une installation.

A ce stade CTRL+ALT permette de dégager la souris de la fenêtre du player, CTRL+ALT+Entrée permet de basculer en plein écran et CTRL+ALT+ESPACE, relachement d'espace suivi de F1, permet de simuler le CTRL-ALT-F1.

Maintenant, un disque virtuel n'est pas ce que l'on fait de mieux pour une utilisation quotidienne de VMPlayer. En effet, soit parce que l'on désire utiliser une installation physique existante, soit pour des raisons de performances, nous pouvons préférez un bon vieux disque physique.

Utilisation d'un disque dédié

Cette technique, de par l'accès offert aux données physiques, n'est par nature pas sans risques. Faites donc attention à ce que vous faites pour ne pas flinguer les partitions ou le contenu même du support. Vous êtes prévenu.

Pour se donner une idée des performances d'un disque physique contre un disque virtuel, il faut garder tête que pour un disque physique ayant un débit en lecture sur le host de 59MB/s, donnera utilisé en virtuel environ 12MB/S. Le même disque physique mais utilisé à travers la VM donnera 34MB/s. Il est donc clairement plus performant de dédier un disque à VMWare dés que l'on utilise cet outil pour travailler sur du long terme.

L'autre cas d'utilisation d'un disque physique peut être de virtualiser une installation existante. Personnellement j'ai adopté la double approche d'un disque physique dédié qui est donc bootable en directe par la machine physique et utilisable en virtualisé par VMPlayer. Sur ce disque j'installe tranquillement toutes mes VM, chacune sur sa ou ses partitions avec un GRUB pour gérer le multi-boot.

Quel que soit votre usage, le travail préalable reste le même et consiste à créer un fichier vmdk qui va reprendre les caractéristiques du disque physiques.

En simplifiant un peu, un disque dur est composé de plateaux avec une têtes pour chacun. Les plateaux sont découpés en cercles concentriques, les pistes (tracks). Une même piste forme un cylindre pour l'ensemble des plateaux. La piste est découpée en secteurs, historiquement de 512 octets. Le nombre de cylindres, le nombre de secteur par piste, et le nombre de têtes (et donc de plateaux) par cylindre, forment la géométrie du disque.

Pour connaître cette géométrie, le mieux est d'utiliser l'utilitaire parted. Par exemple si l'on désire utiliser le disque /dev/hda, cela nous donne :

# parted /dev/hda
(parted) unit cyl
(parted) print
  ST3200822A (ide)
  Disque /dev/hda : 24321cyl
  Taille des secteurs (logiques/physiques): 512B/512B
  BIOS cylindre,tête,secteur géométrie : 24321,255,63. Chaque cylindre est 8225kB.
...

Les valeurs peuvent surprendre. 255 têtes impliquent 255 plateaux, ce qui semble un peu volumineux pour un si petit disque... En fait, pour des raisons un peu longuètes à expliquer, le disque ne donne jamais son véritable nombre de têtes, pour préférer quelque chose de plus assimilable par la couche logicielle. Et au fond, on s'en moque. Notre disque dispose donc de 255 têtes, 63 secteurs par piste, et 24321 cylindres. Ce qui nous donne un espace disque de 512 (taille d'un secteur) x 255 (têtes par cylindre) x 63 (secteurs par piste) x 24321 (cylindres) = 200Go. Le compte est bon Wink

Maintenant ce qu'il nous faut, c'est la taille du disque en secteurs. Pour cela, nous allons encore utiliser parted mais cette fois en changeant l'unité de cylinder à sector.

(parted) unit s
(parted) print
  ST3200822A (ide)
  Disque /dev/hda : 390721968s
...

En vert, nous avons la taille du disque en secteurs. Il ne nous reste donc plus qu'à reporter ces informations pour créer notre fichier disque_dur.vmdk

version=1
CID=400b3894
parentCID=ffffffff
createType="fullDevice"
RW 390721968 FLAT "/dev/hda" 0
ddb.geometry.cylinders = "24321"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.virtualHWVersion = "4"
ddb.adapterType = "ide"
ddb.toolsVersion = "6530"

Notez qu'il est possible de faire des fichiers vmdk beaucoup plus évolués que celui-là en créant un disque composé de partitions qui ne se suivent pas, et même d'images de partitions sockés sur le disque sous la forme d'un fichier. Mais même si vous n'utilisez cette technique que pour une seule partition, autant inclure le disque en entier, secteur de démarage compris. Le seul risque de cette approche est que la machine virtuel aura un accès en écriture sur l'ensemble du disque, c'est à vous de voir.

Les bons droits

Normalement, le disque /dev/hda (ou quel que soit le votre) n'est pas accessible en écriture (et même en lecture d'ailleurs) à un utilisateur Lambda. Et comme me l'a très justement fait remarquer Malic, lancer VmPlayer en root n'est pas une idée de génie. La solution consiste donc à changer les droits de /dev/hda pour les mettre en accord avec le ou les utilisateurs amenés à utiliser cette machine.

Sous Mandriva, les disques appartiennent à root et au groupe disk. Dans ce cas, une version simple consiste à modifier /etc/group et à ajouter le ou les utilisateurs à la fin de la ligne correspondante.

Ensuite, il faut donner les droits d'écritures sur le disque au groupe en question par la commande chmod g+rw /dev/hda. Ceci fait, il devrait suffire d'ouvrir une nouvelle console au nom de l'utilisateur cible pour pouvoir lancer VmPlayer. Le souci avec les distributions modernes, c'est qu'il y a un nouveau démon, console-kit-daemon, dont le but dans la vie est d'unifier les accès aux consoles (à ce que j'ai compris) et qui empêche du coup, de récupérer les bons droits directement. La seule parade que j'ai trouvée est de quitter X, puis se re-connecter pour bénéficier du nouveau groupe ainsi pouvoir lancer la VM sans problèmes.

Installation des Guest Tools

Les guest tools sont des images ISO, une par OS host donc, permettant l'installation d'utilitaires et de pilotes DANS la VM. Le problème est que ces ISO ne sont pas fournies avec le player. La solution est donc simplement de retourner sur le site de VMWare, télécharger la version d'évaluation de VMWare Workstation en rpm. Plus de décompresser le paquet par la commande suivante :

  1. mkdir tmp
  2. cd tmp
  3. rpm2cpio VMWare-XXXX.rpm | cpio -div `*.spec`
  4. find . -name "*.iso"

La commande find, est une recherche simple des fichiers .iso qui nous permet de découvrir une série de fichier avec des noms d'OS (windows.iso, linux.iso, etc...). Ce sont les ISO Guest Tools. Il suffit alors de recopier ses fichiers où bon vous semble. Ensuite vous devez monter le fichier correspondant à l'OS host sur le lien du CD-ROM. Une fois le tout installé, les performances sont transfigurées.

Conclusion

Comme je le disais en introduction, j'ai utilisé pendant 1 ans VMWare comme environnement principal de développement, et ce pour faire du Delphi/COM/DCOM. Pas réputé pour être d'une grande légereté. Cet outil m'est devenu aujourd'hui absoluent indispensable.

Dernier truc avant de partir, ma découverte du jour, Ext2 IFS For Windows. Un pilote natif Windows qui permet d'attaquer en lecture ET en écriture des partitions ETX2/EXT3 et EXT4. Le tout avec les mêmes performances que sous Linux, très bon Smiling

Retourner au sommaire

Gravatar de MrTom

Votez pour le nom de Fedora 10 

Et voilà, la liste des noms pour Fedora 10 est disponible. Il s'agit maintenant de voter ! Petit rappel quand même : le nom des distributions au sein du Projet Fedora n'a pas de vocation « commercial » mais est un simple délire de contributeurs.

  • Cambridge
  • Farnsworth
  • Mississippi
  • Nile
  • Nitrate
  • Saltpetre
  • Terror
  • Water
  • Whiskey Run
Bon vote à tous, et que le meilleur gagne ! N'oubliez pas, vous devez posséder un compte au sein du Projet Fedora pour être en mesure de voter.

Retourner au sommaire

Gravatar de StandarT

wxWidgets ou l'art de programmer en C++ multiplateforme sous ubuntu 

wxWidgets

C'est dans le cadre de ma participation à un projet open-source, dont je vous donnerai plus d'informations prochainement, que j'ai dû faire connaissance avec wxWidgets dont je ne connaissais que le nom. C'est donc l'occasion de vous partager mon premier contact avec cette 'bibliothèque' de programmation sous licence LGPL.

Les présentations

Pour la présenter, cette bibliothèque wxWidgets fournie un grand nombres d'API (Application Program Interface), utilisées pour le développement d'applications supportant des interfaces Homme-Machine multi plates-formes comme Linux, Windows ou Mac.
Cette bibliothèque n'est pas nouvelle, elle a déjà bien 10 ans d'existence et a considérablement évoluée depuis, d'ailleurs elle s'appelait auparavant wxWindows, mais sous la pression de microsoft à cause du "windows" dedans, fut rebaptisée wxWidgets.

Mais pour m'intéresser à cette bibliothèque, il m'a fallu comprendre et connaitre les avantages à tirer d'une telle librairie comparée à d'autres, comme Qt, Gtk ou java :

Premièrement, cette bibliothèque utilise elle-même les bibliothèques natives des plates-formes cibles sur laquelle elle est installée, garantissant ainsi le look et l'homogénéité du système sur lequel l'application développée avec wxWidgets est installée. Ainsi, le programmeur écrit une seule version de son code et peut normalement le compiler sous toutes les autres plateformes Linux, Windows ou Mac supportées par wxWidgets, via un compilateur C++, et son application fonctionnera de la même façon sur chacune des plate-formes, avec la même apparence mais avec le thème graphique de l'OS cible.

Deuxièmement, ce n'est pas un langage interprété et cela garantie une certaine rapidité à l'exécution : en effet, à la compilation, les fonctions de la librairie wxwidgets utilisées par l'application ont été traduites en fonctions optimisées de l'OS, elles ne sont pas "traduites" à l'exécution comme des langages tel python. En plus, cette librairie est écrite en C++ et très orientée programmation objet et le fait de devoir compiler l'application avec de très nombreuses API et d'avoir ainsi la possibilité de rester un peu plus prêt du matériel de la machine que l'on utilise, ne désoriente pas le développeur C embarquée que je suis ;-) .

Bon, il n'y a pas que des avantages à cela évidement, le poids du logiciel compilé s'en ressent (car nécessite les librairies d'abstractions wxWidgets dédiées à l'OS machine lors de l'exécution du programme) et le langage objet peut paraître lourd et contraignant pour certains.

Enfin, la licence est sous GNU Lesser General Public License (LGPL), une variante de la GPL permettant à des logiciels non GPL d'être compilés avec du code libre... je ne m'étendrais pas plus sur la licence, c'est surtout la communauté wxWidgets qui est très nombreuse et très active : en gros, on trouve aujourd'hui tout ce dont on a besoin pour développer ses applications wxWidgets facilement et rapidement, au travers du site wxWidgets, des tutoriels, des exemples ou des nombreux forums.

Au final, pourquoi ce choix de wxWidgets ? de toute façon je n'avais pas le choix étant donné que le programme sur lequel je dois m'attaquer est déjà développé en wxWidgets, donc autant y aller en voyant les bons côtés, les mauvais s'inviteront d'eux-même 8-) .

Installation et utilisation

Je vais détailler ici l'utilisation de wxWidgets sous ubuntu Hardy Heron 8.04.
Bon, déjà n'espérer pas juste à devoir installer un .deb (ou un setup.exe sous windows) et pouvoir ainsi compiler votre premier programme 'Hello world' en un clic. Mais ce n'est pas non plus trés compliqué.

Il faut savoir avant toute chose que la bibliothèque wxWidgets va devoir être compilée pour créer justement "la" bibliothèque adaptée à votre OS car je rappel que l'avantage est avant tout d'être multi-platforme. Avant la compilation du package, j'ai installé au préalable plusieurs autres paquets via les dépôts officiels de synaptics, entre autres :

  • libgtk2.0-dev
  • libgtk2.0-0
  • libwxgtk2.8-dev
  • libwxgtk2.8-dbg
  • libwxgtk2.8-0
  • wx2.8-headers
  • libwxbase2.8-dev
  • libwxbase2.8-dbg
  • libwxbase2.8-0

sont les plus importantes, et je ne sais pas si elles sont vraiment toutes nécessaires, en tout cas je peux compiler sans difficulté sur ma Hardy.

Je vous laisse le soin de suivre le tuto ubuntu fait pour l'installation et la compilation du package wxWidgets, les commandes sont reprises ci-dessous mais je vous conseil de télécharger la dernière version stable 2.8.8 via un terminal sous votre compte utilisateur:

 cd
wget http://switch.dl.sourceforge.net/sourceforge/wxwindows/wxGTK-2.8.8.tar.gz

"Détarez" le fichier et rendez-vous sous votre répertoire d'installation qui devrait se nommer /wxGTK-2.8.8

 cd wxGTK-2.8.8

Et les commandes suivantes :

 ./configure
make
sudo make install

Et si tout c'est bien passé, le final :

 sudo ldconfig

Voilà, vous devriez à présent être capable de compiler les samples (exemples) disponibles avec la librairies, pour tous les compiler d'un coup, faire:

 cd samples
make

pour exécuter un sample, aller dans son répertoire, comme par exemple "menu":

 cd menu
./menu

Et voilà, vous avez compilé et exécuté votre première application wxwidgets, elle est pas belle la vie :-)

ressources:
http://www.unixgarden.com/index.php/...
http://www.framasoft.net/article1633.html
http://www.wxwidgets.org/
http://articles.mongueurs.net/magazines/linuxmag70.html

Retourner au sommaire