Netflow est un protocole réseau créé par Cisco pour collecter des informations sur les flux IP. Nous allons dans ce billet voir comment configurer un routeur pour activer la sonde Netflow puis récupérer et analyser le résultat sur une machine GNU/Linux (Ubuntu 9.10, mais les outils sont disponibles sur l’ensemble des distributions).
Étiquette : linux
Si comme moi vous avez essayé le logiciel de screencast XvidCap sous Ubuntu Janty, vous avez également du être déçu… En effet, le logiciel disponible dans les dépôts crache lamentablement au démarrage de l’enregistrement. C’est sur la bible documentaire Ubuntu-fr (que j’ai légèrement modifié pour l’occasion) que j’ai trouvé la solution que je détaille ici.
On va donc commencer par installer XvidCap à partir du dépôt Ubuntu afin de satisfaire toutes les dépendances:
[shell]sudo aptitude install xvidcap[/shell]
Ensuite on installe un certain nombre de pré-requis nécessaires à la compilation de XvidCap:
[shell]sudo aptitude install libavcodec-unstripped-52 libxmu-dev libglade2-dev libgtk2.0-dev build-essential[/shell]
On récupère la dernière version des sources (version 1.1.7 au moment de l’écriture de ce billet):
[shell]cd ~
mkdir tmp
cd tmp
wget http://downloads.sourceforge.net/project/xvidcap/xvidcap/1.1.7/xvidcap-1.1.7.tar.gz?use_mirror=surfnet[/shell]
On compile:
[shell]cd xvidcap-1.1.7
./configure
make
sudo make install[/shell]
Il ne reste plus qu’a lancer le logiciel apr le menu « Applications / Son et vidéo / XvidCap screen capture ».
Pour ceux qui ne connaissent pas, OggVideoTools est composé des logiciels suivants (en ligne de commande):
- oggSplit: permet de séparer l’audio et la vidéo d’un fichier en deux fichiers distincts (un fichier par flux).
- oggJoin: Prend en entré une liste de fichiers OGG (audio au format vorbis et/ou vidéo au format Theroa) et donne en sortie un seul fichier.
- oggCut: permet de couper un fichier OGG.
- oggCat: permet de coller les uns à la suite des autres des fichiers OGG.
- oggDump: Affiche un fichier OGG sous la forme de paquets.
- oggLength: Affiche la taille d’un fichier OGG (en ms).
Si vous voulez en plus disposer des deux autres utilitaires suivants, Il faut passer par une phase de compilation supplémentaire de la librairie Theora depuis les sources car le paquet Ubuntu (et aussi Debian) comporte un bug.:
- oggResize: permet de changer les caractéristiques des flux audio/video d’un fichier OGG.
- oggSilence: Permet de créer un fichier audio vide (silence) au format Vorbis d’une taille donnée.
En attendant que ces petits utilitaires pour manipuler les fichiers audio/video libre basés sur le format libre OGG soit disponibles dans les dépôts Ubuntu (ce qui ne devrait pas tarder…). Voici une petite procédure pour effectuer la compilation depuis les sources.
Compilation des OggVideoTools
Les sources sont hébergées sur le site Sourceforge.
On commence par récupérer les sources de la dernière version disponible (0.7b au moment de l’écriture de ce billet):
wget http://downloads.sourceforge.net/project/oggvideotools/oggvideotools/oggvideotools-0.7b/oggvideotools-0.7b.tar.gz
Puis on lance la compilation (il faut que votre machine dispose des outils de compilation standard: build-essential sous Ubuntu):
./configure
make
sudo make install
Et voili:
# oggLength bigbuckbunny.ogv
596467# oggSplit bigbuckbunny.ogv
# ls -alF
total 326172
-rw-r–r– 1 labo labo 166825767 2009-08-21 11:26 bigbuckbunny.ogv
-rw-r–r– 1 labo labo 153622630 2009-08-21 16:26 theora_f0678e1.ogg
-rw-r–r– 1 labo labo 13203137 2009-08-21 16:26 vorbis_1fa82364.ogg

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 !
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:
Utilisateurs de Nagios, votre rêve va bientôt se réaliser ! Une équipe Suisse travaille sur le saint Graal de la supervision système et réseau. En effet leur projet NConf vient répondre à un besoin récurrent des utilisateurs de Nagios: l’impossibilité d’administrer son serveur via une interface Web.
Nous allons dans ce billet tester la version 1.2.6 de NConf sur un serveur Nagios 3.1. Je pars sur l’hypothèse ou le serveur Nagios a été installé en suivant mes deux premiers tutos (1 et 2).
Edit: j’ai ajouté un script SHELL « qui fait tout pour vous » en fin de billet…
Voici une petite procédure pour compiler la dernière version du framework multimédia GStreamer tout en préservant la version installée depuis les dépôts officiels. La procédure a été validé sur une GNU/Linux Ubuntu 9.04 mais doit facilement être adaptable à d’autres distribution (pour une procèdure équivalente sous Mac OS X, vous pouvez lire ce billet).
GStreamer étant un framework, il se base sur de nombreuses librairies externes. Pour nous simplifier la tache, nous allons utiliser les dépôts pour l’installation de ces librairies:
sudo aptitude build-dep gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse bison flex git
Ensuite on récupère les dernières versions disponibles de GStreamer et de ses plugins:
mkdir ~/src
cd ~/src
wget http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.10.25.tar.gz
wget http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-0.10.25.tar.gz
wget http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-0.10.17.tar.gz
wget http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-0.10.17.tar.gz
wget http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-0.10.13.tar.gz
wget http://gstreamer.freedesktop.org/src/gst-ffmpeg/gst-ffmpeg-0.10.8.tar.gz
On commence par la compilation de GStreamer (core). L’installation se fera dans le répertoire /opt/gstreamer/gstreamer-0.10.24:
tar zxvf gstreamer-0.10.25.tar.gz
cd gstreamer-0.10.25
./configure –prefix=/opt/gstreamer/gstreamer-0.10.25
make
sudo make install
cd ..
… puis les plugins « base »:
tar zxvf gst-plugins-base-0.10.25.tar.gz
cd gst-plugins-base-0.10.25
PKG_CONFIG_PATH=/opt/gstreamer/gstreamer-0.10.25/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig ./configure –prefix=/opt/gstreamer/gstreamer-0.10.25
make
sudo make install
cd ..
… puis les plugins « good »:
tar zxvf gst-plugins-good-0.10.17.tar.gz
cd gst-plugins-good-0.10.17
PKG_CONFIG_PATH=/opt/gstreamer/gstreamer-0.10.25/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig ./configure –prefix=/opt/gstreamer/gstreamer-0.10.25
make
sudo make install
cd ..
… puis les plugins « bad »:
tar zxvf gst-plugins-bad-0.10.17.tar.gz
cd gst-plugins-bad-0.10.17
PKG_CONFIG_PATH=/opt/gstreamer/gstreamer-0.10.25/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig ./configure –prefix=/opt/gstreamer/gstreamer-0.10.25
make
sudo make install
cd ..
… les plugins « ugly »:
tar zxvf gst-plugins-ugly-0.10.13.tar.gz
cd gst-plugins-ugly-0.10.13
PKG_CONFIG_PATH=/opt/gstreamer/gstreamer-0.10.25/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig ./configure –prefix=/opt/gstreamer/gstreamer-0.10.25
make
sudo make install
cd ..
… et enfin les plugins FFMPEG (streaming):
tar zxvf gst-ffmpeg-0.10.8.tar.gz
cd gst-ffmpeg-0.10.8
PKG_CONFIG_PATH=/opt/gstreamer/gstreamer-0.10.25/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig ./configure –prefix=/opt/gstreamer/gstreamer-0.10.25
make
sudo make install
cd ..
Puis on créé un lien symbolique entre le répertoire /opt/gstreamer/current et /opt/gstreamer/gstreamer-0.10.25. Ce lien nous permet d’avoir plusieur version de GStreamer sur notre système.
sudo cp /opt/gstreamer/gstreamer-0.10.25/lib/gstreamer-0.10.25/* /opt/gstreamer/gstreamer-0.10.25/lib/
sudo ln -s /opt/gstreamer/gstreamer-0.10.25/lib /opt/gstreamer/current
On teste enfin l’installation:
/opt/gstreamer/gstreamer-0.10.25/bin/gst-inspect –gst-plugin-path=/opt/gstreamer/current
Pour les plus faineant, voici un script sheel automatisant ces quelques taches
[shell]
#!/bin/sh
# A simple script to get/compile/install GStreamer
# Nicolas Hennion – GPL
#
# Remarks: the version will be installed in the /opt/gstreamer folder
# Change this to the latest version
GST_CORE=0.10.25
GST_BASE=0.10.25
GST_GOOD=0.10.17
GST_BAD=0.10.17
GST_UGLY=0.10.13
GST_FFMPEG=0.10.8
# Do not edit under this line
sudo aptitude build-dep gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse
sudo aptitude install bison flex git
if [ ! -e gstreamer-$GST_CORE.tar.gz ]
then
wget http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-$GST_CORE.tar.gz
fi
if [ ! -e gst-plugins-base-$GST_BASE.tar.gz ]
then
wget http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-$GST_BASE.tar.gz
fi
if [ ! -e gst-plugins-good-$GST_GOOD.tar.gz ]
then
wget http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-$GST_GOOD.tar.gz
fi
if [ ! -e gst-plugins-bad-$GST_BAD.tar.gz ]
then
wget http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-$GST_BAD.tar.gz
fi
if [ ! -e gst-plugins-ugly-$GST_UGLY.tar.gz ]
then
wget http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-$GST_UGLY.tar.gz
fi
if [ ! -e gst-ffmpeg-$GST_FFMPEG.tar.gz ]
then
wget http://gstreamer.freedesktop.org/src/gst-ffmpeg/gst-ffmpeg-$GST_FFMPEG.tar.gz
fi
sudo mkdir /opt/gstreamer
if [ ! -e gstreamer-$GST_CORE ]
then
tar zxvf gstreamer-$GST_CORE.tar.gz
cd gstreamer-$GST_CORE
./configure –prefix=/opt/gstreamer/gstreamer-$GST_CORE
make
sudo make install
cd ..
fi
if [ ! -e gst-plugins-base-$GST_BASE ]
then
tar zxvf gst-plugins-base-$GST_BASE.tar.gz
cd gst-plugins-base-$GST_BASE
PKG_CONFIG_PATH=/opt/gstreamer/gstreamer-$GST_CORE/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig ./configure –prefix=/opt/gstreamer/gstreamer-$GST_CORE
make
sudo make install
cd ..
fi
if [ ! -e gst-plugins-good-$GST_GOOD ]
then
tar zxvf gst-plugins-good-$GST_GOOD.tar.gz
cd gst-plugins-good-$GST_GOOD
PKG_CONFIG_PATH=/opt/gstreamer/gstreamer-$GST_CORE/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig ./configure –prefix=/opt/gstreamer/gstreamer-$GST_CORE
make
sudo make install
cd ..
fi
if [ ! -e gst-plugins-bad-$GST_BAD ]
then
tar zxvf gst-plugins-bad-$GST_BAD.tar.gz
cd gst-plugins-bad-$GST_BAD
PKG_CONFIG_PATH=/opt/gstreamer/gstreamer-$GST_CORE/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig ./configure –prefix=/opt/gstreamer/gstreamer-$GST_CORE
make
sudo make install
cd ..
fi
if [ ! -e gst-plugins-ugly-$GST_UGLY ]
then
tar zxvf gst-plugins-ugly-$GST_UGLY.tar.gz
cd gst-plugins-ugly-$GST_UGLY
PKG_CONFIG_PATH=/opt/gstreamer/gstreamer-$GST_CORE/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig ./configure –prefix=/opt/gstreamer/gstreamer-$GST_CORE
make
sudo make install
cd ..
fi
if [ ! -e gst-ffmpeg-$GST_FFMPEG ]
then
tar zxvf gst-ffmpeg-$GST_FFMPEG.tar.gz
cd gst-ffmpeg-$GST_FFMPEG
PKG_CONFIG_PATH=/opt/gstreamer/gstreamer-$GST_CORE/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig ./configure –prefix=/opt/gstreamer/gstreamer-$GST_CORE
make
sudo make install
cd ..
fi
sudo cp /opt/gstreamer/gstreamer-$GST_CORE/lib/gstreamer-$GST_CORE/* /opt/gstreamer/gstreamer-$GST_CORE/lib/
sudo ln -s /opt/gstreamer/gstreamer-$GST_CORE/lib /opt/gstreamer/current
/opt/gstreamer/gstreamer-$GST_CORE/bin/gst-inspect –gst-plugin-path=/opt/gstreamer/current
[/shell]
Voici une procédure (assez longue) permettant de générer un .deb (format de package compatible avec l’OS Ubuntu) pouvant être mis sur un depot officiel. Ce billet s’inspire très fortement de ce forum.
Avant de commencer…
Il faut installer les pré-requis suivants:
sudo aptitude install build-essential autoconf automake autotools-dev dh-make debhelper devscripts fakeroot xutils lintian pbuilder
Ensuite on créé l’arborescence suivante dans votre répertoire racine:
cd ~
mkdir packages
cd packages
Création de notre premier package .deb
On doit dans un premier temps récupérer les sources du logiciel à packager (sjitter dans mon exemple):
wget http://fastbull.dl.sourceforge.net/sourceforge/sjitter/sjitter-0.18.1b.tgz
tar zxvf sjitter-0.18.1b.tgz
Le nom du répertoire contenant les sources doit être de la forme nom-version:
mv sjitter sjitter-0.18.1b
On créé un sous répertoire sjitter dans lequel on met l’archive et les sources:
mkdir sjitter
mv sjitter-0.18.1b sjitter-0.18.1b.tgz sjitter
Pour vérifier, le contenu du répertoire de travail doit être le suivant:
# ls -l ~/packages/sjitter
sjitter-0.18.1b
sjitter-0.18.1b.tgz
On va dans le répertoire source:
cd sjitter/sjitter-0.18.1b
Puis on lance la commande:
dh_make -e nicolas@nospam.com -c GPL -f ../sjitter-0.18.1b.tgz
> s
Maintainer name : unknown
Email-Address : nicolas@nospam.com
Date : Wed, 27 May 2009 11:52:00 +0000
Package Name : sjitter
Version : 0.18.1b
License : blank
Type of Package : Single
> ENTER
A la première question, il faut répondre:
s = [single binary] – si c’est package normal
l = [library] – si c’est une librairie de dev
m = [multiple] – si c’est un package comprenant plusieurs binaires
k = [kernel module] – si c’est module noyau
On va alors dans le sous répertoire debian créé par le programme dh_make:
cd debian
Puis on édite le fichier control:
# vi control
Source: sjitter
Section: net
Priority: extra
Maintainer: Nicolas Hennion <nicolas@nospam.com>
Build-Depends: debhelper (>= 5), autotools-dev
Standards-Version: 3.7.2Package: sjitter
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Sjitter is a client/server performing tool.
Sjitter is a command line client/server to measure jitter (based on RFC 1889), one way UDP delay and bandwidth. The client and the server’s date should be synchronise to compute the jitter. You can use the NTP protocol to do this.
Avec:
Ligne 1: Nom du projet
Ligne 2: Section à laquelle appartient le projet (voir la des sections disponible ici)
Ligne 3: Laisse la valeur par défaut
Ligne 4: Nom et adresse mail du mainteneur du package
Ligne 5: Il faut y mettre les dépendances finissants par -dev
Ligne 6: Laisse la valeur par défaut
Ligne 7: Vide
Ligne 8: Mettre la même chose qu’en ligne 1
Ligne 9: Architecture cible (any pour toutes)
Ligne 10: Il faut y mettre les dépendances ne finissants pas par -dev
Ligne 11: Description courte du projet (< à 60 caractères)
Ligne 12->n: Description longue (attention à laisser un espace avant votre description)
Puis le fichier changelog:
# vi changelog
sjitter (0.18.1b) maverick; urgency=low* Version 0.18 (23/03/2009), thanks to Thierry Legras
— Nicolas Hennion <nicolas@nospam.com> Wed, 27 May 2009 11:52:00 +0000
Avec:
Ligne 1: Nom du package et version d’Ubuntu (maverick dans mon exemple)
Ligne 2: Vide
Ligne 3->n: Liste des changements de cette version
Ligne n+1: Vide
Ligne n+2: Nom, adresse mail et date (attention, il faut mettre votre nom / adresse comme configuré dans Launchpad)
Le fichier copyright:
# vi copyright
This package was debianized by Nicolas Hennion <nicolas@nicolargo.com> on
Wed, 27 May 2009 11:52:00 +0000.It was downloaded from http://fastbull.dl.sourceforge.net/sourceforge/sjitter/sjitter-0.18.1b.tgz
Upstream Author(s): Nicolas Hennion <nicolas@nicolargo.com>
License: This script is written under the GNU General Public License.
Avec:
Ligne 1: Nom et adresse de l’auteur du package
Ligne 2: Date
Ligne 3: Vide
Ligne 4: A partir de quel source le package a été généré
Ligne 5: Vide
Ligne 6->n: Les auteurs du logiciel (copie du fichier ../AUTHORS)
Ligne n+1: Vide
Ligne n+2->m: Licence sous laquelle le logiciel est distribué (conformément à la volonté de l’auteur)
Ligne m+1: Vide (optionnel)
Ligne m+2: Licence complète (optionnel)
Il y a ensuite certains fichiers optionnels à configurer. Si ils ne sont pas utiles pour votre logiciel, il faut les supprimer.
README.debian: Informations complémentaires sur le logiciel (non présentes dans les autres fichiers)
emacsen-*.ex: Fichier Emacs pouvant être compilé à l’installation
init.d.ex: Si votre logiciel doit se lancer en mode daemon, c’est dans ce fichier qu’il faut écrire le script init.d
manpage.1.ex, manpage.sgml.ex: Fichiers de man (aide)
preinst.ex: Script à lancer avant l’installation
postinst.ex: Script à lancer après l’installation
prerm.ex: Script à lancer avant la désinstallation
postrm.ex: Script à lancer après la désinstallation
On peut ensuite lancer la génération du fichier .deb
cd ..
debuild -S -k_CLES_
Il faut remplacer _CLES_ par votre clés Launchpad (liste des clés: gpg –list-keys).
Si tout se passe sans problème, vous devriez vous retrouver avec les fichiers suivant dans le répertoire ~/packages/sjitter/:
sjitter_0.18.1b-1.diff.gz: Changement entre .deb et les sources originales
sjitter_0.18.1b-1.dsc: Fichier permettant aux mainteneurs des repos de suivre ce package
sjitter_0.18.1b-1_source.changes: Le changelog (liste des changements)
sjitter_0.18.1b-1_source.deb: Le package au format .deb
sjitter_0.18.1b.orig.tar.gz: Les sources originales
Et voilà, vous venez de faire votre premier package Ubuntu, il ne reste plus qu’a le soumettre à la communauté.
Par exemple pour soumettre votre package sur Launchpad:
dput ppa:nicolashennion/ppa sjitter_0.18.1b-1_source.changes
Et hop…
Le 1er avril 2009, Intel a cédé à la Linux Fundation le développement de son système GNU/inux dédié aux terminaux mobiles (netbooks, MIDs: Mobile Internet devices). Nommé Moblin (contraction de mobile et Linux), ce système d’exploitation vise à exploiter le meilleur des performances des machines construites autour du processeur Intel® Atom™. Il avait fait parler de lui il y a maintenant quelques mois (le projet initial date de 2007) car une des caractérisques est un démarrage (boot) très rapide (inférieur à 5 secondes).
Actuellement disponible en version 2.0 bêta (image ISO du LiveCD téléchargeable ici), le projet propose également un environnement de développement permettant de créer des images ISO personnalisables à vos besoins (Moblin Image Creator) et bien sûr un SDK complet pour développer vos applications. Pour vous donner une idée des possibilités de l’interface graphique de Moblin, vous pouvez regarder cette vidéo.
La principale différence de Moblin par rapport à un projet comme Android est la cible des terminaux. En effet, alors qu’Android se focalise, pour l’instant sur les téléphons portables, Moblin s’attaque au marché des netbooks et MIDS (que l’on peut retrouver par exemple dans les voitures pour gérer les fonctions multimédia).
Le projet lance aujourd’hui un appel à la communauté pour découvrir, tester et développer Moblin. Un site spécialement dédié à été créé à cet effet: Moblinzone.
Après inscription, un espace privé vous donnera accès à un nombre important de ressources sur le projet et vous permettra entre autres de:
- accéder aux vidéos, blogs et articles.
- telecharger les applications disponibles sur Moblin.
- profiter en avant première des dernières mises au point de Moblin.
- partager vos compétences et bénéficier de celles des autres membres de la communauté Moblin.
Ce projet prometteur est donc à suivre de très prêt aux vues de l’explosion des ventes des netbooks que l’on a connue en 2008 !
Note: ceci est un article sponsorisé, j’ai donc été rémunéré pour la rédaction de ce billet.
Le but de ce billet est de mettre en place un serveur de gestion de versions basée sur SVN+SSH.
On commence par installer le package subversion qui comprend à la fois le client et le serveur SVN.
# sudo svn update
# sudo apt-get install subversion
on créé un utilisateur et un groupe générique svn.
# sudo adduser svn
Adding user `svn’ …
Adding new group `svn’ (1000) …
Adding new user `svn’ (1001) with group `svn’ …
Creating home directory `/home/svn’ …
Copying files from `/etc/skel’ …
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for svn
Enter the new value, or press ENTER for the default
Full Name []: SVN
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [y/N] y
Pour des questions de sécurité, je vous conseille de désactiver le SHELL pour cet utilisateur:
# sudo vipw
svn:x:1001:1000:SVN,,,:/home/svn:/usr/sbin/nologin
Si vous souhaitez accéder à votre serveur SVN avec un compte unix bien précis, il faut ajouter le login de ce compte au groupe svn:
# sudo vigr
svn:x:1000:nicolargo
Puis on créé un répertoire ou seront stockées les sources de vos programmes.
# sudo mkdir /var/svn
Il faut ensuite demander à SVN de créer un répertoire SVN pour notre projet:
# sudo svnadmin create /var/svn/projet
Puis de changer les droits:
# sudo chown -R svn:svn /var/svn
# sudo chmod -R 775 /var/svn
Il ne reste plus qu’a tester votre serveur à partir d’une machine distante en « important » votre projet (dont les sources sont localisées dans le répertoire ~/projet pour illustrer ce billet).
Avant l’importation, on va créer la structure classique de SVN:
projet
– trunk
– branches
– tags
client# svn mkdir –parents svn+ssh://nicolargo@monserveur/var/svn/projet/trunk -m « »
client# svn mkdir –parents svn+ssh://nicolargo@monserveur/var/svn/projet/tags -m « »
client# svn mkdir –parents svn+ssh://nicolargo@monserveur/var/svn/projet/branches -m « »
Puis on importe les sources:
client# cd ~/projet
client# svn import . svn+ssh://nicolargo@monserveur/var/svn/projet/trunk -m « Premiere importation »
nicolargo@monserveur’s password:
…
Révision 0 propagée.
Il ne reste plus qu’a tester l’exportation des sources:
client# cd ~
client# mv projet projet.init
client# svn co svn+ssh://nicolargo@monserveur/var/svn/projet/trunk projet
…
Révision 0 extraite.
Pour aller plus loin dans l’utilisation de votre nouveau serveur SVN, je vous conseille le très bon article de Ulhume sur son non-blog…(remplacer juste http:// par svn+ssh://)
