Catégories
Developpement Open-source

Une petite introduction à GIT

Sous l’impulsion de la multiplication des projets open-source, la gestion en configuration de vos sources est devenue une brique essentielle dans le développement de logiciels informatiques. Nous allons dans ce billet parler de GIT (développé par Mr Linus Torvalds en personne) qui contrairement à CVS ou SVN se base sur une architecture décentralisée.

Architecture de notre tutoriel

Pour illustrer ce tutoriel, nous allons utiliser l’architecture suivante:

A: Dépôt GIT
B: Dépôt GIT (copie de A)
C: Dépôt SVN

Installation

On installe GIT:

# sudo aptitude install git-core git-svn

puis on le configure:

# git config –global user.name « Nicolas Hennion »
# git config –global user.email « contact_at_nicolargo_._com »

Création du dépot sur la machine A

Projet dont les sources sont stockées dans le répertoire ~/workspace/projet.

# cd  ~/workspace/projet
# ls -alF
total 92
-rw-r—– 1 nicolargo nicolargo  158 Jan 28 15:45 001-display-ogg-theora-file.sh
-rw-r—– 1 nicolargo nicolargo   89 Jan 28 15:49 002-display-webcam.sh
-rw-r—– 1 nicolargo nicolargo  242 Feb  2 17:02 003-display-webcam-320×200.sh
-rw-r—– 1 nicolargo nicolargo  153 Jan 28 16:55 004-display-effect-webcam.sh
-rw-r—– 1 nicolargo nicolargo  157 Jan 28 17:16 005-display-textoverlay-webcam.sh
-rw-r—– 1 nicolargo nicolargo   89 Feb  2 15:49 006-streaming-udp-client-theora.sh
-rw-r—– 1 nicolargo nicolargo  579 Feb  2 15:50 006-streaming-udp-server-theora.sh
-rw-r—– 1 nicolargo nicolargo  224 Jan 30 14:46 007-streaming-to-icecast.sh
-rw-r—– 1 nicolargo nicolargo  116 Feb  2 15:40 008-streaming-tcp-client-theora.sh
-rw-r—– 1 nicolargo nicolargo  266 Feb  2 15:45 008-streaming-tcp-server-theora.sh
-rw-r—– 1 nicolargo nicolargo 4192 Feb  3 11:56 009-streaming-rtp-client-theora.sh
-rw-r—– 1 nicolargo nicolargo  622 Feb  3 11:52 009-streaming-rtp-server-theora.sh
-rw-r—– 1 nicolargo nicolargo  194 Feb  3 12:26 010-VLC.sdp
-rw-r—– 1 nicolargo nicolargo  534 Feb  3 12:15 010-streaming-rtp-client-x264.sh
-rw-r—– 1 nicolargo nicolargo  706 Feb  3 12:35 010-streaming-rtp-server-x264.sh
-rw-r—– 1 nicolargo nicolargo 1072 Feb  3 15:16 011-streaming-rtp-client-x264-speex.sh
-rw-r—– 1 nicolargo nicolargo  883 Feb  3 14:57 011-streaming-rtp-server-x264-speex.sh
-rw-r—– 1 nicolargo nicolargo 1041 Feb  3 15:13 012-streaming-rtp-client-x264-pcma.sh
-rw-r—– 1 nicolargo nicolargo  880 Feb  3 15:11 012-streaming-rtp-server-x264-pcma.sh
-rw-r—– 1 nicolargo nicolargo 1720 Feb  2 16:21 GStreamer – RTP client-server.txt
-rw-r—– 1 nicolargo nicolargo 1020 Feb  3 15:31 client.sh
-rw-r—– 1 nicolargo nicolargo  883 Feb  3 15:28 server.sh

On initialise le dépôt GIT:

# git init
Initialized empty Git repository in .git/

Puis on ajoute l’ensemble des fichiers sources à ce dépôt GIT:

# git add *

On vérifie que la commande précédente à bien été prise en compte

# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use « git rm –cached <file>… » to unstage)
#
#    new file: 001-display-ogg-theora-file.sh
#    new file: 002-display-webcam.sh
#    new file: 003-display-webcam-320×200.sh
#    new file: 004-display-effect-webcam.sh
#    new file: 005-display-textoverlay-webcam.sh
#    new file: 006-streaming-udp-client-theora.sh
#    new file: 006-streaming-udp-server-theora.sh
#    new file: 007-streaming-to-icecast.sh
#    new file: 008-streaming-tcp-client-theora.sh
#    new file: 008-streaming-tcp-server-theora.sh
#    new file: 009-streaming-rtp-client-theora.sh
#    new file: 009-streaming-rtp-server-theora.sh
#    new file: 010-VLC.sdp
#    new file: 010-streaming-rtp-client-x264.sh
#    new file: 010-streaming-rtp-server-x264.sh
#    new file: 011-streaming-rtp-client-x264-speex.sh
#    new file: 011-streaming-rtp-server-x264-speex.sh
#    new file: 012-streaming-rtp-client-x264-pcma.sh
#    new file: 012-streaming-rtp-server-x264-pcma.sh
#    new file: GStreamer – RTP client-server.txt
#    new file: client.sh
#    new file: server.sh
#

Enfin on valide (commit) le dépôt:

# git commit -m « Premier commit »
Created initial commit 6a4ff29: Premier commit
 22 files changed, 183 insertions(+), 0 deletions(-)
 create mode 100644 001-display-ogg-theora-file.sh
 create mode 100644 002-display-webcam.sh
 create mode 100644 003-display-webcam-320×200.sh
 create mode 100644 004-display-effect-webcam.sh
 create mode 100644 005-display-textoverlay-webcam.sh
 create mode 100644 006-streaming-udp-client-theora.sh
 create mode 100644 006-streaming-udp-server-theora.sh
 create mode 100644 007-streaming-to-icecast.sh
 create mode 100644 008-streaming-tcp-client-theora.sh
 create mode 100644 008-streaming-tcp-server-theora.sh
 create mode 100644 009-streaming-rtp-client-theora.sh
 create mode 100644 009-streaming-rtp-server-theora.sh
 create mode 100644 010-VLC.sdp
 create mode 100644 010-streaming-rtp-client-x264.sh
 create mode 100644 010-streaming-rtp-server-x264.sh
 create mode 100644 011-streaming-rtp-client-x264-speex.sh
 create mode 100644 011-streaming-rtp-server-x264-speex.sh
 create mode 100644 012-streaming-rtp-client-x264-pcma.sh
 create mode 100644 012-streaming-rtp-server-x264-pcma.sh
 create mode 100644 GStreamer – RTP client-server.txt
 create mode 100644 client.sh
 create mode 100644 server.sh

Import du dépôt sur la machine B

Nous allons utiliser la commande GIT « clone » permettant de faire une copie locale (dépôt local de la machine B) de son dépôt distant (machine A). C’est sur cette copie que nous allons ensuite travailler. On peut noter que j’utilise le protocole SSH pour récupérer les sources de la machine A, mais il est également possible d’utiliser le protocole « git » ou « http ».

# git clone ssh://nicolargo@B/~/workspace/gstpipelinearea

Création d’une branche locale

Nous allons maintenant créer sur notre machine B une nouvelle version de nos sources (une branche). Pour voir la liste des branches on utilise la commande suivante:

# git branch
* master

Comme on peut le voir il existe une seule branche (master) dans notre dépôt. Nous allons en créer une nouvelle avec la commande suivante:

# git branch version-2.0 master

On vient de créer une nouvelle version de notre projet nommé version-2.0 à partir de la branche principale (master). Il est ainsi possible de travailler sur cette version-2.0 sans impacter la version principale.

# git branch
* master
  version-2.0

L’* à coté de master précise que pour l’instant toutes les actions GIT seront faites sur la branche master. Pour travailler sur la branche version-2.0, il faut sasir la commande:

# git checkout version-2.0
Switched to branch « version-2.0 »

On vérifie:

# git branch
  master
* version-2.0

Consolidation des branches

Si vous voulez fusionner (merge) la
version-2.0 à la branche principale (c’est à dire appliquer les
modifications faites dans la version-2.0 dans vos sources initiales),
il faut:

# git checkout master
# git merge version-2.0

Quelques manipulations de base de notre dépôt local

Nous allons voir quelques exemples de manipulations de nos sources, je vous conseille fortement la lecture de la documentation (RFM…)

Ajout d’un fichier source

Pour ajouter un nouveau fichier à notre dépôt local, on commence par créer le fichier en question:

# echo « Quelques exemples de pipelines GStreamer » >> README

Puis on l’ajoute et on met à jour notre dépôt local:

# git add README
# git commit -a -m « Ajout du fichier README »
Created commit 1072258: Ajout du fichier README
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 README

Modification d’un fichier source

On modifie le fichier source en question:

# echo « Merci d’ajouter une ligne de description par pipeline » >> README

On peut voir les différences entre notre dépôt actuel et le dépôt local en tapant la commande:

# git diff
diff –git a/README b/README
index 3040f44..a58b06d 100644
— a/README
+++ b/README
@@ -1 +1,2 @@
 Quelques exemples de pipelines GStreamer
+Merci d’ajouter une ligne de description par pipeline

Puis on valide nos modifications dans le dépôt local:

# git commit -a -m « Modification fichier README »
Created commit f3c0c49: Modification fichier README
 1 files changed, 1 insertions(+), 0 deletions(-)

En cas d’erreur il est possible de revenir facilement à une dernière version:

# git log
commit f3c0c49bfc181d9353d8536c49af55eb24a9318c
Author: Nicolas Hennion <contact@nicolargo.com>
Date:   Wed Jul 8 17:11:03 2009 +0200

    Modification fichier README

commit 1072258108f25865e1965deeff7e651e29fb8f75
Author: Labo <labo@linux-demo-laptop.(none)>
Date:   Wed Jul 8 16:56:56 2009 +0200

    Ajout du fichier README

commit 6a4ff298714032e8263f9425b50a86dcf8aa5888
Author: Nicolas Hennion <contact@nicolargo.com>
Date:   Wed Jul 8 16:43:30 2009 +0200

    Premier commit

Par exemple pour revenir à notre première version du fichier README:

# git revert 1072258108f25865e1965deeff7e651e29fb8f75

Suppression d’un fichier source

On supprime le/les fichiers sources en question:

# git rm client.sh
# git rm server.sh

Puis on valide:

# git commit -a -m « Supression des fichers de test »
Created commit dc78e6c: Supression des fichers de test
 2 files changed, 0 insertions(+), 32 deletions(-)
 delete mode 100644 client.sh
 delete mode 100644 server.sh

Mise à jour du dépôt distant (A)

Nous avons fait quelques manipulation sur notre dépôt local (machine B). Maintenant nous souhaitons proposer ces modifications au dépôt distant (machine A). Pour cela, nous allons dans un premier temps pousser les modifications de B vers A:

# git push
Counting objects: 9, done.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (8/8), 861 bytes, done.
Total 8 (delta 3), reused 0 (delta 0)
To ssh://nicolargo@B/~/workspace/gstpipelinearea
   6a4ff29..dc78e6c  master -> master

Par défaut, le push se fait sur la brance principale (master), pour spécifier le push d’une autre version, il faut la spécifier dans la ligne de commande (« git push version-2.0 » par exemple).

Si on fait a ce moment là un ls dans le répertoire du dépôt de la machine A, les modifications n’apparaissent pas (le fichier README est inexistant et les fichier client.sh et server.sh sont présents).

# ls -alF
-rw-r—– 1 nicolargo nicolargo  158 Jan 28 15:45 001-display-ogg-theora-file.sh
-rw-r—– 1 nicolargo nicolargo   89 Jan 28 15:49 002-display-webcam.sh
-rw-r—– 1 nicolargo nicolargo  242 Feb  2 17:02 003-display-webcam-320×200.sh
-rw-r—– 1 nicolargo nicolargo  153 Jan 28 16:55 004-display-effect-webcam.sh
-rw-r—– 1 nicolargo nicolargo  157 Jan 28 17:16 005-display-textoverlay-webcam.sh
-rw-r—– 1 nicolargo nicolargo   89 Feb  2 15:49 006-streaming-udp-client-theora.sh
-rw-r—– 1 nicolargo nicolargo  579 Feb  2 15:50 006-streaming-udp-server-theora.sh
-rw-r—– 1 nicolargo nicolargo  224 Jan 30 14:46 007-streaming-to-icecast.sh
-rw-r—– 1 nicolargo nicolargo  116 Feb  2 15:40 008-streaming-tcp-client-theora.sh
-rw-r—– 1 nicolargo nicolargo  266 Feb  2 15:45 008-streaming-tcp-server-theora.sh
-rw-r—– 1 nicolargo nicolargo 4192 Feb  3 11:56 009-streaming-rtp-client-theora.sh
-rw-r—– 1 nicolargo nicolargo  622 Feb  3 11:52 009-streaming-rtp-server-theora.sh
-rw-r—– 1 nicolargo nicolargo  194 Feb  3 12:26 010-VLC.sdp
-rw-r—– 1 nicolargo nicolargo  534 Feb  3 12:15 010-streaming-rtp-client-x264.sh
-rw-r—– 1 nicolargo nicolargo  706 Feb  3 12:35 010-streaming-rtp-server-x264.sh
-rw-r—– 1 nicolargo nicolargo 1072 Feb  3 15:16 011-streaming-rtp-client-x264-speex.sh
-rw-r—– 1 nicolargo nicolargo  883 Feb  3 14:57 011-streaming-rtp-server-x264-speex.sh
-rw-r—– 1 nicolargo nicolargo 1041 Feb  3 15:13 012-streaming-rtp-client-x264-pcma.sh
-rw-r—– 1 nicolargo nicolargo  880 Feb  3 15:11 012-streaming-rtp-server-x264-pcma.sh
-rw-r—– 1 nicolargo nicolargo 1720 Feb  2 16:21 GStreamer – RTP client-server.txt
-rw-r—– 1 nicolargo nicolargo 1020 Feb  3 15:31 client.sh
-rw-r—– 1 nicolargo nicolargo  883 Feb  3 15:28 server.sh

Pour consolider les sources sur la machine A, il faut utiliser la commande suivante:

# git reset –hard
HEAD is now at dc78e6c… Suppression des fichers de test

Et si mes sources viennent d’un serveur SVN ?

Pas de problème, GIT dispose d’un bundle permettant de récupérer et de committer vers un serveur SVN.

Pour récupérer les sources d’un serveur SVN C:

# git svn clone svn://nicolargo@C/svn/gstpipelinearea

On utilise les commandes classique pour gérer son dépôt GIT (voir les chapitres précédant).

Pour commiter les modifications sur le serveur SVN C:

# git svn rebase
# git svn dcommit

Pour les utilisateurs d’Eclipse

Vous pouvez suivre ce tuto pour configurer votre Eclipse pour utiliser un dépôts GIT.

Catégories
Nagios Open-source Reseau

Mise à jour de Nagios 3.2.0

L’équipe de développement de Nagios n’a pas pris de longues vacances cette année. En effet, ils ont profité de notre absence pour sortir une version 3.2.0 du cœur de leur logiciel de supervision (voir le changelog ici). Vous pouvez lire ce billet pour mettre à jour votre Nagios d’une version 3.x vers cette version 3.2.0.

Catégories
Open-source Systeme

Un live CD personnalisé

Petit procédure en forme de « pense bête » pour personnaliser un live CD Ubuntu (extrait de la source: Ubuntu-fr).

  1. On commence par insérer le live CD d’origine dans le lecteur de CDROM (point de montage /cdrom)
  2. On créer un arborescence locale (sur un disque dur) qui servira à la création de notre live CD (attention, il faut disposer d’un espace disponible d’environ 3 Giga):

    cd ~
    mkdir livecd
    cd livecd
    mkdir iso squashfs

  3. On copie le contenu du live CD d’origine dans le répertoire iso:

    sudo cp -av /cdrom/. iso

  4. Puis on démonte le CDROM:

    sudo umount /cdrom

  5. On copie le système de fichier de notre live CD d’origine (le squashfs):

    sudo mount -t squashfs -o loop iso/casper/filesystem.squashfs /cdrom
    sudo cp -av /cdrom/. squashfs
    sudo umount /cdrom

  6. A partir de cette étape, on peut faire un chroot dans notre futur Live CD (vous serez alors connecté en root):

    sudo mount –bind /proc squashfs/proc
    sudo mount –bind /sys squashfs/sys
    sudo cp /etc/resolv.conf squashfs/etc/resolv.conf
    sudo cp /etc/hosts squashfs/etc/hosts
    sudo cp /etc/apt/sources.list squashfs/etc/apt/sources.list
    sudo chroot squashfs

  7. Avant de poursuivre, il faut vérifier que vous êtes bien connecté sur votre live CD:

    root@linux-demo-laptop:/#

  8. On commence par mettre à jour notre Live CD (vous avez le temps d’aller prendre un café… voir deux):

    aptitude update
    aptitude safe-upgrade

  9. Dans cette étape, vous pouvez supprimer ou ajouter les paquets en fonction des besoins de votre Live CD, ou bien modifier des fichiers de configuration:

    aptitude remove nomdupaquet
    aptitude install nomdupaquet
    aptitude install ubuntu-desktop
    aptitude autoclean

  10. On sort de notre LiveCD (du chroot):

    umount /sys
    umount /proc
    rm /etc/resolv.conf
    rm /etc/hosts
    exit

  11. Pour modifier l’environnement utilisateur par défaut, il faut copier les fichiers du répertoire /home de référence vers squashfs/etc/skel. Par exemple si vous souhaitez que le compte utilisateur de votre LiveCD soit une copie de votre compte:

    sudo cp -r ~/. squashfs/etc/skel
    sudo chown -R root:root squashfs/etc/skel

  12. Il ne reste plus qu’à construire votre Live CD:

    sudo apt-get install squashfs-tools

    sudo rm iso/casper/filesystem.squashfs
    sudo chmod a+w iso/casper/filesystem.manifest
    sudo chroot squashfs dpkg-query -W –showformat=’${Package} ${Version}\n’ > iso/casper/filesystem.manifest
    sudo chmod go-w iso/casper/filesystem.manifest
    sudo chmod a+w iso/casper/filesystem.manifest-desktop
    sudo chroot squashfs dpkg-query -W –showformat=’${Package} ${Version}\n’ > iso/casper/filesystem.manifest-desktop
    sudo chmod go-w iso/casper/filesystem.manifest-desktop
    cd squashfs
    sudo mksquashfs . ../iso/casper/filesystem.squashfs -info
    cd ..
    sudo mkisofs -r -V « Live CD » -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o live-cd-i386.iso iso

  13. L’étape 12 a permis la génération de l’image ISO live-cd-i386.iso dans le répertoire courant.
Catégories
Blog Developpement Open-source

Adsense-deluxe pour WordPress 2.8.1+

Si comme moi, vous utilisez le plugin Adsense-deluxe pour gérer les espaces publicitaires de votre blog, vous avez eu la désagréable surprise de tomber sur le message suivant suite à une migration de votre blog vers la version 2.8.1 (ou supérieure) de WordPress:

“You do not have sufficient permissions to access this page”

Cela vient d’un problème de développement de certains plugins (dont Adsense-deluxe qui ne semble plus maintenu par son éditeur). Pour résoudre le problème et refaire fonctionner ce trsè bon plugin avec les dernières versions de WordPress, il suffit changer une ligne de code dans le plugin (remplacer l’appel de la fonction admin_head par admin_menu). Pour vous simplifier la tache,  j’ai modifié le plugin pour vous, il ne vous reste plus qu’a télécharger la version compatible du plugin ici (fichier ZIP à dézipper dans le sous répertoire plugin de votre blog WordPress):


Adsense-deluxe for WP 2.8.1+

PS: votre configuration ne sera pas effacée 😉

Catégories
Open-source

Installation de VLC 1.0.1 sous Ubuntu

La version 1.0.1 de VLC media player, le lecteur multimédia open-source de VideoLAN est disponible (liste des fonctions). Voici une petite procédure pour les utilisateurs sous GNU/Linux Ubuntu (Jaunty 9.04) afin de toujours disposer de la dernière version de ce fabuleux logiciel.

Mise à jours des dêpots

Nous allons utiliser le dépôt officiel du projet. Il faut pour cela éditer votre fichier /etc/apt/sources.list et y ajouter les deux lignes suivants:

deb http://ppa.launchpad.net/c-korn/vlc/ubuntu jaunty main
deb-src http://ppa.launchpad.net/c-korn/vlc/ubuntu jaunty main

On doit ensuite importé la clés de ce nouveau dépôt:

# sudo apt-key adv –recv-keys –keyserver keyserver.ubuntu.com 7613768D

On met ensuite à jour les dépôts:

# sudo aptitude update

Installation de VLC 1.0.1

Si une ancienne version de VLC n’est PAS présente sur votre système, il faut saisir la commande:

# sudo aptitude install vlc vlc-plugin-esd mozilla-plugin-vlc

Si une acienne version de VLC est présente sur votre système:

# sudo aptitude upgrade

Et voili le travail !

Catégories
Musique Open-source Systeme

Comment faire une borne multimédia ?

Une borne multimédia est un ordinateur dédié à une fonction bien précise: fournir un accès Internet, écouter de la musique ou regarder un film sont quelques exemples qui me viennent en tête. Si vous avez déjà eu à mettre en place une telle borne, la simplicité d’utilisation et le verrouillage de celle-ci sont des points clés à prendre en compte dès l’installation. 

Nous allons dans ce billet détailler l’installation d’une borne multimédia permettant d’écouter de la musique stockées localement sur notre machine. Cette borne se basera uniquement sur des logiciels libres.

Installation du système d’exploitation

Connaissant bien la distribution GNU/Linux Ubuntu, j’ai choisi d’installer cette borne sur une version 9.04 Janty. J’ai donc effectué une installation standard à partir de la Desktop Edition (suivant / suivant / ne pas lire le fichier readme…).

Une fois le système installé, j’ai créé deux comptes utilisateurs:

  • Administrateur: pour la gestion de borne. Ce compte est à créer lors de l’installation du système d’exploitation.
  • Invite: pour les utilisateurs. C’est ce compte que l’on va configurer pour être le plus simple à utiliser dans le cadre de notre besoin (qui est je vous le rappelle d’écouter de la musique).

Pour créer le compte Invite, il faut se connecter en temps qu’Administrateur au démarrage de la machine puis se rendre dans le menu « Système / Administration / Utilisateurs et groupes ». On clique ensuite sur le bouton « Déverouiller » et enfin sur le bouton « + Ajouter un utilisateur »:

On fixe le minimum de droits pour cet utilisateur dans l’onglet « Privilèges utilisateur »:

Afin que la borne se connecte directement et sans demande de mot de passe sur le compte invité, il faut effectuer les taches suivantes:

  • menu « Administration » / « Fenêtre de connexion »
  • onglet « Sécurité »

Il ne reste plus qu’a installer l’application que l’on souhaite mettre à disposition des utilisateurs (Banshee dans mon exemple):

sudo aptitude install banshee

Configuration de l’interface utilisateur

Afin de facilité l’utilisation de notre borne, il faut:

  • que le système se lance automatiquement avec le compte invité (ce qui a été fait dans la section précédante)
  • que le logiciel permettant d’écouter la musique se lance automatiquement et en plein écran
  • que l’utilisateur ne puisse rien faire d’autre…

Pour répondre à ce besoin nous allons remplacer le gestionnaire de fenêtre standard par OpenBox (Wiki), un autre gestionnaire simple et léger ( et compatible Gnome ou KDE).

La procédure d’installation est la suivante:

sudo aptitude install openbox

Toute la configuration est centralisée dans le fichier ~/.config/openbox.

Nous souhaitons seulement installer OpenBox pour l’utilisateur « Invite ».

su – Invite

Puis nous forçons le démarrage d’OpenBox:

# vi .xinitrc
exec openbox

# ln -s .xinitrc .xsession

Puis on édite le fichier de configuration d’OpenBox (seule action possible: bouton droit, relancer Banshee):

# vi .config/openbox/menu.xml
<?xml version= »1.0″ encoding= »UTF-8″?>
<openbox_menu xmlns= »http://openbox.org/ »
        xmlns:xsi= »http://www.w3.org/2001/XMLSchema-instance »
        xsi:schemaLocation= »http://openbox.org/
                file:///usr/share/openbox/menu.xsd »>
<menu id= »root-menu » label= »Openbox »>
  <item label= »Banshee »>
    <action name= »Execute »><execute>/usr/bin/banshee</execute></action>
  </item>
</menu>
</openbox_menu>

Enfin on lance automatiquement Banshee au démarrage d’OpenBox:

# vi .config/openbox/menu.xml
. $GLOBALAUTOSTART
sleep 2
/usr/bin/banshee &

Votre borne multimédia est presque prête, il ne manque plus qu’a mettre les fichiers musicaux dans le répertoire ./Musique du compte Invite puis de configurer Banshee…

Catégories
Open-source Systeme

Firefox 3.6 sous Ubuntu (dépôts)

Mise à jour le 22/01/2010: Firefox 3.6 vient de sortir. La procédure reste la même.

Firefox 3.5 à peine sorti, il est déjà possible de tester sur son système Ubuntu la prochaine version du navigateur Web qui devrait sortir en version finale en 2010. Le but de ce billet est de faire une installation « propre » de la version 3.6 de Firefox en passant par les dépôts Launchpad.

D’après 01net, ce navigateur nouvelle génération « se focalisera notamment sur les performances « perceptibles par l’utilisateur » : démarrage, ouverture d’un onglet, réactivité vis à vis des tâches courantes, etc. Autre priorité : la personnalisation du logiciel et les extensions (facilitation du développement, de l’installation, de la gestion, etc.)« .

Configuration des dépôts Launchpad

On commence par éditer le fichier /etc/apt/sources.list en y ajoutant les lignes suivantes (exemple pour version Ubuntu 9.04 jaunty):

[shell]
deb http://ppa.launchpad.net/ubuntu-mozilla-daily/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/ubuntu-mozilla-daily/ppa/ubuntu jaunty main
[/shell]

Ensuite il faut lancer la mise à jour de la liste des dépôts:

[shell]
sudo aptitude update
[/shell]

Si vous rencontrez l’erreur suivante:

[shell]
W: GPG error: http://ppa.launchpad.net jaunty Release: Les signatures suivantes n’ont pas pu être vérifiées car la clé publique n’est pas disponible : NO_PUBKEY EF4186FE247510BE
W: Vous pouvez lancer « apt-get update » pour corriger ces problèmes.
[/shell]

il faut alors télécharger les clès puis relancer la mise à jour de la liste des dépôts.

Installation de Firefox 3.6

On peut maintenant passer à l’installation de la dernière version disponible (version alpha au moment de l’écriture de ce billet):

[shell]
sudo aptitude install firefox-3.6 firefox-3.6-gnome-support
[/shell]

Si tout se passe comme prévu lors de l’installation, vous devriez avoir cette dernière version disponible dans le menu « Applications / Internet » sous le nom « Minefield 3.6 Web browser ».

Catégories
Open-source Planet-libre Systeme

Installation pas à pas de Xen sous Debian

Le but de ce billet est d’installer un serveur de de virtualisation Xen (Wiki) sur un système GNU/Linux Debian. Ce dernier pourra héberger de manière virtuelle (c’est à dire sur la même machine physique) un nombre important de serveurs, mutualisant ainsi votre hardware.

Installation du serveur Xen

J’ai choisi d’héberger mon serveur de virtualisation Xen (on appelle cette machine le dom0 pour « domaine 0 » dans le jargon Xen) sur la machine suivante:

HP Proliant DL145
AMD Optron 64
2 Go RAM
2 disques durs de 80 Go en RAID 1 (LVM)
Système d’exploitation: GNU/Linux Debian Lenny 5

J’ai effectué une installation standard à partir du CD d’installation de la Debian 5.0 en appelant ma machine virt1 et en installant comme seul et unique service le daemon OpenSSH (pour un accès à distance).

Ensuite, il faut procéder à l’installation de Xen et de ses utilitaires:

aptitude install xen-hypervisor-i386 xen-linux-system-2.6.26-2-xen-686 xen-utils xen-tools xen-shell xenwatch xenstore-utils


On configure ensuite le réseau de la manière à transformer notre machine dom0 en bridge. Pour cela, on édite le fichier /etc/xen/xend-config.sxp et on remplace la ligne:

(network-script network-dummy)
par
(network-script network-bridge)


On reboot notre système pour prendre en compte le noyau supportant Xen:

reboot


Configuration du serveur Xen

Nous allons utiliser xen-tools pour administrer nos serveurs virtuels. Pour cela il faut éditer le fichier de configuration (/etc/xen-tools/xen-tools.conf) de la manière suivante (en gras les options à adapter selon votre configuration):

dir = /xen
install-method = debootstrap
size   = 4Gb      # Disk image size.
memory = 128Mb    # Memory size
swap   = 128Mb    # Swap size
fs     = ext3     # use the EXT3 filesystem for the disk image.
dist   = lenny     # Default distribution to install.
image  = sparse   # Specify sparse vs. full disk images.
gateway   = 192.168.29.1
netmask   = 255.255.255.0

passwd = 1
kernel      = /boot/vmlinuz-`uname -r`
initrd      = /boot/initrd.img-`uname -r`
mirror = http://ftp.lip6.fr/pub/linux/distributions/debian/
ext3_options   = noatime,nodiratime,errors=remount-ro
ext2_options   = noatime,nodiratime,errors=remount-ro
xfs_options    = defaults
reiser_options = defaults
serial_device = hvc0
disk_device = xvda


On pense également à créer le répertoire qui contiendra les domaines hôtes (/xen dans ma configuration):

mkdir /xen


Installation d’un serveur virtuel

Nous allons commencer par ajouter un nouveau serveur virtuel (que l’on appelle domU pour « domaine Users » dans le jargon Xen) à notre configuration. Cette action se fait de manière très simple grâce à la commande suivante (attendre quelques minutes):

# xen-create-image –hostname=servvirt1.mondomaine.com –size=10Gb –swap=512Mb –ip=192.168.29.171 –memory=256Mb –dist=lenny –arch=i386 –role=udev
General Information
——————–
Hostname       :  servvirt1.mondomaine.com
Distribution   :  lenny
Partitions     :  swap            512Mb (swap)
/               10Gb  (ext3)
Image type     :  sparse
Memory size    :  256Mb
Kernel path    :  /boot/vmlinuz-2.6.26-2-xen-686
Initrd path    :  /boot/initrd.img-2.6.26-2-xen-686


Networking Information
———————-
IP Address 1   : 192.168.29.171 [MAC: 00:16:3E:8B:F0:9E]
Netmask        : 255.255.255.0
Gateway        : 192.168.29.1

Xen va alors créer un serveur virtuel disposant d’un disque de 10 Go, d’un taille de swap de 512 Mo et d’une mémoire de 256 Mb. L’adresse IP de ce nouveau serveur virtuel sera 192.168.29.171. Le mot de passe root du système vous sera demandé en fin d’installation.

Un fichier de configuration dédié a ce nouveau serveur a été généré: /etc/xen/servvirt1.mondomaine.com.cfg

Gestion du serveur virtuel

Démarrage du serveur virtuel

Pour lancer le serveur virtuel préalablement créé, il faut saisir la commande:

xm create /etc/xen/servvirt1.mondomaine.com.cfg


Vous pouvez alors vous connecte dessus en SSH:

ssh root@servvirt1.mondomaine.com


Pour automatiser le démarrage de ce serveur virtuel (domU) au lancement de votre serveur hôte (dom0), il faut créer le lien suivant:

ln -s /etc/xen/servvirt1.mondomaine.com.cfg /etc/xen/auto/host1.cfg


Cette commande permet de séquencer le lancement des serveurs domU dans un certain ordre. Cela peut être utile si le service hébérgé sur un serveur virtuel dépend d’un autre…

Autres commandes utiles à l’administration de vos serveurs virtuels

Pour arrêter un serveur virtuel:

xm shutdown servvirt1.mondomaine.com


Pour voir la liste des serveurs virtuelles lancées:

# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0  1765     2     r—–    106.7
servvirt1.mondomaine.com 1   256     1     -b—-      2.6


Liste des serveurs virtuels créés:

# xen-list-images
Name: servvirt1.mondomaine.com
Memory: 256
IP: 192.168.29.171


Occupation des ressources en temps réel:

xentop


Pour rendre prioritaire un serveur virtuel par rapport à un autre, nous allons utiliser les options du gestionnaire d’allocation des ressources (« Credit scheduler », par défaut dans la version Xen 3.0).
Par exemple, si nous avons deux serveurs virtuels servvirt1 et servvirt2 (domU) hébérgés sur notre serveur hôte (dom0) et que nous souhaitons donner deux fois plus de temps CPU à servvirt2, il suffit de saisir la commande suivante:

xm sched-credit -d servvirt2.mondomaine.com -w 512

PS: par défaut, un serveur virtuel à un poids de 256.

La liste des poids des serveurs virtuels peut être obtenue grâce à la commande:

# xm sched-credit
Name                                ID Weight  Cap
Domain-0                             0    256    0
servvirt1.mondomaine.com 1    256    0
servvirt2.mondomaine.com 1    512    0


Les commandes xm sched-credit sont à lancer (par exemple dans un script shell) au démarrage du serveur hôte.

Conclusion

Xen et la virtualisation en général est un très bon moyen, dans cette période de crise, d’optimiser au mieux les ressources hardware disponibles. Il est bien sûr possible de créer autant de serveurs virtuels que possible sur notre serveur hôte (dans les limites de performances souhaités au niveau des domU).

Quelques sources utiles à la rédaction de ce billet:

Catégories
Nagios Open-source

Nagios 3.1.2 est sorti !


Pas de nouveauté mais juste le correctif pour un gros bug de la version 3.1.1 qui mettait votre CPU KO…
Il est donc temps de mettre à jour son serveur en suivant cette procédure.

Catégories
Musique Open-source

Installation de Songbird 1.2 sous Ubuntu

La version 1.2 de Songbird vient d’être mise à disposition, voici donc une procédure pour l’installer sur votre système GNU/Linux Ubuntu. Songbird est un gestionnaire de fichiers multimédia (musique, vidéo) open-source que l’on présente souvent comme le Firefox des iTunes (une belle pression sur ses épaules…).

Je ne vais pas rentrer dans le détail des fonctions que propose ce logiciel, il suffit de se rendre sur cette page pour avoir ces informations. Par contre, nous allons dans ce billet nous pencher sur l’installation de la « bête » sur notre bonne vieille distribution GNUL/Linux Ubuntu. Il va falloir un tout petit peu bidouiller car cette dernière version n’est pas encore dans les repos officiels.

On commence par récupérer Songbird à l’adresse suivante: http://getsongbird.com/download/

On va obtenir un fichier au format (extension) .tar.gz

Il faut ensuite ouvrir un terminal et ce rendre dans le répertoire ou le fichier a été télé-chargé (/home/nicolargo/Bureau dans mon exemple):

cd /home/nicolargo/Bureau

Ensuite on décompresse l’archive:

tar zxvf Songbird_1.2.0-1146_linux-i686.tar.gz

On va obtenir un répertoire Songbird.

Il ne reste plus qu’a dés-installer (si nécessaire) les versions précédentes:

sudo apt-get remove songbird

Puis à copier la nouvelle version dans notre système:

sudo mv Songbird /opt/

sudo chown -R root:root /opt/Songbird

sudo chmod -R 755 /opt/Songbird

Enfin, on créé un nouveau lanceur d’application personnalisé dans le tableau de bord:

  • click droit sur la barre de menu, puis click sur « Editer les menus »
  • click sur le menu Applications / Son et vidéo
  • click sur « Nouvel élément »
  • click sur Valider

Et voili, il ne reste plus qu’à aller dans le menu Applications / Son et vidéo et cliquer sur Songbird pour lancer l’application !

Bonne écoute :)