Catégories
Open-source Reseau

Analyse des flux Netflow sous GNU/Linux

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).

Catégories
Open-source Systeme

Installation de XvidCap sous Ubuntu Janty

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 ».

XvidCap


Catégories
Image Open-source

Installation des OggVideoTools sous Ubuntu

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

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
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 Reseau Systeme

NConf, une interface Web pour Nagios

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).

Catégories
Gstreamer Open-source Systeme

Compiler GStreamer depuis les sources sous GNU/Linux

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]

Catégories
Developpement Open-source Planet-libre

Comment construire un .deb pour Ubuntu

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.2

Package: 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…

Catégories
Open-source Systeme

Moblin un nouveau Linux pour les netbooks

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.

Intel

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.

Catégories
Developpement Open-source Systeme

Installation d’un serveur SVN sous Ubuntu

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://)