Vous êtes sur la page 1sur 84

N° 77

PRO
La télédiffusion
d’applications
depuis GLPI avec
FusionInventory
MAI / JUIN 2013 FRANCE METRO : 6,50 € – DOM : 7,10 € – NCAL/A : 1200 CFP – POL/S : 950 CFP – POL/A : 1300 CFP BEL/PORT. CONT. : 7,20 € – CH : 9,50 CHF – CAN : 9,90 $CAD – MAR : 85 DH – TUNISIE : 14 TND
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

WEB APPLICATION GÉRER SES DONNÉES


Mettre en place une base de Tarsnap, une solution de
connaissances avec phpMyFAQ stockage sécurisée dans le Cloud

LINUX/WINDOWS
Vous avez choisi Linux ?
N'abandonnez plus vos
applications Windows !
▪ Retrouvez tous vos logiciels favoris via
la dernière version de WINE
▪ Créez une machine virtuelle dédiée à
vos jeux propriétaires

CRÉA/3D
Réalisez des
titres animés GUIDE
pour OpenShot avec Blender Serveur sous Linux : comment
bien partitionner ses disques ?
VOIP
Ekiga 4 : CODE
communiquez avec vos Bonnes pratiques PHP : testez
L 18864 - 77 - F: 6,50 € - RD

collaborateurs en toute simplicité automatiquement votre code

REPÈRES UTILITAIRES
Exploitez tous les cœurs de vos processeurs
grâce aux outils de compression « modernes »
Bientôt disponible
chez votre marchand de journaux !

LE guide complet pour


Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

mettre en place et bien configurer


votre serveur web !

Nouveau
format :
entre le livre et le
magazine...
Découvrez le 2ème mook
des éditions Diamond !

Sous réserve de tout modification.

disponible dès le 26 avril chez


GNU/Linux Magazine votre marchand de journaux et
Hors-Série n°66 sur : ed-diamond.com
Linux Pratique est édité par
Les éditions Diamond
édito
B.P. 20142 / 67603 Sélestat Cedex Décider un beau matin de changer de système d’exploitation
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Tél. : 03 67 10 00 20 | Fax : 03 67 10 00 21 demande pas mal d’efforts, comme à chaque fois qu’il s’agit
E-mail : c ial@ed-diamond.com
lecteurs@linux-pratique.com
de bouleverser ses habitudes. La plupart des gens étant d’un
Service commercial : abo@linux-pratique.com naturel peu enclins à faire ce type d’efforts, on peut déjà saluer
Sites : w
 ww.linux-pratique.com | www.ed-diamond.com le fait que vous ayez pris cette (sage) décision. Reste à espérer
Directeur de publication : Arnaud Metzler que vous n’ayez aucun regret par la suite...
Chef des rédactions : Denis Bodor
Or, choisir d’utiliser le système GNU/Linux c’est, pour beau-
Rédactrice en chef : Fleur Brosseau
Secrétaire de rédaction : Véronique Sittler
coup, devoir mettre une croix sur certains de leurs logi-
Conception graphique : Kathrin Scali ciels favoris (parfois acquis de façon plus ou moins légale
Responsable publicité : Valérie Fréchard d’ailleurs... mais c’est un autre sujet...). Si, pour les besoins
Tél. : 03 67 10 00 27 - v.frechard@ed-diamond.com « de base » (Web, multimédia, développement, activités
Service abonnement : Tél. : 03 67 10 00 20
bureautiques, etc.), le Libre a largement de quoi proposer
Photos & Illustrations : www.fotolia.com
des alternatives fiables et efficaces, il faut bien avouer que ça
Impression : VPM Druck Rastatt / Allemagne
pèche un peu dans certains domaines particuliers.
Distribution France :
(uniquement pour les dépositaires de presse) Je pense notamment au montage vidéo, au graphisme 2D/3D
MLP Réassort : et surtout, aux jeux vidéos. Non pas qu’il n’y ait aucun logiciel
Plate-forme de Saint-Barthélemy-d’Anjou.
Tél. : 02 41 27 53 12 compatible Linux qui soit performant dans ces domaines, bien
Plate-forme de Saint-Quentin-Fallavier. au contraire ! Vous en avez d’ailleurs la preuve régulièrement
Tél. : 04 74 82 63 04
dans nos pages ;-) Mais généralement, de petits détails font
Service des ventes :
Distri-médias : Tél. : 05 34 52 34 01 toute la différence avec la version propriétaire (ça manque un
peu d’ergonomie ici ou là, certaines fonctionnalités ne sont
pas encore implémentées, etc.). Quant au cas particulier des
Imprimé en Allemagne - PRINTED in Germany
Dépôt légal : À parution jeux, il est bien connu que les meilleurs d’entre eux ne sont
N° ISSN : 0183-0872 bien souvent pas compatibles avec notre système d’exploita-
Commission Paritaire : K78 990 tion préféré...
Périodicité : Bimestrielle
Prix de vente : 6,50 Euros Or, depuis quelques années maintenant, la solution propo-
La rédaction n’est pas responsable des textes, illustrations
sée pour pallier le problème est dans tous les esprits : Wine.
et photos qui lui sont communiqués par leurs auteurs. La À ses débuts, ses possibilités étaient quelque peu limitées,
reproduction totale ou partielle des articles publiés dans Linux mais avec le temps, ce « pseudo-émulateur » d’environne-
Pratique est interdite sans accord écrit de la société Les
Éditions Diamond. Sauf accord particulier, les manuscrits, ment Windows est devenu très performant et s’avère capable
photos et dessins adressés à Linux Pratique, publiés ou de faire tourner sous Linux de plus en plus d’applications et
non, ne sont ni rendus, ni renvoyés. Les indications de prix
logiciels propriétaires populaires, sans compter que des pro-
et d’adresses figurant dans les pages rédactionnelles sont
données à titre d’information, sans aucun but publicitaire. jets annexes viennent simplifier son utilisation. Par ailleurs,
Toutes les marques citées dans ce numéro sont déposées une large communauté d’utilisateurs est prête à faire part de
par leur propriétaire respectif. Tous les logos représentés
son expérience, à communiquer les configurations spéciales
dans le magazine sont la propriété de leur ayant droit
respectif. qu’il faut mettre en place pour un fonctionnement optimal, etc.
Beaucoup plus pratique qu’un dual boot, l’utilisation de Wine
www.linux-pratique.com vient ainsi parfaitement combler les éventuels manques qui
pourraient subvenir en passant à Linux, vous évitant le moindre

N o u ve a u  !
regret... Dans la même thématique, nous vous proposons éga-
lement dans ce numéro la mise en place d’une machine vir-
tuelle Xen, spécialement configurée pour profiter de vos jeux
Les abonnements numériques et les anciens propriétaires.
numéros sont désormais disponibles sur :
Vous n’aurez définitivement plus aucune excuse pour ne pas
troquer votre système Windows contre Linux :)
en version
PDF : Fleur Brosseau
numerique.ed-diamond.com
en version
papier :
ed-diamond.com

w w w.linux-pratique.com  Linux Pratique n°77 | 3


sommaire
 Linux Pratique n°77
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

actus Geeks
05 Toute l'actualité Linux et open source 50 Réaliser des titres animés pour OpenShot à
l'aide de Blender
10 Apertus, LE projet open source du septième
art !

APPLICATIF
15 SlowmoVideo, la vidéo à vitesse variable
18 Ekiga 4 : la VoIP en toute simplicité !
19 Lisez les actus offline sur votre Kindle !

En couverture
22 Utilisez vos applications Windows même sous
Linux avec Wine 1.5 !
58 Organisez votre collection de musique avec
28 Jouer aux jeux vidéos sous GNU/Linux (ou beets
presque)
Repères
60 Outils de compression « modernes »

DÉCISIONNEL
64 La télédiffusion d’applications depuis GLPI

Code
68 Bonnes pratiques PHP :
Testez automatiquement votre code – 1/2
72 Python 3 : travailler avec des séquences

système & réseau fiches pratiques


34 Serveur sous Linux : disques et partitionnement 21 Récupérez facilement des vidéos en ligne
38 Besoin d'un serveur sans prétentions ? grâce à Movgrab !
Essayez 4MLinux ! 40 Mémo : Comment installer un environnement
LAMP (Linux, Apache, MySQL, PHP) ?
wEB 78 Surveillez vos serveurs à distance : le
monitoring système en ligne avec Monitorix
42 Tarsnap : stockage sécurisé dans le Cloud
46 Mettre en place une base de connaissances
avec phpMyFAQ 13/14/33 Abonnements & Commandes

4 | Linux Pratique n°77  w w w.linux-pratique.com


actus

Ubuntu pour tablette tactile


Partez à l’aventure avec Peu de temps après sa version pour mobile présentée au

The Legend of Edgar


mois de janvier, Canonical vient de livrer une version de sa
célèbre distribution optimisée pour les tablettes tactiles (plus
généralement, pour les terminaux dotés d’écran de 4 à 10
pouces), espérant ainsi trouver sa place parmi Android, iOS et
Windows. L’objectif de Canonical est de créer une expérience
unifiée, quel que soit l’appareil. La navigation se fait via les
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

bords de l’écran. Une fonction multitâche permet d’afficher


une application tandis qu’une seconde apparaît à l’arrière-
plan, ce qui engendre bien plus d’ergonomie pour l’utili-
sateur qui n’est pas obligé d’interrompre une activité pour
communiquer sur ses réseaux sociaux favoris par exemple.
Il s’agit d’un jeu de plateforme en 2D, qui se déroule L’éditeur met en avant les fonctions de sécurité avancées de
dans un monde persistant. Dans ce jeu – sans préten- sa solution ; elle propose une gestion multicompte utilisa-
tion, mais relativement prenant - vous incarnez Edgar, teurs et intègre des fonctions de chiffrement. Une vidéo de
un jeune homme à la recherche de son père disparu, démonstration est disponible depuis http://www.ubuntu.
probablement capturé par un sorcier maléfique et com/devices/tablet. Une version Touch Developer Preview
retenu prisonnier. Pour cela, vous devrez traverser (une version pour développeurs non destinée à être distri-
un monde dangereux, résoudre des énigmes et com- buée) peut d’ores et déjà être testée sur les tablettes Nexus 7
battre quelques ennemis à l’aide d’armes diverses. et 10 de Google, puis sur les mobiles Nexus 4 et le Samsung
Le développement du jeu est actif, il a en effet bénéfi- Galaxy S. Elle s’accompagne d’instructions relatives à la
cié de plusieurs mises à jour depuis le début de l’an- procédure de flash de la tablette (https://wiki.ubuntu.com/
née, qui viennent principalement corriger quelques Touch/Install). La version finale devrait être intégrée à Ubuntu
bugs liés à l’utilisation de certaines armes et amé- 13.10 au mois d’octobre.
liorer les traductions (le jeu est disponible en fran-
çais). The Legend of Edgar peut être installé sur Linux Red Hat Enterprise Linux 6.4
(paquets DEB et RPM disponibles sur sourceforge.net) Red Hat a annoncé le 21 février dernier la version 6.4 de
ou Windows. ▪ Red Hat Enterprise Linux (RHEL), une distribution commer-
ciale destinée aux professionnels et aux entreprises. Une
mise à jour mineure, qui apporte toutefois de nouvelles
options très intéressantes, en particulier côté réseau, avec les
arrivées du FcoE (Fibre Channel over Ethernet), des réseaux
Dotclear 2.5 locaux virtuels (VLAN) et de l’agrégation de liens (bonding).
Pour la prise en charge du matériel, on notera la présence
enfin dans les bacs ! de quelques nouveaux pilotes et pas mal de mises à jour.
Côté virtualisation, RHEL 6.4 inclut dorénavant des pilotes
Le 24 février, c’est une release candidate qui a pointé pour améliorer son utilisation avec l’hyperviseur Microsoft
le bout de son nez, la version stable est sortie peu Hyper-V ; les principaux pilotes pour VMWare sont quant à
après, le 16 mars. À savoir qu’il ne s’agit pas vraiment eux maintenant installés via Anaconda. La distribution intègre
d’une version majeure, dans le sens où les modifica- par ailleurs des outils de monitoring améliorés, qui compor-
tions apportées ne sont pas visibles des utilisateurs. tent notamment de nouveaux compteurs. À souligner enfin
Parmi les changements apportés, outre plusieurs une meilleure interopérabilité avec Microsoft Exchange.
corrections de bugs, on retiendra qu’il est possible
d’utiliser désormais les webfonts dans le thème Festival Geekopolis
Ductile, et daInstaller (l’installateur de modules des
dépôts DotAddict.org) est inclus dans la base. Deux Les 25 et 26 mai 2013, Geekopolis, La Cité des Geeks, per-
failles de sécurité concernant le système de téléchar- met à ses visiteurs de vivre une expérience unique d’immer-
gement multiple de médias ont été publiées récem- sion dans des quartiers emblématiques de la culture geek.
ment et cette version 2.5 embarque le nécessaire Parmi eux, la science-fiction tient une place essentielle et
pour les combler. Quelques réglages minimes ont été le festival dont vous êtes le héros se fait fort d’embarquer
effectués au niveau de l’apparence de l’application ; son public dans des aventures inédites. Si vous vous êtes un
les développeurs de plugins et de thèmes doivent jour rêvé en Luke Skywalker ou Obi-Wan Kenobi, L’Aventure
s’attendre à quelques changements également, dont Galactique vous permet d’intégrer enfin l’Alliance Rebelle en
ils visualiseront le détail dans le changelog. Cette qualité de membre d’un commando dont la périlleuse mission
version 2.5 se caractérise surtout par sa compatibi- est d’infiltrer la Base Impériale avec votre équipe. Une aven-
lité nouvelle avec PHP 5.4, ce qui ravira bon nombre ture comme vous n’en avez jamais vécue dans des décors
d’administrateurs. Et au passage, le projet a changé qui vous plongent dans l’univers de la Guerre des Étoiles !
de « capitaine » : Xavier Plantefève a laissé la barre Pour en savoir plus sur les différentes animations proposées,
à Franck Paul. ▪ rendez-vous sur http://geekopolis.fr.

w w w.linux-pratique.com  Linux Pratique n°77 | 5


actus

Proxmox 2.3
Nous vous avions présenté la
version 2.0 de Proxmox dans
Un stylo qui détecte les fautes

Crédits photo : lernstift.com


Linux Essentiel hors-série n°1.
Cette distribution basée sur
Debian et axée sur la virtualisa-
tion est maintenant disponible
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

en version 2.3. Cette nouvelle


version inclut pas mal de mises
à jour parmi lesquelles : vzker-
nel en version 2.6.32, une base (1) capteurs de mouvement (2) système de reconnaissance des mots (3) capteur
Debian 6.0.7, QEMU-KVM en ver- de pression (B) batterie (M) cartouche du stylo (S) interrupteur.
sion 1.4.0, ainsi qu’une nouvelle Conçu par une société allemande (http://www.lernstift.com), ce stylo se met à vibrer
implémentation de sauvegarde lorsque l’utilisateur commet une faute d’orthographe ou de grammaire, et même
KVM, et les derniers pilotes lorsque son écriture est tout bonnement
réseau Broadcom bnx2/bnx2x, illisible ! Le « Lernstift » (qui signifie en
Adaptec aacraid, igb 4.1.2 et allemand « stylo qui apprend ») se com-
ixgbe 3.12.6. À noter également
Crédits image : lernstift.com

pose d’un stylo bille doté de plusieurs


l’implémentation de l’auto-bal- capteurs de mouvements permettant
looning et l’ajout d’un utilitaire de suivre les déplacements et ainsi de
pour étendre la dimension des détecter les erreurs éventuelles. Et ce
disques. Par ailleurs, Qcow2 stylo fonctionne... sous Linux ! Ses créa-
devient le format de stockage teurs ont lancé un projet de financement
par défaut et un historique des participatif ; le stylo devrait être dispo-
tâches est désormais disponible nible dès le mois d’août. ▪
par machine virtuelle.

Un service
d’écoute musicale
bientôt sur YouTube ?
Firefox 20 : une
YouTube préparerait pour cette navigation privée
année un ser vice d’écoute
musicale en streaming. La
indépendante
plateforme qui héberge déjà Alors que les dernières versions du naviga-
de nombreux clips musicaux teur visaient surtout à améliorer les perfor-
(certes, pas toujours en très mances et le moteur de rendu, cette version
bonne qualité...), envisagerait 20 apporte pas mal de nouvelles fonc-
deux modèles économiques : tionnalités. Parmi elles, un nouveau ges-
un service gratuit pour les utili- tionnaire de téléchargements qui s’avère
sateurs, financé par la publicité, beaucoup moins intrusif, ainsi qu’un mode
ainsi qu’un accès sur abonne- de navigation privée qui se lance désor-
ment, offrant des fonctionnali- mais dans une nouvelle fenêtre dédiée (et
tés plus avancées. Rien de très non plus pour l’ensemble de la session).
révolutionnaire en somme... Les téléchargements sont ainsi localisés
Rappelons que Google Play dans une petite icône, à côté de la barre
offre déjà à tout utilisateur de d’adresse. Le lancement d’un télécharge-
l’écosystème Google la possi- ment fait apparaître non plus la fenêtre de gestion habituelle, mais une barre de
bilité de stocker jusqu’à 20000 progression, à l’instar du comportement adopté par le navigateur Safari ; un clic
titres, ce qui a permis à la firme sur l’icône fait apparaître une petite fenêtre qui disparaît lorsque l’on clique ailleurs.
de devenir un acteur crédible du
Parmi les autres améliorations, on retiendra la possibilité de forcer la fermeture d’un
secteur. Et si ce nouveau pro-
plugin en dysfonctionnement, sans entraîner la fermeture de l’application. Côté déve-
jet voit le jour, il deviendra un
loppeurs, un effort supplémentaire a été fait sur le support des balises <audio> et
sérieux concurrent pour Spotify
<vidéo> d’HTML 5 et sur le support des modes blend de l’élément <canvas> ;
et Deezer pourtant bien ancrés l’implémentation de la norme ECMAScript 6 continue sur sa lancée. Firefox 20 peut
dans ce milieu. être téléchargé à l’adresse : http://www.mozilla.org/fr/firefox/new/. ▪

6 | Linux Pratique n°77  w w w.linux-pratique.com


actus

École Numérique
Pour Tous : une Ubuntu
adaptée à l’enseignement du
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

1er degré
C e t t e n o u ve l l e
distribution Linux,
adaptée aux
e n s e i g n a nt s et
élèves des écoles
maternelles et
élémentaires, a
été élaborée en
collaboration avec le monde enseignant. Basée sur
Ubuntu 12.04, elle est dotée d’une interface moderne,
simple à utiliser, adaptée à une utilisation sur tablette
numérique et tableau blanc interactif (TBI). Le bureau
propose des icônes ludiques et colorées, qui séduiront
très certainement les plus jeunes, et les différentes acti-
vités sont organisées par matières scolaires. L’interface
d’administration est elle aussi particulièrement acces-
sible ; elle est facilement personnalisable via de simples
glisser-déposer et la création de raccourcis.
École Numérique Pour Tous comporte un large éventail
de logiciels pédagogiques, répondant aux besoins des
élèves et corps enseignant du niveau primaire, parmi
lesquels : OpenSankoré, un logiciel pour TBI, Images
Actives, un logiciel de création graphique édité par le
CRDP de Versailles, le célèbre Terrier d’AbulÉdu, ou
encore OOo4Kids, la suite bureautique adaptée aux
enfants. Elle intègre par ailleurs de nombreuses res-
sources pédagogiques pour l’éducation, créées par des
enseignants pour les enseignants. École Numérique
Pour Tous est développée par la société iMaugis.
Elle est téléchargeable gratuitement à l’adresse  :
http://imaugis.com/dl/ENPT-12.04-i386.iso. ▪

w w w.linux-pratique.com  Linux Pratique n°77 | 7


actus
SaveTheDate
Heroes of Newerth, 26 avril → Quimperlé
un jeu disponible sous L’association « Libre à Quimperlé » propose un atelier
ludique de cartographie collaborative avec OpenStreetMap.
Linux à explorer... Vous y recueillerez des informations, conseils et astuces
H e r o e s o f N ewe r t h pour débuter et découvrir la cartographie de votre région.
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

(HoN) est un jeu en En bonus, des cartes gratuites pour la randonnée compa-
ligne de type MOBA tibles GPS et des cartes routières pour vos trajets auto-
(Multiplayer Online Battle mobiles. Tous les outils nécessaires sont fournis sur
Arena), développé par place. Inscription préalable obligatoire. Plus d’infos sur
S2 Games, dont tous les http://libre.a.quimperle.perso.sfr.fr/Initiation_josm.html.
jeux sont nativement pro-
posés sous Linux. Pour
rappel, ce jeu proprié-
26 avril → Rennes
taire et multiplateforme Comme tous les vendredis, l’association Gulliver, groupe
est gratuit depuis fin juillet d’utilisateurs de logiciels et œuvres libres d’Ille et Vilaine
2011, et sa communauté et des environs de Rennes, tient une permanence à la
de joueurs n’a cessé de Maison de la consommation et de l’environnement, à
croître depuis lors. partir de 19h30. Cette permanence est ouverte à tous,
membres de l’association ou non. On peut s’y informer
Le contexte : deux clans s’affrontent dans un monde fan-
sur les logiciels et œuvres libres, les découvrir, en tester
tastique, l’un représentant les forces du mal et le second
et amener sa machine pour une installation. Infos pra-
représentant les forces du bien, chacun ayant pour but de
tiques sur http://gulliver.eu.org/wiki/MCEPermanence.
détruire le bâtiment principal de l’équipe adverse tout en
protégeant le sien. Les deux camps sont situés sur une
carte, à l’opposé l’un de l’autre, et envoient leurs troupes 23 mai → Lyon
sur le champ de bataille via les voies qui relient les deux
camps. Chaque faction dispose d’une équipe compo- L’association Ubuntu-Lyon et l’ALDIL organisent un « Jeudi
sée de 1 à 5 joueurs, chaque joueur contrôlant un héros. De La Bidouille » le 23 mai 2013, de 19h à 22h, à la Maison
HoN se base sur un système de classement selon lequel Pour Tous. Une rencontre gratuite et ouverte à tous, organi-
chaque joueur est associé à un score appelé Public Skill sée le troisième jeudi de chaque mois, pour découvrir l’in-
Rate ou PSR ; celui-ci, fixé à 1500 au démarrage, évolue formatique libre et/ou obtenir de l’aide sur un point précis.
positivement en cas de victoire, ou bien négativement en Pour plus d’informations et le planning de cette saison :
cas de défaite. Et comme bien souvent, il est possible http://forum.ubuntu-lyon.org/viewtopic.php?id=371.
d’acquérir au cours de l’aventure des objets susceptibles
de renforcer son personnage et son équipe. Un trailer du
jeu peut être visionné sur Dailymotion.
25 mai → Toulouse
De manière régulière, le Blender User Group toulousain
Le développement de HoN est particulièrement actif
organise, en coopération avec l’association Toulibre, un
et le jeu bénéficie régulièrement de mises à jour ; un
atelier sur le logiciel libre d’animation, de modélisation et
nouveau héros fait son apparition chaque mois (il en
de rendu 3D Blender, au Centre Culturel Bellegarde. Ces
existe plus d’une centaine aujourd’hui). Une version
ateliers sont ouverts à tous, que vous soyez débutants,
3.0.5 vient d’être publiée ; une version majeure (3.0)
passionnés ou simplement intéressés par les images de
est sortie fin janvier et a apporté des fonctionnalités
synthèse et les films d’animation. Un ordinateur équipé
essentielles, comme la possibilité de jouer contre des
d’une version récente de Blender (à partir de 2.49a) est
IA pour s’entraîner, ou encore l’introduction d’un mode
vivement recommandé. Inscription préalable à l’adresse
de jeu moins technique et plus court. À télécharger
http://toulibre.org/ateliers_blender.
sur http://www.heroesofnewerth.com/download/. ▪

06 juin → Caen
L’association CALVIX, qui rassemble des utilisateurs
de logiciels libres du Calvados et plus généralement
des promoteurs du libre, vous propose de se retrouver
comme chaque mois à son « First Jeudi ». Vous y ren-
contrerez les membres de l’association pour discuter
et échanger autour du libre : logiciels, réseaux, libertés
numériques, cartographie, robotique, musique, et autres.
Un événement ouvert à toutes et à tous, membres ou non.
Infos pratiques sur http://www.calvix.org/.

8 | Linux Pratique n°77  w w w.linux-pratique.com


actus

Du côté DES SOLUTIONS PRO


e-commerce tourisme

Pour votre boutique en ligne, La gestion de vos réservations


avec HotelDruid
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

optez pour Thelia !

Cette application, anciennement


nommée «  PHP Residence  » et
développée par DigitalDruid.Net
Thelia est un outil sous licence libre (GPL) de création de
(licence AGPL), permet de gérer les
sites e-commerce, particulièrement simple à personnaliser
réservations hôtelières (chambres
et à utiliser. Il est l’outil de choix pour quiconque souhaite d’hôtel ou appartements indivi-
créer sa petite boutique en ligne, une boutique élégante et duels), à la journée ou à la semaine. Elle repose sur une base de
proposant des fonctionnalités essentielles à ses visiteurs : données PostgreSQL, MySQL ou SQLite au choix.
catalogue en ligne, présentation esthétique des produits,
panier d’achat, etc. Son interface web est particulièrement flexible et permet de
répondre à la plupart des besoins de la location touristique.
Son interface d’administration et elle aussi très agréable à Elle peut être administrée par plusieurs utilisateurs (plusieurs
utiliser ; on y trouve très rapidement ce dont on a besoin. membres du personnel), grâce à un système de privilèges. Les
Elle permet de créer autant de produits et de catégories réservations des chambres peuvent être assignées automati-
que nécessaire et gère les déclinaisons de produits et pro- quement, grâce à la définition de règles personnalisées (en fonc-
motions diverses. Parallèlement à la gestion des produits, tion du nombre d’occupants que la chambre peut accueillir, en
Thelia permet de gérer d’autres types de contenus (articles, fonction de la durée du séjour demandé, etc.) ; l’application se
news, etc.). L’application intègre bien entendu la gestion des charge d’optimiser le planning de réservations sur l’ensemble
clients et des commandes, ainsi que la gestion des frais des chambres disponibles. Elle inclut la possibilité de créer des
de port et transporteurs. Thelia peut évidemment s’adap- formulaires pour un site web, permettant de vérifier les disponi-
ter à l’identité graphique de votre entreprise; de nombreux bilités de l’établissement.
exemples peuvent être visualisés ici : http://thelia.net/spip.
HotelDruid gère également les frais annexes, que vous pouvez
php?page=boutiques#.
appliquer à la journée ou qui concernent l’ensemble du séjour
Le noyau de l’appli- (frais de nettoyage, ajout de lit supplémentaire, offres spéciales,
cation, flexible et etc.). Les factures et autres documents peuvent être imprimés,
robuste, est basé sauvegardés et envoyés par email.
sur PHP/MySQL  ;
L’aspect esthétique aurait pu être plus soigné, mais l’applica-
les fonctionnali- tion est fonctionnelle et répond à l’ensemble des besoins du
tés de Thelia peu- secteur. Deux modules supplémentaires (payants) peuvent être
vent être étendues téléchargés sur le site du projet ; l’un permet de disposer d’une
grâce à un système page web qui permet non seulement de vérifier les disponibili-
d’extensions (plus de 250 sont disponibles à ce jour...). La tés, mais aussi de réaliser le paiement en ligne (via PayPal ou
dernière version en date est disponible depuis l’automne la saisie des coordonnées bancaires via une connexion SSL).
2012. Une version majeure 2.0 est toutefois annoncée pour L’autre module offre la possibilité de synchroniser vos réserva-
fin 2013. Cette nouvelle version devrait être une véritable tions avec les sites booking.com, expedia.com et venere.com.
révolution pour le projet : une toute nouvelle architecture
basée sur le framework Symfony2, une interface d’adminis- HotelDruid est disponible pour Linux (sources ou paquet DEB),
tration plus efficace, la mise en place de tests unitaires et Mac OS X et Windows, et est traduite en plusieurs langues (dont
le français). La dernière version en date, numérotée 2.0.3, a été
d’une API pour le développement de plugins, une intégra-
publiée au mois de mars. Une démonstration est accessible
tion plus poussée avec les réseaux sociaux, une meilleure
à partir du site du projet (http://www.hoteldruid.com/) ; elle
optimisation SEO, etc. ▪
vous permettra de tester aisément toutes les fonctionnalités de
l’application. ▪

w w w.linux-pratique.com  Linux Pratique n°77 | 9


actus

Apertus,
LE projet open source
du septième art !
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Fig. 1 : La version NC353L-369 de la


Franck Barnier caméra Elphel équipée de la fonction GPS

Ce projet est simplement ÉNORME... Et un peu fou aussi ! En effet, il a pour but de
créer une caméra cinématographique open source, ainsi que les logiciels indispensables
pour tout cinéaste professionnel qui se respecte ! Vous connaissez Blender que vous
avez découvert dès ses débuts dans les pages de GNU/Linux Magazine. Vous savez le
chemin qui a été parcouru et ce qu’il est devenu ! Et si le projet Apertus pouvait susciter
autant d’engouement ? Et s’il pouvait connaître le même succès ?

1. Caméras intègre également le circuit logique


programmable (FPGA) Xilinx Spartan
Enfin, vous avez forcement tous pu
voir des images prises avec les camé-
Elphel, le matériel 3e 1200K qui s’occupe notamment du ras Elphel, puisque ce sont celles
qu’utilise Google pour son fameux
professionnel à traitement et de la compression de la
vidéo. Enfin, toutes les variantes de la Street  View dans sa version 360°
petit prix caméra NC353L disposent d’un cap-
teur 5 MPixels (2592x1944).
équipée de 24 capteurs de 5 MPixels !

Il existe déjà des open caméras telles


que les modèles proposés par la société
Le modèle de base de la caméra 2. AXIOM, la caméra
(NC353L) est disponible à 800$ et dis-
Elphel ( http://www3.elphel.com/ ).
En effet, les logiciels et matériels uti- pose uniquement d’une prise réseau. open source
lisés sur ces caméras sont libres et Pour 1300$, la version NC353L-369
de la caméra intègre le module 10369
version Apertus
ouverts (licence GNU/GPL3). Ainsi,
il est possible à l’utilisateur d’appor- qui embarque notamment deux ports Même si A per tus travaille avec
ter ses propres modifications et amé- Ethernet 10/100MBit/s, un port SATA les caméras Elphel, son ambition
liorations, tout étant disponible (plans, externe, un port IDE interne, quatre est de signer sa propre caméra
schémas électroniques et firmwares). ports USB, une horloge temps réel open  source... Et quelle caméra  !
C’est actuellement avec les modèles et deux ports de synchronisation D’une résolution de 4K, elle sera équi-
Elphel 353 que travaille l’équipe d’Aper- (pour filmer avec plusieurs caméras). pée du capteur 35 mm de 12 MPixels
tus pour le développement de différents Le module dispose également d’un (4096x3072) CMV12000 développé
projets logiciels (http://apertus.org/). connecteur pouvant recevoir la carte par la société CMOSIS. Capable de
fille 103691, interface permettant de filmer en HDR, ce petit bijou peut
Les caméras Elphel 353 sont com-
connecter deux car tes Compact- acquérir la vidéo jusqu’à 175 images
posées de modules permettant de
Flash. D’autres versions sont dis- par seconde, que ce soit en couleur
leur ajouter des fonctionnalités.
ponibles, intégrant par exemple ou en monochrome. Cela laisse pré-
L’ordinateur embarqué (module 10353)
accéléromètre et gyroscope tri-axial, sager un produit fini aux performances
est équipé du SoC (System on Chip)
ou disque dur 1,8’’ de 120Go. haut de gamme.
AXIS ETRAX FS, processeur RISC
cadencé à 200MHz supportant tota- Pour information, le prix d’une caméra Pour mener à bien cet ambitieux pro-
lement notre système préféré depuis cinéma professionnelle 35mm full- jet, celui-ci bénéficie maintenant de
le noyau 2.6. Il intègre une MMU (unité HD (1920x1080) tourne autour des son propre site Internet (http://axiom.
de gestion de mémoire), de 128Mo 15  0 0 0 €  T TC. L’avantage de ce apertus.org). Vous y trouverez toutes
de RAM (64Mo dédiés au système et concept modulaire est que chaque les informations qui concernent ce
64Mo à la vidéo) et 128Mo de mémoire utilisateur pourra obtenir une caméra projet. Sachez qu’Apertus a besoin de
Flash dédiés au système. Le module adaptée au mieux à ses besoins. l’aide de tous. Si les projets d’Apertus

10 | Linux Pratique n°77  w w w.linux-pratique.com


actus

programme est prévu pour afficher


l’image en cours d’enregistrement,
tout comme ce que l’on trouve sur
toutes les caméras commerciales.

5. Viewfinder, le
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Fig. 3 : Le projet Dictator est une


viseur électronique
interface complète et évolutive de
commande de la caméra.
de la caméra
Fig. 2 : Le projet de caméra libre Sous ce nom se cache le projet d’un
AXIOM a besoin de nous tous. viseur électronique réalisé à partir d’un
Mobilisons-nous pour aider au (Arduino par ex.) équipé d’un écran
ordinateur embarqué relié à la caméra
développement du prototype ! LCD rétro-éclairé 16 bits Siemens d’une
via une liaison Ethernet ou Wifi. Équipé
résolution de 176x132 permettant d’af-
vous plaisent, vous pouvez faire un don d’un écran tactile, l’OS sera un système
ficher les paramètres de réglage de la
en vous rendant sur la page « Donate » Linux dédié permettant un démar-
caméra. Cet écran, non tactile, équipe
du site. En attendant que la campagne rage rapide et lançant automatique-
différents téléphones et présente l’avan-
de dons spécifique pour la caméra ment l’application Elphelvision. Équipé
tage d’être très bon marché. Mediator
Axiom soit mise en place, il est tout de d’un écran tactile, cet ordinateur sera
disposera de boutons poussoirs et
même possible de donner pour l’en- capable de lire des flux vidéos jusqu’à
rotatifs permettant d’intervenir sur la
semble des projets. De plus, vous pou- 1280x720 grâce au module Elphel 373,
configuration de la caméra, comme par
vez définir le pourcentage de la somme quelle que soit la résolution d’enregis-
exemple la vitesse d’obturation, la réso-
que vous souhaitez attribuer à chacun trement de la caméra !
lution, le nombre d’images par seconde,
des projets en cours ! le gain électronique, la saturation ou
Les membres d’Apertus ont fait le encore le niveau de compression de 6. Support universel
choix de créer une société, qui en sauvegarde de la vidéo. Il permettra
bien évidemment de lancer l’enregis- Ce projet a pour but de concevoir un
parallèle de l’association, aura pour
trement de la vidéo. La communication support pouvant recevoir une caméra
but de mener à bien la fabrication de
entre Dictator et la caméra sera réali- Elphel (pour l’instant), un système de
la caméra, ainsi que sa distribution et
sée via une prise USB. De plus, en cas contrôle (PC), les batteries, le module
le support technique nécessaire, mais
d’utilisation embarquée, il sera pos- d’acquisition audio, un disque dur 2,5’’,
également le SAV.
sible d’utiliser une liaison sans fil type ainsi que les adaptateurs 35  mm.
Bluetooth. Tout a été pensé ! L’ensemble, compact et léger, per-
3. Dictator, mettra de créer une caméra autonome
afin de filmer comme tout pro qui se
l’interface utilisateur 4. ElphelVision respecte !
entre la caméra et Ce programme écrit en Java a pour but

l’utilisateur de permettre le contrôle d’une caméra


Elphel via une liaison Ethernet, grâce
Les caméras Elphel, comme la future à une interface graphique adaptée. À
AXIOM, sont dénuées d’interface uti- l’instar de Mediator, Elphelvision per-
lisateur. Ce projet vient donc très logi- mettra de configurer les paramètres
Fig. 5 : Projet compact de support,
quement combler ce vide. Dictator sera de la caméra avec la convivialité de avec caméra équipée d’un adaptateur
construit autour d’un micro-contrôleur l’interface tactile en plus. De plus, le d’objectif à 45° pour gagner en volume

Fig. 4-1 : Le logiciel Elphelvision permet de piloter la Fig. 4-2 : Un des menus de configuration des paramètres
caméra. Ici, tout est prêt pour lancer l’enregistrement ! de la caméra

w w w.linux-pratique.com  Linux Pratique n°77 | 11


actus Apertus, LE projet open source du septième art !

7. OpenCine, le fichier vidéo brut. Ce dernier sera ainsi


la chambre noire préservé. On pourra alors intervenir à tout
moment sur la configuration de l’un des
de vos vidéos filtres appliqués sans avoir à se soucier des
autres filtres. L’écran de pré-visualisation
Comme l’explique l’équipe d’Apertus,
pourra afficher les versions brute et filtrée
OpenCine est un projet libre unique en son
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

côte à côte afin de permettre de consta-


genre. En effet, ce logiciel est aux films Fig. 7 : L’interface de Chronomotion
ter de l’influence des filtres appliqués et de
ce que des logiciels tels que Darktable ou permet de piloter une monture
faciliter les différents réglages. comme la Skywatcher AZ Merlin.
RawTherapee sont à l’image fixe. Mais ce
n’est encore pour l’instant qu’un projet qui a Enfin, l’exportation des vidéos filtrées
besoin de la contribution de programmeurs
et de donateurs. Donc, si vous êtes program-
pourra ensuite se faire soit dans un for-
mat RAW non destructif tel que le DNG
9. Chronomotion
meur et que l’idée vous séduit, contactez (Digital Negative) ou le DPX (Digital Picture Sous ce nom se cache un logiciel écrit en
sans plus attendre l’équipe d’Apertus pour Exchange), ou d’autres formats, quant à eux Java qui permet de contrôler une mon-
leur proposer votre participation ! destructifs, comme le Quicktime Prores 444, ture motorisée de télescope pour la réa-
le AVI DNxHD ou encore le AVI MJPEG lisation de prises de vue en time-lapse.
Dans les grandes lignes, OpenCine vous
pour montage ultérieur avec le logiciel de Cette technique consiste à prendre des
permettra d’importer directement les
montage vidéo de votre choix. En effet, il photographies d’une scène à espaces
séquences vidéos depuis une caméra
ne vous sera malheureusement pas pos- réguliers dans le temps. Cette succes-
comme l’Elphel via votre réseau, mais aussi
sible de réaliser vos montages vidéos avec sion d’images fixes donne ensuite nais-
depuis vos disques locaux. La pré-visua-
OpenCine. Vous l’aurez compris, ce logiciel, sance à un film dont le contenu est joué
lisation en temps réel de vos vidéos sera
s’il voit effectivement le jour, ne devrait pas à vitesse accélérée. Du fait de sa stabi-
possible. OpenCine permettra d’accéder
usurper son surnom de chambre noire de lité et de sa précision, une telle monture
aux métadonnées des vidéos et de modifier
vidéos numériques et devrait devenir très est l’outil idéal pour déplacer l’appareil
certains d’entre eux. Mais le plus important
rapidement indispensable ! photographique grâce à sa motorisation
est qu’il permettra bien évidemment (c’est là
dotée d’une importante résolution per-
son principal intérêt) d’apporter des modifica-
tions sur l’aspect et la qualité de l’image des 8. DNG Converter mettant d’obtenir des vitesses relative-
ment lentes.
films en jouant sur des paramètres tels que
le niveau d’exposition, la balance des blancs, Petit outil sous forme de ligne de com- La version 0.3 du logiciel apporte la pos-
les courbes de tonalité et bien d’autres, en mandes, il permet de convertir au format sibilité de piloter les vitesses de dépla-
empruntant le mode de fonctionnement de DNG les séquences vidéos générées par cement grâce à des courbes de Bézier.
logiciels tels que Darktable. la caméra numérique. Ce format sous Résultat : des déplacements tout en
licence libre créé par la société Adobe, douceur ! Pour ajouter des points sur
Également à l’instar de ce dernier, les confi- véritable négatif numérique, est un dérivé les courbes, il suffit de double-cliquer
gurations de modifications pourront être du TIFF, et contrairement aux multiples sur celles-ci. On peut ensuite déplacer
sauvegardées comme modèle pour une versions propriétaires de formats RAW, les points dans le graphe avec la souris.
réutilisation ultérieure. Le fonctionnement celui-ci a pour ambition d’être adopté par Pour définir les coordonnées précises
sera identique à Darktable, dans le sens où tous les constructeurs et développeurs. d’un point de la courbe, il faudra les sai-
le fichier de configuration accompagnera À l’instar des formats RAW, le DNG est sir manuellement, ainsi que la durée
dénué de toute compression d’influence et l’angle de celui-ci et enfin,
et préserve donc toutes les valider en cliquant sur le bouton Edit.
informations contenues dans
l’image. Cela en fait un format
idéal pour le post-traitement ! Conclusion
Grâce à cette commande, L’équipe d’Apertus a de grands projets
vos séquences pourront être qui, s’ils réussissent à se concrétiser,
converties pour être traitées devraient donner accès au concept du
par votre logiciel de déve- libre au monde du cinéma professionnel.
loppement numérique pré- Après Blender, logiciel 100% libre, qui a
féré, comme par exemple donné naissance à plusieurs projets de
OpenCine quand celui-ci films d’animations open source, nous
verra le jour ! Sachez qu’une ne pouvons qu’espérer que nous puis-
inter face graphique pro - sions admirer dans un avenir proche des
grammée en Java est éga- créations cinématographiques tournées
lement disponible pour ceux avec des caméras numériques griffées
Fig. 6 : OpenCine est le projet de logiciel de qui seraient allergiques au AXIOM et développées sous OpenCine !
développement de vidéos numériques d’Apertus. terminal. Pour ma part, je l’espère réellement ! ▪

12 | Linux Pratique n°77  w w w.linux-pratique.com


Abonnez-vous !
Profitez de nos offres
d’abonnementactus
spéciales
APPLICATIF
disponibles au verso !

15 %
Économisez plus de

*
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

6
* Sur le prix de vente unitaire France Métropolitaine

Numéros de
Téléphonez
03 67 10 00
ou comman 0
au
2 Linux
Pratique
dez
par le We
b

32 €*
Les 3 bonnes raisons de vous abonner :
N
 e manquez plus aucun numéro.
R
 ecevez Linux Pratique dès sa parution chez vous ou dans
votre entreprise.
É
 conomisez 7,00 €/an !

4 façons de commander facilement :


au lieu de 39,00 €* en kiosque
p
 ar courrier postal en nous renvoyant le bon ci-dessous
Économie : 7,00 €*
p
 ar le Web, sur www.ed-diamond.com
p
 ar téléphone, entre 9h-12h et 14h-18h au 03 67 10 00 20 *OFFRE VALABLE UNIQUEMENT EN FRANCE MÉTROPOLITAINE
p
 ar fax au 03 67 10 00 21 Pour les tarifs hors France Métropolitaine, consultez notre site :
www.ed-diamond.com 
Bon d’abonnement à découper et à renvoyer à l’adresse ci-dessous Tournez svp pour découvrir toutes les offres d’abonnement >>

Voici mes coordonnées postales :


Société :
Nom :
Prénom :
Édité par Les éditions Diamond
Adresse :
Service des Abonnements
B.P. 20142 - 67603 Sélestat Cedex
Code Postal : Tél. : + 33 (0) 3 67 10 00 20
Ville : Fax : + 33 (0) 3 67 10 00 21
Pays :
Vos remarques :
Téléphone :
e-mail :
 Je souhaite recevoir les offres promotionnelles et newsletter des Éditions Diamond.
 Je souhaite recevoir les offres promotionnelles de nos partenaires.

En envoyant ce bon de commande, je reconnais avoir pris connaissance des conditions générales de vente des éditions Diamond Tournez svp pour découvrir
w internet
à l’adresse w w.linux-pratique.com  et reconnais que ces conditions de vente me sont opposables.
suivante : www.ed-diamond.com/cgv Linux Pratique n°77 | 13
toutes les offres d’abonnement
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

|14
APPLICATIF

Linux Pratique n°77 


w w w.linux-pratique.com
APPLICATIF

SlowmoVideo,
la vidéo à vitesse variable
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Franck Barnier

Vous avez tous vu des spectaculaires représentant une flèche transperçant


une pomme ou un ballon de baudruche rempli d’eau, au ralenti, ou encore
des scènes accélérées dans lesquelles des nuages circulent à grande
vitesse. Eh bien, c’est exactement ce que slowmoVideo permet de réaliser !

Sujet de thèse de Simon A. Eugster dans Puis compiler le logiciel : Enfin, il vous suffira de saisir SlowmoVideo
le cadre de ses études, slowmoVideo dans un terminal pour lancer le logiciel.
est un logiciel sous licence open source. $ cd SlowmoVideo
$ mkdir build
Au départ accessible uniquement aux
possesseurs d’ordinateurs équipés
$ cd build 2. Faisons les
$ cmake ..
d’une carte graphique Nvidia, la der-
$ make -j3 présentations !
nière version fonctionne également $ sudo make install
sur les systèmes dotés d’une carte Le moins que l’on puisse dire est que l’in-
graphique ATI. Si votre ordinateur est équipé d’une terface graphique de slowmoVideo n’est
carte Nvidia, vous devrez également pas très attrayante... À l’ouverture, on
compiler le contenu du répertoire V3D, obtient une fenêtre grise dans laquelle
1. Installer dédié au processeur graphique : se trouve un graphe sur sa partie infé-
rieure. C’est par le biais de celui-ci que
slowmoVideo $ cd V3D l’on pourra faire varier la vitesse de lecture
SlowmoVideo ( http://slowmovideo. $ mkdir build de la vidéo à l’aide de courbes. La partie
$ cd build supérieure de l’interface est scindée en
granjow.net/) est disponible pour dif-
$ cmake .. trois écrans dans lesquels sont affichées
férentes distributions ; pour l’installer
$ make -j3 la vidéo source, la vidéo de sortie issue de
sur Ubuntu et dérivée : $ sudo make install la courbe mise en place dans le graphe
$ sudo apt-get install SlowmoVideo
Si les dépôts logiciels de votre distri-
bution ne disposent pas de la dernière
version, il vous faudra télécharger le
paquet sur le site officiel, ou même les
sources si vous désirez le compiler sur
votre système. Dans ce dernier cas,
le mieux est de récupérer les sources
avec git. Il faut commencer par ins-
taller les dépendances comme suit :

$ sudo apt-get install build-essential


cmake git ffmpeg libavformat-dev
libavcodec-dev libswscale-dev libqt4-
dev freeglut3-dev libglew1.8-dev
libsdl1.2-dev libjpeg-dev libopencv-
video-dev libopencv-highgui-dev
Récupérer ensuite les sources :

$ git clone git://github.com/


SlowmoVideo/SlowmoVideo.git
Fig. 1 : L’interface de slowmoVideo est pour le moins... dépouillée

w w w.linux-pratique.com  Linux Pratique n°77 | 15


APPLICATIF SlowmoVideo, la vidéo à vitesse
variable

et enfin, les images de la pré-visualisation du résultat final.


Cette dernière n’étant pas dynamique, il vous faudra lancer
le rendu de l’image désirée avec la combinaison des touches
[Ctrl]+[Shift]+[R] afin d’en observer le résultat.

3. Nouveau projet
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Pour commencer à travailler, il faut tout d’abord créer un nouveau


projet via une interface dédiée. Il vous faut y indiquer le nom et
le chemin de sauvegarde du projet, ainsi que le ou les fichier(s)
source(s) à intégrer au projet (vidéo ou images). Ceci fait,
slowmoVideo charge la vidéo ou les images que vous aurez choi-
sies. Dans le cas d’une succession d’images fixes, slowmoVideo
crée les réductions de chacune d’elles, qui seront ensuite visibles
dans l’écran de la vidéo source. Si vous travaillez à partir d’un
film, en plus des réductions, le logiciel devra extraire chaque Fig. 3 : Un image de la vidéo avant et après traitement
image qui le compose. Cette phase devient rapidement inter-
minable, même pour des films ne dépassant pas 10 minutes ! du segment, uniquement accessibles lorsque vous utilisez des
courbes de Bézier. Pour transformer un segment de droite en
3.1. Mise en place des courbes courbe de Bézier, il vous suffit de placer le pointeur de la souris
entre les deux points du segment à modifier, puis de sélection-
de vitesse ner Bézier curve dans le menu déroulant de configuration du
L’axe vertical correspond à la vidéo originale lue à vitesse nor- segment courant. Par défaut, les nœuds des courbes de Bézier
male. La fin de la vidéo est représentée dans le graphe par sont matérialisés par un carré contenant un cercle. Ce cercle
un trait horizontal épais. L’axe horizontal correspond quant à correspond aux poignées de réglage de la courbe. Pour les
lui à la position temporelle dans la vidéo induite par la courbe agripper et les sortir du nœud, il faut maintenir la touche [Shift]
mise en place. La vidéo source étant représentée par l’axe des pressée et déplacer le pointeur de la souris tout en maintenant
ordonnées, chacune des images de celle-ci se trouve projetée le bouton de gauche cliqué.
sur l’axe des abscisses, en fonction de la pente de la courbe.
Le menu déroulant de configuration des segments permet éga-
Ainsi, un segment orienté à 45° donnera une vitesse de lec-
lement de fixer une vitesse précise de lecture de la vidéo de
ture de la vidéo de sortie égale à la vidéo d’entrée, une pente
sortie (x1, x0.5, 0, x-0.5 et x-1), ou d’en saisir une manuelle-
à 25° par rapport à l’axe des abscisses permettra quant à elle
ment. Il permet de plus d’appliquer un filtre de flou de mouve-
d’obtenir une vitesse divisée par 2. Pour connaître une position
ment (motion blur) à la section de la vidéo soumise au segment
temporelle spécifique, il vous suffit de déplacer le pointeur de
sélectionné, grâce à la fonction d’obturation (shutter functions).
la souris le long de l’axe souhaité.
Un projet pouvant être composé de plusieurs segments, slow-
La courbe peut être composée de différents segments de droite
moVideo permet de placer des étiquettes sur les nœuds de la
et/ou de courbes de Bézier. Pour mettre en place une courbe,
courbe, afin que vous puissiez y apporter des indications utiles.
rien n’est plus simple. Il vous suffit en effet de cliquer à l’endroit
où vous souhaitez que commence votre film et opérer ainsi Vous pouvez changer la position d’un nœud librement dans le
jusqu’à l’endroit où il doit se terminer. Il est bien sûr possible graphe ; il est cependant possible de brider le déplacement sur
de déplacer les points d’ancrages (appelés nœuds par slow- un seul axe, en maintenant la touche [Ctrl] pressée. Le nœud se
moVideo) des segments de la courbe à tout moment, afin de déplacera alors horizontalement ou verticalement en fonction
modifier la forme de cette dernière. du mouvement donné au pointeur de la souris. Vous utiliserez
également la touche [Ctrl] pour zoomer dans le graphe, mais
Le pointeur de la souris sur un nœud, un clic sur le bouton
cette fois-ci en combinaison avec la molette de votre souris.
droit ouvre un menu déroulant qui permet de supprimer le
point ou de ré-initialiser les poignées de réglage de la forme
3.2. Animez vos prises de vues !
L’une des utilisations intéressantes de slowmoVideo est
la réalisation de films grâce à la technique du time-lapse
à partir d’une succession d’images fixes. Vous avez tous
déjà pu voir des séquences vidéos dans lesquelles le
temps paraît être accéléré, comme par exemple des
nuages dans le ciel qui se meuvent rapidement en
prenant des formes irréelles. Prenons justement cet
exemple. Le mieux sera de disposer d’un pied stable sur
lequel sera fixé votre boîtier numérique, afin d’éviter tout
mouvement parasite. Ensuite, il vous suffira de prendre
vos photographies à intervalles réguliers, par exemple
Fig. 2 : La fenêtre « Shutter Function » permet d’appliquer un filtre de
flou de mouvement au rendu final

16 | Linux Pratique n°77  w w w.linux-pratique.com


APPLICATIF

toutes les 10 secondes. Cet intervalle [B] et [1], [B] et [2] ou [B] et [3]. Pour passer
est à définir au moment de la séance de d’un fichier à l’autre, vous devrez utiliser les
prises de vue, en fonction de la vitesse touches [Ctrl]+Flèche droite (en avant) et
du sujet (ici, les nuages), afin que les dif- [Ctrl]+Flèche gauche (en arrière). La sup-
férences entre chaque photographie ne pression d’une zone se fait à la souris, en
soient pas trop grandes. En effet, des dif- englobant la partie « malade ». Pour sauve-
Fig. 4 : SlowmoFlowEdit est l’outil
férences trop importantes peuvent rendre garder les modifications, il faudra presser
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

qui permet de faire disparaître les


impossible un rendu réaliste et ainsi pro- parasites présents sur vos films. deux fois la touche [S]. Ces manipulations
voquer des aberrations. sont à réaliser pour tous les fichiers de flux
Dans le logiciel, chacune des photogra- permettre une analyse précise du compor- du projet. Autant dire que dans certains cas,
phies sera une image clé qu’il utilisera tement du matériel testé. ce travail peu devenir rapidement fastidieux.
donc pour créer les images intermédiaires Une future version de slowmoVideo nous
SlowmoVideo permet également d’ac- simplifiera peut-être ce travail...
par interpolation, grâce à la technique du
célérer la lecture de films enregistrés à
flux optique. Cette technique permet de
détecter le déplacement et la vitesse des
25 images par seconde. Prenons le cas 3.5. Lancez le rendu !
d’un film réalisé en voiture, la caméra
pixels dans une succession d’images et Une fois votre courbe de vitesse parfaite-
posée sur le tableau de bord. Il va de
d’en déduire les images intermédiaires. ment paramétrée, vous pourrez enfin lancer
soi que le conducteur a évidemment
Une fois vos prises de vues chargées respecté les limitations de vitesse ! Il le rendu de la vidéo de sortie. L’interface de
dans votre projet, il faut déterminer la vous sera ensuite facile de faire varier configuration est composée de 4 rubriques,
durée du film que vous souhaitez créer. la vitesse de lecture à l’aide des courbes qui vous permettront de lancer un rendu soit
Pour une série de 20 images prises toutes que vous mettrez en place. Nous allons du projet complet, soit d’une portion (entre
les 10 secondes, en conservant l’inter- par exemple, grâce à slowmoVideo, être étiquettes ou personnalisée), de définir
valle, vous obtenez une durée de lec- hors la loi et rouler à des vitesses vertigi- la taille du rendu (petite ou originale), le
ture de 200 secondes. Chargées dans le neuses sur une route limitée à 90km/h ! nombre d’images par seconde, ainsi que le
logiciel, les images sont lues sans inter- Et pour donner une réelle impression de mode d’interpolation à utiliser. Vous pourrez
ruption à 24 images par seconde. La vitesse, on appliquera un filtre de flou de également choisir la méthode d’application
durée de la vidéo d’entrée est alors de mouvement (motion blur). du flou de mouvement (par empilage ou
0,833 seconde ! Suivant la vitesse de lec- par convolution). L’onglet Optical Flow per-
Une fois le film chargé, la courbe en place
ture que vous recherchez, vous pouvez met de régler la variable Lambda de l’algo-
devra entraîner une lecture 2 fois plus
tenter des rendus pour des vidéos de 2, 3, rithme de flux optique utilisé par le GPU.
rapide du film. La courbe sera donc incli-
6 ou même 10 secondes, sachant que les La valeur par défaut donne d’assez bons
née de 70°. Dans l’interface de la fonc-
films ainsi calculés à partir de 20 images résultats, mais elle pourra être modifiée si
tion d’obturation, il faut alors ajouter un
seront finalement respectivement compo- nécessaire. Enfin, il vous faudra notamment
filtre au segment courant via le bouton +.
sés de 48, 72, 144 et 240 images. choisir si votre projet sera rendu sous forme
Enfin, dans la zone de saisie, on rempla-
Pour vous convaincre des résultats qui cera la fonction par défaut par celle qui d’une vidéo ou d’une série d’images.
peuvent être obtenus avec cette tech- donnera le résultat attendu. Dans notre
nique de prise de vue, je vous conseille exemple, la fonction sera la suivante :
de rendre une petite visite à la section
« vidéos » de l’excellent site dynamic-
return 2 * dy. Conclusion
perception.com. Vous y découvrirez de 3.4. Éliminez les artefacts Cet excellent logiciel mériterait tout de
superbes vidéos réalisées en time-lapse. même une interface plus conviviale. Celle
Si vous constatez des artefacts sur les
de la fonction d’obturation est un exemple
rendus de vos films, vous aurez besoin
3.3. Film à vitesse variable de slowmoFlowEdit, un petit utilitaire
de ce qui doit évoluer pour être à la portée
La seconde utilisation de slowmoVideo qui accompagne slowmoVideo et qui per- de tous les utilisateurs. Malgré cela, slow-
concerne la lecture de films à des vitesses met de les supprimer manuellement. Pour moVideo est relativement facile d’utilisation
inférieures ou supérieures à celle d’ori- cela, il faut charger les fichiers générés par et permet d’obtenir de superbes résultats.
gine. C’est le cas, par exemple, des films slowmoVideo lors du rendu d’un film, que Les films réalisés en time-lapse ont un effet
tournés avec des caméras très haute vous trouverez dans le répertoire cache bluffant. Il faudra cependant vous armer
vitesse, qui enregistrent plusieurs cen- de votre projet. Les artefacts produits lors de patience si vous travaillez à partir de
taines d’images à la seconde. Elles sont du rendu sont matérialisés par des zones films vidéos avant de pouvoir admirer vos
parfaitement adaptées pour visualiser de couleur sombre, comme le montre la créations. Dans ce cas, les temps de rendu
des événements rapides et non visibles à figure 4. Ici encore, l’interface est on ne sont effectivement très longs, même sur
l’œil nu, comme lors de crash tests auto- peut plus dépouillée, puisqu’elle ne contient des ordinateurs de dernière génération. Le
mobiles ou des essais spécifiques dans que l’écran de visualisation des flux. Afin mieux sera de tester au préalable un rendu
l’aéronautique. Il est alors facile avec slow- de faire ressortir les zones parasitées, trois de faible résolution, afin de pouvoir obser-
moVideo de convertir le film pour qu’il soit niveaux de contraste sont accessibles, en ver le résultat en dynamique et éventuel-
ensuite lu à 25 images par seconde et pressant successivement sur les touches lement d’affiner certains paramètres. ▪

w w w.linux-pratique.com  Linux Pratique n°77 | 17


APPLICATIF

Ekiga 4 :
la VoIP en toute
simplicité !
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Ekiga fait sans aucun doute partie des logiciels libres les plus célèbres. En termes
de VoIP et de visioconférence, c’est certainement la solution qui vient de suite à
l’esprit (bon, peut-être juste derrière Skype en fait, qui lui n’est pas libre ;-)). Et pour
cause, il s’agit d’un logiciel qui a largement fait ses preuves en quelques années, et
qui ne cesse de gagner en performance...

1. Pourquoi messagerie instantanée. Les communi-


cations avec téléphones fixes et mobiles
meilleure intégration au sein de l’en-
vironnement GNOME 3 (des notifi-
Ekiga ? sont également possibles, moyennant cations améliorées notamment), une
la souscription à ce service spécifique nouvelle page pour l’assistant de créa-
1.1. Multiplateforme et auprès d’un fournisseur SIP ; le service tion de comptes présentant les diffé-
Diamondcard.us, intégré à Ekiga, en est rents types de comptes, un répondeur
interopérable un exemple, mais l’utilisateur demeure automatique, la détection automa-
On peut dire qu’Ekiga est une valeur cependant tout à fait libre de choisir le tique des utilisateurs se trouvant sur
sûre en tant que client de VoIP, ce logi- fournisseur SIP qui lui convient... le réseau local, etc.
ciel existe en effet depuis 10 ans ! La
Le logiciel intègre bien entendu les Cette version 4.0 intègre par ailleurs
version 1.0 a été publiée en mars 2004, principales fonctions de téléphonie : le support de quelques codecs audios
sous le nom de GnomeMeeting (l’appli- mise en attente, transfert et redirec- supplémentaires : SILK (utilisé par
cation a été rebaptisée Ekiga en 2006, tion d’appel, etc. Ekiga gère aussi Skype), G.722.1 et G.722.2 ; la prise
à l’occasion de la sortie de la version l’historique des appels et fournit des en charge du codec vidéo H.264 a
2.0). Ce fut la première application libre statistiques sur le trafic réseau qu’il quant à elle été améliorée. Le logi-
à supporter les protocoles H.323 et SIP, engendre. ciel inclut également un mécanisme
ce qui la rend compatible et interopé-
Ekiga propose également un son de réponse automatique à un appel.
rable avec les autres logiciels et appa-
haute définition et une très bonne qua- Enfin, beaucoup de dépendances se
reils basés sur ces mêmes protocoles.
lité vidéo, similaire au DVD. 13 codecs trouvent désormais sous forme de
Ekiga est ainsi compatible avec de nom- audio sont supportés, parmi lesquels plugins (evolution-data-server, avahi,
breux programmes sous d’autres sys- G.711, Speex et G.722 (son HD). Côté ldap...) et le logiciel intègre un nou-
tèmes que Linux, par exemple : NetMeeting vidéo, 6 codecs sont supportés, dont veau plugin PulseAudio.
(H323) et Windows Messenger (SIP) Theora, MPEG4 et H.264. À noter La version 4.0.1 sortie au mois de
chez Windows, Telephone (SIP) ou également la possibilité de passer en
février vient quant à elle corriger plu-
Xmeeting (SIP & H323) chez Mac OS, mode plein écran et d’annuler l’écho
sieurs bugs qui engendraient des
Sipdroid ou le client SIP natif d’Android, sonore.
crashs et des freezes de l’application.
ou encore QuteCom (SIP) - anciennement
À souligner enfin qu’Ekiga permet l’uti-
Wengophone – qui lui, est multiplateforme.
lisation d’un carnet d’adresses distant,
Ekiga n’est en revanche pas compatible depuis un répertoire LDAP. 2. Installation
avec Skype et Windows Live Messenger Fort de son succès, Ekiga fut le client
La 4.0, publiée fin novembre 2012
(MSN), qui utilisent tous deux des proto- et baptisée « the Victory Release » de VoIP par défaut de la distribution
coles propriétaires et fermés. fut présentée comme une version Ubuntu jusqu’en octobre 2009, date à
majeure du projet ; elle a apporté en laquelle il fut remplacé par Empathy
1.2. Ses fonctionnalités effet pas mal de nouvelles fonction- dans Karmic Koala  ; il se trouve
Doté d’une interface graphique très nalités : un temps de démarrage plus aujourd’hui dans les dépôts universe
simple à utiliser, Ekiga permet de passer rapide, une toute nouvelle interface d’Ubuntu, mais aussi dans les dépôts
des appels audio/vidéos gratuitement, de utilisateur (les icônes utilisées sont principaux de la plupart des distribu-
PC à PC. Il intègre également un client de celles du projet GNOME), une bien tions Linux.

18 | Linux Pratique n°77  w w w.linux-pratique.com


Lisez les actus
offline sur votre
La version la plus récente, numérotée 4.0.1 (publiée le 20
février), est disponible pour Windows ; les Linuxiens devront
quant à eux compiler les sources du projet ; toutefois, les

Kindle !
utilisateurs de Debian Sid (unstable) pourront bénéficier du
dépôt des snapshots en ajoutant la ligne suivante à leur
sources.list :
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

deb http://snapshots.ekiga.net/snapshots/debian/ ./
Et ainsi profiter de la toute dernière version d’Ekiga via :

# aptitude update
# aptitude install ekiga-snapshot
Les utilisateurs de Fedora 18 trouveront Ekiga 4.0 dans le
dépôt RPM Fusion. Ekiga est par ailleurs packagé en ver-
sion ultérieure pour plusieurs distributions Linux (Arch Linux,
Ubuntu, Debian, Gentoo, ...), mais est également disponible
Tinderizer (http://tinderizer.com/) est un service très pra-
pour les systèmes NetBSD, OpenBSD et OpenSolaris.
tique qui offre la possibilité de lire offline les articles de
votre choix, sélectionnés au gré de votre surf sur le Web
3. Configuration et première et envoyés d’un simple clic sur votre Kindle. Ce service est
basé sur Readability (http://www.readability.com/), une
utilisation application qui permet de formater n’importe quel article
du Web en article correctement mis en forme, lisible dans
3.1 J’ai besoin d’un numéro SIP ! la foulée ou ultérieurement sur votre tablette, smartphone...
Pour utiliser Ekiga, il est nécessaire de disposer d’un numéro Tinderizer exploite en fait le service de documents per-
SIP. Ce dernier ressemble à une adresse email, par exemple sonnels intégré à votre Kindle ; pour l’utiliser, il suffit
redaclp@ekiga.net, composée de votre nom d’utilisateur et d’ajouter un bookmarklet (du JavaScript) dans la barre de
du nom du fournisseur du service. Voici, à titre d’exemple, favoris de votre navigateur Web. La procédure complète
quelques fournisseurs auxquels vous pouvez vous adresser est très bien expliquée sur le site du projet : vous devez
pour obtenir une adresse SIP gratuitement : commencer par vous connecter à votre compte Amazon
• Ekiga.net (https://www.ekiga.net/?page=register) (Fig. 1) Kindle, vous rendre dans la section « Paramètres de
documents personnels » et inscrire l’adresse kindle@
 IP2SIP (https://mdns.sipthor.net/register_sip_account.
• S
darkhelmetlive.com à la liste des adresses e-mail
phtml)
approuvées pour l’envoi de documents personnels.
• ippi.fr (offre « illimité 5 »)
À savoir que certains FAI proposent gratuitement un compte
SIP intégré à leur abonnement (à activer dans l’interface
d’administration de votre *box).

Ceci fait, vous devez saisir l’adresse e-mail de votre Kindle


dans la zone prévue à cet effet sur le site de Tinderizer
Figure 1 (vous trouverez cette information dans la section « Gérer
vos appareils » de votre compte Kindle ou parmi les
options de personnalisation dans le menu « Paramètres »
de votre liseuse). Puis, on finit par un glisser-déposer du
bookmarklet dans la barre de favoris ; Tinderizer est com-
patible avec Google Chrome, Firefox 3.5+, Safari 4+ et IE8+.
Et c’est fini ! Vous pouvez à présent lire les articles qui vous
intéressent où et quand bon vous semble.
Note pour les utilisateurs de Kindle 3G : les frais d’uti-
lisation du service de documents personnels via la
connexion Whispernet sont basés sur la taille du fichier
soumis (0.10 EUR par mégaoctet). ▪

w w w.linux-pratique.com  Linux Pratique n°77 | 19


APPLICATIF Ekiga 4 : la VoIP en toute simplicité !

3.2 L’assistant de via le client Ekiga. Si vous n’êtes pas


configuration intéressé, cochez la case, puis passez
à l’étape suivante.
Au tout premier lancement, un assis-
tant de configuration vous invite à La conf iguration se termine par
créer votre compte utilisateur. Il vous la sélection du type de connexion
faudra tout d’abord saisir un nom, qui (modem, ADSL, LAN, etc.), le choix
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

sera utilisé lors de vos connexions à des périphériques audio et du péri-


d’autres applications de VoIP et de phérique d’entrée vidéo (qui sera uti-
vidéoconférence. lisé pour enregistrer la vidéo au cours
des appels).
L’étape suivante concerne votre Figure 4
compte Ekiga.net. Si vous ne l’avez À savoir que vous pourrez à tout
pas déjà fait, c’est donc le moment de moment modifier les informations
créer un compte sur http://www.ekiga. liées au compte créé, ou bien ajouter
net (en cliquant sur le lien prévu à cet de nouveaux comptes SIP, H.323 ou
effet). Si vous souhaitez passer par un PC-To-Phone, via le menu Édition >
(sip:520@ekiga.net) ; vous serez de
autre service SIP de votre choix, vous Comptes (Fig. 3).
suite rappelé par le contact Test écho.
pouvez passer cette étape en cochant
la case prévue à cet effet. Notons Si vous connaissez l’adresse SIP de
au passage qu’il est tout à fait pos- votre contact, saisissez-la dans le
sible de créer autant champ prévu à cet effet puis cliquez
de comptes SIP ou sur le bouton de connexion pour initier
H.323 que vous le l’appel. Vous pouvez également effec-
souhaitez. tuer une recherche dans le carnet
Figure 3 d’adresses ou dans l’annuaire Ekiga.
Si vous optez pour
net. Les contacts peuvent être orga-
le service Ekiga.net,
nisés en différents groupes (famille,
après avoir rensei-
amis, etc.).
gné quelques infor- Les préférences du logiciel (menu
mations personnelles, vous Édition > Préférences) vous per- Notez que le logiciel intègre égale-
disposerez d’une adresse SIP mettront quant à elle d’activer cer- ment une fonction de tchat (menu
du type sip:user@ekiga.net, taines options d’appel (redirection, Discuter > Contacts > Message).
d’un nom d’utilisateur et d’un réponse automatique...), de régler Enfin, vous ne manquerez pas de
mot de passe. les évènements sonores, d’effectuer remarquer que dans la liste des
le paramétrage réseau, ou encore contacts se trouve un item Salle
L’assistant vous propose
de sélectionner les périphériques et de conférence . C’est l’un des ser-
ensuite de créer un compte
codecs audio et vidéos adéquats. vices fournis par Ekiga.net  : il col-
« PC-To-Phone  » (payant),
grâce auquel vous pourrez lecte l’ensemble des flux audio et les
passer des appels vers des
3.3 Vos premiers mixe avant de les envoyer aux diffé-
téléphones fixes et mobiles appels rents participants. Pour entrer dans
Ekiga arbore une interface moderne, la salle publique, il faut composer :
simple à prendre en main ; elle peut sip:501@ekiga.net.
afficher la liste des contacts favoris et Il est également possible de mettre en
le statut de chacun (Fig. 4). Une série place sa propre salle de conférence,
de boutons permet d’afficher au choix publique ou privée. Pour cela, on com-
la liste des contacts, le numéroteur ou pose l’adresse sip:501xxxx@ekiga.net,
l’historique des appels. Dans le menu où x représente un chiffre entre 0 et 9.
déroulant en haut de la fenêtre vous L’accès à la salle de conférence peut
pourrez sélectionner un message de être protégé par un PIN.
disponibilité. Si vous vous interrogez sur la compa-
Une fois votre client SIP c onf i - tibilité d’Ekiga avec votre matériel et
guré, appelez le contact Test écho les logiciels qu’utilisent vos correspon-
(sip:500@ekiga.net) qui se trouve dants, n’hésitez pas à jeter un œil au
dans votre liste de contacts et qui est wiki du projet (http://wiki.ekiga.org),
Figure 2 destiné à tester le réseau SIP, le son qui s’avère particulièrement riche en
et la vidéo. De la même manière, vous informations et qui explicite au pas-
pouvez tester si vous êtes joignable de sage les concepts et notions liés à la
l’extérieur via le contact Test de rappel VoIP. ▪

20 | Linux Pratique n°77  w w w.linux-pratique.com


APPLICATIF
fiche
Récupérez facilement des vidéos pratique

en ligne grâce à Movgrab !


Comme l’explique son développeur, Colum Paget, la plupart des sites de contenus
vidéos nécessitent l’emploi d’un navigateur web « performant », exécutant Flash.
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Movgrab a ainsi été créé pour télécharger aisément des vidéos sur ces plateformes,
dans le format de votre choix, pour les consulter ensuite avec votre logiciel préféré
ou pour automatiser la récupération de vidéos et l’intégrer à vos scripts.

1. Installation 3. Récupérer une vidéo 5. Sauvegarde et streaming


En outre, Movgrab ( https://sites. Puis, pour récupérer une vidéo dans Si vous souhaitez sauvegarder la vidéo sous un
google.com/site/columscode/home/ le réper toire courant, on saisira autre nom, vous pouvez employer l’option -o :
movgrab), écrit en C, ne nécessite simplement :
$ movgrab -o Météorites_Oural.mp4 ‘http://www.
aucune dépendance et s’utilise très france24.com/fr/20130215-scenes-panique-russie-apres-
simplement. Pour l’installer, on com- $ movgrab ‘http://www.youtube.com/ pluie-meteorites-espace-oural’
pilera les sources du programme à watch?v=wTR7Tx9Gmcc ‘
L’option -r vous permettra quant à elle de
l’aide des commandes habituelles : Notez l’utilisation des guillemets reprendre un téléchargement qui aurait été
./configure, make, sudo make simples, qui permet d’éviter toute interrompu.
install (gcc est requis pour la com- erreur d’interprétation shell si l’URL
pilation). Les utilisateurs d’Ubuntu ont On peut également envoyer directement la
comporte le caractère &. Certains sites
également à leur disposition le PPA : vidéo sur son lecteur favori (ici MPlayer) comme
proposent des vidéos sous plusieurs
ppa:nilarimogard/webupd8. ceci :
formats ; la commande vous retourne
alors la liste des formats disponibles et $ movgrab -f flv-h264:640x360 -o - ‘http://www.youtube.
Note Movgrab tente de télécharger le format com/watch?v=z7D3MHClJAg’ | mplayer -
Il nous a été impossible de com- FLV en priorité. On pourra toutefois préférer l’option -s, qui
piler la toute dernière version active le mode streaming ; l’option -sc permet
1.1.15 sur notre Debian Wheezy, même de conserver la vidéo après lecture.
nous avons donc opté pour la ver- 4. Choix du format
sion précédente, que nous avons
pu tester sur des architectures
Si la liste des formats n’apparaît pas, 6. Et aussi...
vous pouvez utiliser l’option -T pour y Dans la documentation, le développeur
32 bits et 64 bits. accéder (il s’agit du mode test). Puis, nous signale par ailleurs que les webradios
pour spécifier le format souhaité, on (au format M3U, PLS ou ASX) peuvent être
utilisera l’option -f comme suit : écoutées de la même manière :
2. Lister les sites $ movgrab -f flv-h264:854x480 ‘http://www. $ movgrab -o - ‘http://players.creacast.com/creacast/
compatibles youtube.com/watch?v=wTR7Tx9Gmcc ‘
Formats available for this
topmusic/playlist.m3u’ | mplayer -
Movgrab permet de récupérer des Notons pour finir, l’existence de l’option -b, qui
Movie:webm:1280x720 (55.0M), mp4:1280x720
vidéos issues de nombreux sites (54.0M), webm:854x480 (26.4M), flv- permet d’exécuter movgrab en arrière-plan et
(YouTube, Dailymotion, Vimeo, h264:854x480 (22.2M), webm:640x360 (19.2M), ainsi récupérer la main dans la console. Puis,
France24, National  Geographic, flv-h264:640x360 (15.4M), mp4:480x360 l’option -p, qui permet de spécifier l’adresse
etc.), plus d’une trentaine au total (15.0M), flv:400x240 (10.0M), 3gp:400x240 d’un éventuel proxy :
avec la version que nous avons tes- (6.6M), 3gp:176x144 (2.4M),
Selected format item:flv-h264:854x480 $ movgrab -p http://guest:password@myproxy.com:8080
tée (1.1.14). Pour connaître la liste
Getting: DEPECHE MODE - HEAVEN (OFFICIA... Dans les sources du projet, m ovgrab-
des plateformes vidéos actuellement
Size: 22.2M Format: flv-h264:854x480 1.1.xx/Docs/, vous trouverez la procédure
compatibles, saisissez : Progress: ... à suivre pour ajouter de nouveaux sites de
$ movgrab -test-sites Si le programme ne reconnaît pas contenus compatibles.
Checking youtube okay l’URL, vous pouvez tenter d’utiliser À savoir qu’il existe quelques autres projets
Checking metacafe BROKEN l’option -t, suivie du type d’URL en du même genre et en développement tout
Checking dailymotion okay question ; les types disponibles peu- aussi actif, comme clive, cclive, ou encore
Checking break BROKEN vent être visualisés via la commande youtube-dl (qui requiert Python) à utiliser
Checking ehow okay movgrab -? (qui permet d’ailleurs éventuellement avec ripyt. Si Movgrab ne
Checking vimeo okay
de prendre connaissance de l’en- vous a pas convaincu, je vous invite à tester
[...]
semble des options disponibles). ces quelques alternatives... ▪

w w w.linux-pratique.com  Linux Pratique n°77 | 21


en Couverture

Utilisez vos applications Windows


même sous Linux avec Wine 1.5 !
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

C’est l’une des premières problématiques qui se


présentent lorsqu’on décide d’abandonner son système
d’exploitation propriétaire au profit de Linux. « Comment
continuer à utiliser les logiciels que j’appréciais tant ? ».
Rassurez-vous, la plupart du temps, il existe des
équivalents libres. Mais quand ce n’est pas le cas... reste
à se tourner vers Wine !

derniers jeux vidéo à la mode (WoW,


StarCraf t I et II, Counter- Strike,
2. Actualité du
Command & Conquer, etc.). projet
Pour savoir si le logiciel que vous Une version de développement 1.5.25
convoitez peut être utilisé avec Wine, de Wine a été publiée le 1er mars.
vous pouvez jeter un œil sur la base Parmi les nouveautés appor tées
de données du projet : http://appdb. dans cette nouvelle version : la prise
1. Wine, un winehq.org/ (lien Browse Apps). Pour en charge correcte du curseur dans le

émulateur pas chaque application dans la base, vous


trouverez le compte-rendu d’une série
pilote Mac, des correctifs pour la prise
en charge du texte écrit de droite à
comme les autres de tests (ce qui marche, ce qui ne gauche dans RichEdit, et la version
initiale d’une police Wingdings. Elle
marche pas), effectués sur différents
Wine est l’acronyme récursif de Wine systèmes. intègre également diverses correc-
Is Not an Emulator. En effet, Wine tions de bogues. Sources et paquets
n’est pas vraiment un émulateur, car il Le code source de Wine est écrit pour
pré-compilés sont à télécharger sur
ne simule pas réellement le fonction- moitié par des volontaires, le reste
http://www.winehq.org/download/.
nement d’un système d’exploitation étant sponsorisé par des intérêts com-
comme en sont capables QEMU ou merciaux, notamment CodeWeavers,
VirtualBox. En réalité, il est une implé- qui propose une version payante 3. Installation
mentation libre de l’API de Microsoft de Wine, baptisée CrossOver (voir
Comme vous pouvez le constater sur
Windows, bâtie sur X-Window et en fin d’article), incluant un support
la page dédiée, Wine est packagé
Unix, et permet ainsi d’utiliser sous technique.
pour la plupart des distributions Linux
Linux certains programmes initiale- et aussi pour FreeBSD, PC-BSD,
ment conçus pour fonctionner sous A
 ttention aux licences Solaris et OpenSolaris. Toutefois, il
Windows. Wine est donc « un inter- d’utilisation ! n’est peut-être pas encore disponible
préteur » Windows : il interprète les dans sa version la plus récente dans
instructions requises par les applica- Wine n’a pas besoin d’une image les dépôts logiciels. Référez-vous à
tions Windows pour être exécutées de Windows pour fonctionner, car la documentation propre à votre dis-
sous Linux. il installe ses propres composants tribution pour connaître la marche à
et crée un « faux environnement suivre afin d’installer la version de
Nous précisons «  certains  » pro- Windows » dans lequel vous ins- développement.
grammes, car en effet, tous les pro- tallerez et exécuterez les logiciels
grammes conçus pour Windows ne de votre choix. Toutefois, vous Les utilisateurs d’Ubuntu pourront
fonctionnent pas forcément (ou pas devez posséder la licence d’utili- ajouter le PPA suivant pour bénéficier
correctement) sous Wine ! Toutefois, sation du logiciel propriétaire que de la version la plus récente :
il supporte aujourd’hui un bel éven- vous envisagez d’exécuter !
tail d’applications, dont la plupart des $ sudo add-apt-repository ppa:ubuntu-wine/ppa

22 | Linux Pratique n°77  w w w.linux-pratique.com


en Couverture

Le répertoire ~/.wine/drive_c/ corres-


pond, vous l’aurez compris, au disque C:\
de Windows. Il contient ainsi une arbores-
cence similaire à celle que l’on trouve sur
un système Windows, notamment un réper-
toire Program Files/ où seront installés
l’ensemble des exécutables. Vous pouvez
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

d’ores et déjà y trouver un navigateur Internet


Explorer, que vous pouvez lancer via :
Fig. 1 : Le gestionnaire de fichiers intégré à Wine
~/.wine/drive_c/Program Files/Internet
Dans le cadre de cet article, nous avons effectué nos tests sur Debian testing. La Explorer$ wine iexplorer.exe
page http://dev.carbon-project.org/debian/wine-unstable/ contient les paquets
Le répertoire drive_c/ comporte égale-
DEB de la dernière version du projet (architectures amd64 et i386). Il faut télé-
ment un répertoire users/ (dans lequel vous
charger l’ensemble des paquets puis les installer :
trouverez un répertoire Public/ et un réper-
$ sudo dpkg -i *.deb toire du nom de l’utilisateur du système), ainsi
qu’un répertoire windows/, qui comporte
Ceci fait, vous disposerez de deux nouveaux items dans le menu des applica- lui aussi quelques exécutables (Notepad,
tions de votre bureau, à savoir Wine configuration et Wine Uninstaller. Le premier Explorer, Regedit...).
vous permettra de configurer votre émulateur selon vos besoins et préférences –
nous y reviendrons plus loin - et le second permet de désinstaller les applications
Windows que vous ne souhaitez plus utiliser. 4. Exécuter des
Pour vérifier votre installation, vous pouvez lancer la commande winefile qui applications avec
ouvre l’explorateur de fichiers intégré dans Wine (Fig. 1).
Wine
3.1 Installation de Gecko Rien de plus facile, comme vous avez pu
Wine implémente sa propre version d’Internet Explorer, basée sur une version adap- le constater précédemment : on utilise la
tée du moteur de rendu Mozilla Gecko (http://wiki.winehq.org/Gecko). Ainsi, les commande wine suivie du chemin vers
applications qui permettent l’affichage de pages web ont besoin de cet élément pour l’exécutable, de cette façon :
fonctionner correctement ; il est donc nécessaire d’installer le fichier wine_gecko-
1.9-x86.msi et de le placer dans le répertoire /usr/share/wine/gecko/. $ wine c:\\chemin\\foo.exe

Un script d’installation peut être récupéré à l’adresse : http://winezeug.google- ou


code.com/svn/trunk/install-addons.sh. Rendez ce script exécutable, puis :
$ wine ~/.wine/drive_c/myapps/foo.exe
$ ./install-addons.sh
Par défaut, la commande w i n e
+ test -d /usr/local/share/wine
+ WINE_SHARE_PREFIX=/usr/share/wine recherche l’exécutable à l’emplacement
+ myarch=x86 c:\\windows\\system32\\.
+ install_gecko gecko-1.9 Toutefois, la plupart des applications instal-
+ GECKO_VERSION=1.9 lées créent une nouvelle entrée dans votre
+ GECKO_SHA1SUM=d2553224848a926eacfa8685662ff1d7e8be2428 menu d’applications habituel, vous pouvez
+ GECKO_SUFFIX=.msi donc les lancer d’un simple clic.
+ test ! -f /usr/share/wine/gecko/wine_gecko-1.9-x86.msi
+ rm -f wine_gecko-1.9-x86.msi
+ wget http://downloads.sourceforge.net/wine/wine_gecko-1.9-x86.msi Wine et affichage composite
--2013-03-08 15:49:19-- http://downloads.sourceforge.net/wine/wine_gecko-1.9-x86.msi
[...] Si vous utilisez un gestionnaire d’affi-
chage composite (comme Compiz par
Vous pouvez également procéder de la façon suivante en récupérant et en dépla-
exemple), il se peut que vous observiez
çant le script par vous-même :
un ralentissement, voire un dysfonction-
$ wget http://downloads.sourceforge.net/wine/wine_gecko-1.9-x86.msi nement des applications exécutées avec
$ sudo mkdir -p /usr/share/wine/gecko Wine. En effet, l’utilisation d’un gestion-
$ sudo mv wine_gecko-1.9-x86.msi /usr/share/wine/gecko/ naire d’affichage composite tend à figer
les performances d’OpenGL, voire de
l’inhiber complètement. C’est pourquoi il
3.2 Organisation des fichiers est recommandé de le désactiver avant
Notez que le répertoire .wine a été créé automatiquement dans votre répertoire d’utiliser Wine.
personnel lors de l’installation.

w w w.linux-pratique.com  Linux Pratique n°77 | 23


Utilisez vos applications Windows même sous Linux avec Wine 1.5 !
en Couverture

5. Configurer Wine Dans l’onglet Intégration avec le


bureau vous pourrez personnaliser
wine m enubuilder.e xe dans le
champ « Nouveau remplacement pour »
L’interface de configuration de Wine l’apparence de Wine, en chargeant (ce programme n’est pas proposé dans
(Fig.  2) peut être lancée via votre un thème d’affichage Windows que la liste déroulante). Cliquez ensuite sur
menu graphique d’applications ou vous aurez récupéré au préalable. Ajouter ; notre fichier apparaît mainte-
avec la commande : Si vous souhaitez utiliser une police nant dans la zone « Remplacements
TrueType en particulier, il suffira de existants ». Sélectionnez-le puis cliquez
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

$ winecfg copier le fichier .ttf correspondant dans sur Modifier : choisissez l’option désac-
.wine/drive_c/windows/Fonts. tivé comme ordre de chargement, puis
faites OK.
Parmi les paramètres d’affichage,
notez que l’option Émuler un bureau De cette façon, Wine ne modifiera pas
Figure 2 les associations de type de fichiers sur
virtuel peut permettre de résoudre
certains problèmes d’affichage ; vous le système hôte et n’ajoutera pas de
devrez spécifier la résolution d’écran nouvelles entrées dans les menus, ni
de votre choix. Dans ce cas, chaque de raccourcis sur le bureau. Notez que
application Wine lancée s’ouvrira dans la désactivation de winemenubuilder
un bureau virtuel indépendant. générera des messages d’erreur au lan-
cement des applications (vous signalant
Dans l’onglet Audio , vous pouvez
que le fichier est introuvable), mais cela
visualiser le pilote qui a été sélec-
ne gênera pas leur bonne exécution.
tionné et vous pouvez définir les dif-
férents périphériques d’entrée/sortie.
Sachez que Wine peut interagir direc-
tement avec le système d’impression
6. Et pour simplifier
Pour commencer, vous pourrez y CUPS du système hôte (si ce dernier votre utilisation de
définir la version de Windows que dispose bien d’une imprimante définie
doit imiter Wine pour chaque appli- par défaut). Wine...
cation (onglet Applications) ; cette
À noter par ailleurs que la commande
version 1.5.25 inclut l’émulation de
wine control permet de lancer le
6.1 Winetricks
Windows 7 et versions ultérieures. Lorsque l’installation d’une application
panneau de configuration de Wine,
L’onglet Bibliothèques vous permet- sous Wine échoue, c’est la plupart du
qui permet d’accéder notamment à
tra de forcer l’utilisation des DLL (les temps parce qu’une DLL (Dynamic
l’utilitaire d’ajout et suppression de
bibliothèques partagées de Windows) Link Library) ou une police manque.
programmes ainsi qu’aux paramètres
de Wine ou de celles que vous aurez C’est pourquoi il est conseillé d’utili-
Internet.
vous-même ajoutées parallèlement. ser Winetricks (https://code.google.
N’hésitez pas à parcourir la FAQ sur le com/p/winetricks/ ), un script conçu
L’onglet Lecteurs permet d’assigner les
site du projet (http://wiki.winehq.org/ pour télécharger automatiquement
lecteurs selon la terminologie Windows
(Fig. 3) ; un clic sur Détection automa-
FAQ), qui donne pas mal de conseils les DLL ou polices adéquates liées à
et d’éléments de configuration en l’application qui vous intéresse, le tout
tique permet de visualiser notamment
à quelles lettres sont assignés votre fonction des problèmes rencontrés. issu de sources sûres.
répertoire personnel, certains points de
montage et la racine du système. 5.1 Mais je ne veux pas Winetricks se trouve dans les dépôts
de Debian, on pourra donc l’installer
modifier les menus de comme suit :
mon système !
$ sudo aptitude install winetricks
Par défaut, chaque nouvelle applica-
tion installée via Wine vient se loger
dans le menu des applications du Note
système hôte. S’il s’avère que vous
ne souhaitez pas d’un tel comporte- Au passage, si vous utilisez le
ment et que votre système demeure gestionnaire de paquets Debian
« intact » et complètement indépen- comme ici, vous remarquerez
qu’un script /usr/bin/wine-
dant de « l’environnement Wine », il
trick s-ins t all-g e cko a
Figure 3
est nécessaire de désactiver l’utilitaire
lui aussi été installé ; il permet,
winemenubuilder.exe.
comme son nom l’indique, de
Pour cela, voici la marche à suivre : ren- procéder à l’installation du moteur
dez-vous dans la configuration de Wine, Gecko évoqué au paragraphe 3.1.
et dans l’onglet Bibliothèques, saisissez

24 | Linux Pratique n°77  w w w.linux-pratique.com


en Couverture
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Figure 8

Figure 4

Cer taines distr ibutions incluent


Winetricks parmi les dépendances ins-
tallées avec le paquet Wine (c’est le cas 6.2. PlayOnLinux dans l’interface de PlayOnLinux, notam-
ment l’accès à la configuration ou bien
d’Ubuntu par exemple). Winetricks étant Le projet PlayOnLinux (http://www.
la désinstallation de l’application (Fig. 9).
un simple script shell (maintenu par Dan playonlinux.com), basé sur Wine, per-
Kegel), on pourra également le récupé- met d’installer et d’utiliser facilement
rer, puis le rendre exécutable ainsi : de nombreux jeux et logiciels prévus
6.3. Vineyard
pour fonctionner exclusivement sous Vineyard (http://vineyardproject.org/)
$ wget http://winetricks.org/winetricks Windows. Sur le site officiel sont four- est un projet relativement plus récent,
$ chmod +x winetricks nis des paquets pour la plupart des destiné à améliorer l’intégration de
C e c i f a i t , v o u s p o u ve z l a n c e r distributions Linux. La dernière ver- Wine au sein de votre environnement
Winetricks via la commande : sion en date est la 4.1.9 (dépendance de bureau GNOME. Il n’est dispo-
requise : icoutils). nible que pour Ubuntu (et dérivées) ;
$ winetricks --gui pour l’installer, on passera via le PPA
À la première utilisation, un assistant
ppa:cybolic/vineyard-testing. Une fois
ou, depuis votre répertoire de télé- graphique vous aide à préparer votre
environnement ; si les fontes Microsoft installé, Vineyard correspond à l’item
chargement du script :
ne sont pas installées sur votre sys- « Windows Applications » dans votre
$ ./winetricks tème, leur installation est lancée auto- menu habituel (Fig. 10).

Une fenêtre apparaît alors à l’écran ; matiquement et PlayOnLinux est prêt à Assez similaire à l’outil de configura-
elle vous propose au choix l’instal- être utilisé. On commence par cliquer tion fourni avec Wine, il regroupe une
lation d’une application, d’un bench- sur Installer pour ouvrir le menu d’instal- collection d’outils et de bibliothèques
mark, d’un jeu, d’un composant du lation via lequel vous pourrez sélection- pour faciliter la gestion des pro-
wineprefix (polices, DLL, etc.). Il n’y ner le jeu ou l’application de votre choix grammes Windows. Vous pouvez ainsi
a qu’à sélectionner les paquets qui (Fig. 8). Il n’y a qu’à cliquer sur Installer, sélectionner la version de Windows
vous intéressent dans la liste (Fig. 4). PlayOnLinux se charge de tout ! Il instal- adéquate, gérer l’apparence, l’empla-
L’installation s’effectue ensuite comme lera toutes les dépendances requises. cement des fichiers, les bibliothèques,
si vous étiez sous Windows (voir notre Lorsqu’une application est lancée, etc., et même installer quelque pro-
installation de SketchUp figures 5 à 7). diverses actions vous sont proposées grammes directement (Fig. 11).

Figure 5 Figure 6

Figure 7

w w w.linux-pratique.com  Linux Pratique n°77 | 25


Utilisez vos applications Windows même sous Linux avec Wine 1.5 !
en Couverture
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Figure 9
Figure 10

On notera que le paquet vineyard déterminer si l’application Windows À savoir que CrossOver utilise la notion
c o nt i ent é g al em ent une ex ten - que vous souhaitez exécuter est com- de « bouteilles » pour exécuter les dif-
sion pour le gestionnaire de fichiers patible avec CrossOver. L’éditeur met férentes applications (Fig. 13). En fait,
Nautilus, qui propose une configura- également à votre disposition une ver- une bouteille est un environnement
tion par fichier exécutable à partir de sion de test gratuite, active pendant Windows virtuel, contenant son propre
la fenêtre des propriétés d’un fichier. 14 jours. Ceci vous permettra de disque C: ainsi que tous les sous-
constater par vous-même des per- répertoires adéquats. Une bouteille
formances de l’application. Pour la contient ainsi un ensemble complet
6.4. CrossOver version Linux de CrossOver, veillez à de configuration et une ou plusieurs
CrossOver (http://www.codeweavers. disposer des dépendances suivantes : application(s) Windows. Il est d’ailleurs
com/products/ ) est présenté comme python ≥ 2.4, gtk2 ≥ 2.10, python-gtk2 ≥ possible d’avoir plusieurs bouteilles
une « version affinée de Wine », édité 2.10, X.org avec Xrender et GLX, ainsi simultanément ; elles permettent par
par CodeWeavers (société largement que 200Mo d’espace disque (sans exemple d’émuler différentes versions
impliquée dans le développement de compter l’espace nécessaire aux de Windows, et les applications ainsi
Wine). Il facilite l’utilisation de Wine et applications Windows). clairement séparées ne peuvent inter-
fournit un support technique aux uti- férer l’une avec l’autre.
CrossOver est installé directement
lisateurs. À savoir que les fonds rap- Sur le site de CodeWeavers, vous
dans le menu des applications de
portés par la vente de CrossOver sont trouverez également des fichiers
votre bureau. Au lancement, si vous
utilisés pour financer directement les « CrossTie ». Il s’agit de recettes indi-
n’avez pas encore installé d’applica-
développeurs travaillant sur Wine. quant à CrossOver comment installer
tions Windows, CrossOver vous invite
Sur la page http://www.codewea- à le faire en cliquant sur le bouton un programme Windows donné.
vers.com/compatibility/, vous pourrez prévu à cet effet (Fig. 12). Si le programme est gratuit (démons-
t r a t i o n s g r a t u i t e s c o m p r i s e s) ,
CrossOver vous invite à procéder
directement à son installation (Fig. 14).

Figure 12

Figure 11

26 | Linux Pratique n°77  w w w.linux-pratique.com


en Couverture
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Figure 14

Figure 13

En revanche, s’il s’agit d’un pro-


gramme payant, il vous faudra
indiquer le fichier d’installation
dans la section Select an instal-
ler (il peut s’agir d’un CD d’instal-
lation également).

Conclusion
Se tourner vers Wine, d’accord,
mais il ne faut pas non plus s’at-
tendre à ce qu’il prenne tout en
charge... Au cours des années,
Wine ne cesse toutefois de
gagner en performance et s’avère
aujourd’hui capable de faire tour-
ner correctement un très large
panel d’applications. Son utili-
sation reste cependant délicate,
surtout lorsqu’il s’agit d’exécuter
de grosses applications proprié-
taires : sa configuration nécessite
alors une attention toute particu-
lière pour être certain de disposer
du bon environnement d’exécu-
tion. C’est pourquoi l’utilisation de
logiciels tiers, tels que présentés
dans la section 6 de cet article,
est tout à fait recommandée ! Ils
vous faciliteront grandement la
Fig. 15 : Installation de l’application « Kindle pour PC » via CrossOver tâche... ▪

w w w.linux-pratique.com  Linux Pratique n°77 | 27


en Couverture

Jouer aux jeux


vidéos sous
GNU/Linux (ou presque)
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Denis Gourmel, joueur PC sous DirectX et Linuxien

Joueur PC depuis ma plus tendre enfance, j’avais mis


fin à ce passe-temps il y a plusieurs années de cela,
lorsque je suis passé sous GNU/Linux à temps plein.
Désormais, les choses ont changé. Fini le « dual boot »
pour jouer, voici venue la machine virtuelle Xen avec
gestion des cartes graphiques pour les OS invités !

• L
 e premier ordinateur, votre ordina- Intel) avec des chipsets Z77 ou H77.
teur principal, tourne sous GNU/Linux Les cartes mères pour processeurs
Âmes sensibles, s’abstenir (Linux Mint LMDE dans notre AMD, quant à elles, doivent suppor-
cas [LMDE]). Il possède sa propre ter la technologie IOMMU. Plus d’in-
Je préfère prévenir tout de suite
car te graphique (intégrée à la formations sur le matériel supporté
les plus purs d’entre vous, ce que
carte mère), sa propre carte son (inté- dans les références [MATOS].
nous allons faire risque de souiller
grée à la CM), son clavier et sa souris. Ensuite, le processeur. Côté Intel,
notre OS libre. En effet, la finalité
de cet article est de jouer à des Enfin, l’affichage se fait via la source vous devez avoir un processeur lui
jeux pleins de DRM (Steam, Uplay, DVI du moniteur. aussi compatible VT-d. Regardez
Origin, etc.) dans un OS tout sauf • L
 e s e c o n d o r d i n a t e u r, s o u s sur le site Intel, très bien fait [CPU_
libre : Windows 7 ! Si la phrase Windows 7, possède sa propre carte INTEL]. En gros, fuyez les proces-
précédente vous a donné des nau- graphique, un monstre ATI HD bran- seurs série « K » spécial overclocking,
sées, passez votre chemin avant ché sur le port PCI express, sa carte ces derniers ne possèdent pas les ins-
qu’il ne soit trop tard... son dédiée (via la sortie casque du tructions VT-d et coûtent plus cher.
moniteur), son clavier et sa souris Côté AMD, c’est un peu plus res-
(les mêmes qu’au-dessus, nous trictif, mais vous pouvez jeter un œil
1. Vos contraintes : verrons plus bas comment). Enfin, ici : [MATOS]
un matériel sur l’affichage se fait via la source HDMI
du moniteur.
Ajoutez à cela une carte graphique
gamer. Je vous recommande très for-
mesure Mais il est fou  ?! Je ne veux pas tement d’aller voir du côté de chez
Qui dit lancer Windows, dit virtua- avoir autant de matos, autant ache- ATI/AMD. En effet, leurs cartes fonc-
lisation. Le dual boot, c’est pour les ter deux PC ! En fait, je vous rassure, tionnent directement pour l’utilisa-
pauvres ! Mais attention, ici, nous par- en choisissant bien son matériel, il n’y tion que nous allons en faire, alors
lerons de virtualisation de première aura pas à doubler les équipements. que du côté de Nvidia, il va falloir
classe (comme au cinéma)  : avec Profitons juste des dernières techno- jouer avec le BIOS de la carte, appli-
Xen et non pas VirtualBox ; et surtout, logies et utilisons-les intelligemment. quer des patchs, recompiler des
nous réserverons un adaptateur gra- Tout d’abord, la carte  mère. Cette paquets, etc. Encore une fois, n’hési-
phique à notre OS invité, afin d’en tirer dernière doit absolument gérer les tez pas à consulter la liste du matériel
pleinement profit. instructions VT-d (et non pas unique- supporté [MATOS].
Le concept est le suivant, avoir deux ment VT-x). C’est le cas de la plupart Autre élément important, un switch/kvm
ordinateurs (sic) en un : des cartes mères récentes (pour CPU USB avec gestion de l’audio. Il s’agit

28 | Linux Pratique n°77  w w w.linux-pratique.com


en Couverture

d’un petit boîtier en plastique qui coûte Dans ce même fichier, modifiez aussi la première ligne afin de booter en priorité
une vingtaine d’euros et va vous per- sous Xen, cf. le fichier modifié :
mettre de connecter votre clavier et
votre souris dessus. À la simple pres- GRUB_DEFAULT=»Xen 4.1-amd64»
# GRUB_HIDDEN_TIMEOUT=0
sion d’un bouton sur ce fameux boîtier,
# GRUB_HIDDEN_TIMEOUT_QUIET=true
vous basculerez votre clavier/souris et
GRUB_TIMEOUT=10
système audio d’un OS vers l’autre.
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`


Enfin, et pour être complet, il vous fau- GRUB_CMDLINE_LINUX_DEFAULT=»quiet splash nomodeset»
dra un moniteur avec une entrée DVI GRUB_CMDLINE_LINUX=»»
(ou VGA) et une entrée HDMI, ainsi GRUB_CMDLINE_XEN=»iommu=1 dom0_mem=2048M»
qu’une sortie audio (prise casque).
Ensuite, il faut mettre à jour GRUB :

2. Votre première sudo update-grub

tâche : installer Xen et redémarrer votre machine.

Je pars du principe que vous me Note


faites une confiance aveugle et avez Assurez-vous de bien avoir activé l’option « VT-d » ou « IOMMU » dans le BIOS
par conséquent formaté votre disque de votre carte mère !
afin d’y installer une Linux Mint LMDE
64bits toute fraîche, puis mis à jour
vos paquets via cette commande : 3. Votre seconde mission : configurer Xen
sudo apt-get update && sudo apt-get Vous devriez maintenant être sous Xen. Pour le vérifier, tapez :
dist-upgrade
sudo xm list
Très bien, commençons ! Name ID Mem VCPUs State Time(s)
Domain-0 0 11233 4 r----- 12236.5
Il faut installer l’hyperviseur Xen :
Le « network-manager » est un programme assez infâme, il n’en fait qu’à sa tête
sudo apt-get install xen-linux-system-amd64 et je vous conseille de le désactiver pour éviter les mauvaises surprises :
Puis, nous ajoutons la ligne suivante sudo /etc/init.d/network-manager stop && sudo update-rc.d network-manager disable
dans le fichier de configuration de
GRUB (/etc/default/grub) : Une fois court-circuité, configurons nos interfaces « à la mano », comme les vrais
Linuxiens que nous sommes. Dans le fichier /etc/network/interfaces, entrez
GRUB_CMDLINE_XEN=»iommu=1 dom0_mem=2048M» les informations suivantes pour obtenir une IP via le DHCP et ajouter un « pont »
avec dom0_mem correspondant à la nommé xenbr0, qui servira de lien entre l’OS invité et l’OS hôte :
quantité de mémoire que vous voulez #This file describes the network interfaces available on your system
allouer à votre système hôte. # and how to activate them. For more information, see interfaces(5).

# The loopback network interface


auto lo
iface lo inet loopback

auto xenbr0
iface xenbr0 inet dhcp
bridge_ports eth1

Note
Attention à bien utiliser votre interface : eth0, eth1, wlan0, etc.
Note
Pour prendre en compte les changements, nous relançons le service de réseau :
« dom0 » est le nom donné par Xen
au système hôte. Dans notre cas, sudo /etc/init.d/networking restart
le système hôte sera Linux Mint
et nous vérifions la présence de l’interface xenbr0 avec la commande :
LMDE, et le système invité (ou
« domU » dans la jargon Xen) sera ip addr
Windows 7.
xenbr0 devrait être visible et avoir une IP valide.

w w w.linux-pratique.com  Linux Pratique n°77 | 29


Jouer aux jeux vidéos sous GNU/Linux (ou presque)
en Couverture

Il faut aussi ajouter quelques liens symboliques pour régler de petits problèmes : Maintenant, il faut s’occuper du KVM.
C’est très simple en pratique, mais un
sudo ln -s /usr/lib /usr/lib64
peu plus compliqué à expliquer avec
sudo ln -s /usr/lib/xen-4.1 /usr/xen-default
des mots. Il va falloir réfléchir un peu
Voilà, Xen est configuré ! Attaquons-nous maintenant à la configuration de notre et brancher plein de câbles.
domU Windaube 7. Un KVM possède beaucoup de ports !
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

2 USB en entrée, 2 USB en sortie, 2


4. Encore une mission pour vous : audio en entrée et 1 audio en sortie
(pour ce qui nous intéresse) [KVM].
configurer votre domU Il va falloir relier deux ports USB de
Avant toute chose, faisons un point sur l’installation matérielle de votre super PC. la tour vers les deux entrées USB du
Vous utilisez actuellement la carte graphique intégrée à la carte mère. Cette der- KVM. Mais attention, les ports USB
nière est connectée en DVI à votre moniteur, et la sortie son utilisée est celle de doivent être des devices différents
la carte mère. Votre carte graphique de gamer est branchée en HDMI sur votre (cf. explication des PCI ID ci-dessus).
écran, mais vous ne l’utilisez pas pour le moment. Nous reparlerons plus tard du En effet, l’un de ces devices USB ne
branchement du KVM. sera plus utilisable sous votre dom0 :
comme votre carte graphique gamer,
Il faut déterminer le numéro identifiant la carte graphique « gamer ». Pour ce faire :
il sera dédié au domU.
lspci | grep -i vga Pour faire simple, je vous conseille
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor d’utiliser un des ports USB tout en
Graphics Controller (rev 09) haut du PC (ceux traditionnellement
01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Tahiti PRO [Radeon HD 7950]
réservés aux claviers/souris) et un
Il y a deux résultats, c’est normal, puisque nous avons deux cartes graphiques. des ports USB proches de la prise
La carte qui nous intéresse est le modèle AMD, donc obtenons plus de détails Ethernet de votre carte mère.
sur cette dernière : Pour trouver facilement les ID, pas-
lspci | grep 01:00. sez par l’outil « System profiler and
01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Tahiti PRO [Radeon HD 7950] benchmark » qui se trouve dans le
01:00.1 Audio device: Advanced Micro Devices [AMD] nee ATI Tahiti XT HDMI Audio [Radeon HD 7970 menu de votre LMDE. Branchez votre
Series] clavier sur un groupe de ports USB
sus-mentionnés, et notez son PCI ID
Nous découvrons finalement 2 ID qui sont 01:00.0 et 01:00.1, notez-les bien ! de la forme XX:YY.Z ; ensuite, débran-
chez le clavier et branchez-le sur un
Note autre groupe de ports USB. Notez à
Le fonctionnement des ID PCI est relativement simple, ils sont de la forme : nouveau l’ID et branchez votre KVM
dans les bons ports.
bus:device.function
Ici, le premier 01 veut dire que notre carte est dans le premier emplacement Note
(en partant du haut) PCI express ; le second groupe de chiffres 00 correspond
Pour référence, j’utilise les ports
à l’objet physique : la carte AMD ; enfin, le dernier 0 ou 1, correspond à la
en haut de ma carte mère pour le
fonction : d’un côté l’affichage et de l’autre la partie audio via HDMI.
PC2 (PCI ID = 00:1d.0) (donc le
domU) et celui proche du contrô-
leur Ethenet pour mon dom0 (ce
device contrôle aussi les ports en
façade, que je veux garder utili-
sables au sein de mon dom0).
Côté audio, ma carte son inté-
grée à la carte mère se branche
dans l’entrée audio du KVM pour
le PC1, et l’entrée audio du KVM
pour le PC2 va dans la prise
casque du moniteur.

Ouf ! C’est fini pour les branchements.


Une fois les PCI ID déterminés, on
reprend les lignes de commandes.
Créez le fichier suivant :

30 | Linux Pratique n°77  w w w.linux-pratique.com


en Couverture

Il faut rendre ce script exécutable et le démarrer juste après


vim /etc/xen/pciback.conf
le lancement de xend durant le boot de notre hyperviseur
# This file contains the list of pci devices the pciback Xen :
driver should bind
# to at system startup. sudo chmod +x /etc/init.d/pciback && sudo update-rc.d pciback
# Please provide the devices in long BDF notation. defaults 21 19
# Example:
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

# 0000:08:00.0 Enfin, ajoutez la ligne suivante dans le fichier /etc/modules :


# NO EMPTY LINES!
# xen-pciback passthrough=1
0000:01:00.0 # carte graphique
0000:01:00.1 # partie audio via HDMI de la carte graphique Redémarrez et vérifiez que vos périphériques sont bien
0000:00:1d.0 # port USB du KVM relié au PC2 réservés pour votre domU :

sudo xm pci-list-assignable-devices
Note 0000:01:00.0
0000:01:00.1
Attention à la notation des PCI ID qui doit se faire sous 0000:00:1d.0
leur forme longue : ajoutez « 0000: » devant ce que vous
aviez noté.

Ensuite, il faut créer un script de démarrage afin de « cacher »


5. La fin approche...
ces 3 périphériques pour que le dom0 ne s’en serve pas Voici le fichier de configuration de notre domU [CONF_FILES] :
directement :
cat domUs/win7.cfg
vim /etc/init.d/pciback
kernel = «hvmloader»
# X-Start-Before: xend builder=’hvm’
# X-Stop-After: memory = 12288
# Default-Start: 2 3 4 5 # set your memory however you want. 4G is enough for me, and i want the
# Default-Stop: # rest for the host and the other VM
### END INIT INFO name = «win7»
. /lib/lsb/init-functions vcpus=3
scriptname=/etc/init.d/pciback pae=1
configfile=/etc/xen/pciback.conf acpi=1
unbind() { apic=1
# Unbind a PCI function from its driver as necessary vif = [ ‘type=netfront, mac=00:16:3e:68:b2:12,bridge=xenbr0, model=e1000’
[ ! -e /sys/bus/pci/devices/$1/driver/unbind ] || \ ]
echo -n $1 > /sys/bus/pci/devices/$1/driver/unbind disk = [ ‘phy:/dev/mapper/guest-sys7,hda,w’, ‘phy:/dev/mapper/guest-
} win7,hdb,w’, ‘file:/home/nesousx/Isos/Win_7_Pro_x64.iso,hdc:cdrom,r’ ]
bind() { device_model = ‘qemu-dm’
# Add a new slot to the PCI Backend’s list boot=»dc» # ordre de boot dc au début pour booter sur l’iso
echo -n $1 > /sys/bus/pci/drivers/pciback/new_slot d’installation ensuite c tout court.
# Now that the backend is watching for the slot, bind to it
echo -n $1 > /sys/bus/pci/drivers/pciback/bind sdl=0
} opengl=1
vnc=1
case $1 in
vncpasswd=’’
start) vncconsole=1 # permet de lancer directement vnc viewer
cat $configfile | while read line;do stdvga=0
echo $line | grep ^# >/dev/null 2>&1 && continue serial=’pty’
unbind $line
bind $line tsc_mode=0
done soundhw=’all’
;; usb=1
usbdevice=’mouse’
stop|status|restart|force-reload) gfx_passthru=0
# As we don’t know which driver was bound before, there is pci=[ ‘01:00.0’, ‘01:00.1’ , ‘00:1d.0’ ]
not much we can do here
;; localtime=1
*) N’oubliez pas d’ajuster selon vos besoins, l’adresse, le nombre
echo “Usage: $scriptname start” >&2 de cores (vcpus), la quantité de mémoire (memory), l’adresse
exit 3
;; MAC dans la ligne vif, et les chemins d’accès du disque que
vous voulez utiliser, ainsi que l’emplacement du fichier d’ins-
esac
tallation [ISO_WIN7], et les numéros de vos PCI ID.

w w w.linux-pratique.com  Linux Pratique n°77 | 31


Jouer aux jeux vidéos sous GNU/Linux (ou presque)
en Couverture

compatible à l’heure actuelle qu’avec


Note un nombre très restreint de jeux, là où
Notez que j’utilise LVM comme système de stockage. C’est la méthode donnant la machine que nous venons de mon-
les meilleures performances. Je ne vais pas revenir sur l’utilisation de LVM, ter se comportera exactement comme
cela a déjà été très bien traité dans Linux Pratique et GNU/Linux Magazine. un PC sous Windows vendu en super-
marché (ou ailleurs).
Afin de pouvoir suivre l’installation de votre domU, vous devez installer VNC
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Viewer :
Remerciements
sudo apt-get install vncviewer Les internets, les moteurs de recherche
et un très bon fil de discussion dont je
me suis fortement inspiré pour mettre
6. Après tant d’attente, l’installation et en place ce système [CESAR] et vous
le décrire par la suite. ▪
les redémarrages de Windows 7
Vous voilà prêt à démarrer l’installation de votre domU :
Références
sudo xm create domUs/win7.cfg [LMDE] http://www.linuxmint.
Une fenêtre VNC Viewer devrait s’ouvrir et l’installation de Windows 7 devrait débuter. com/download_lmde.php
Procédez comme d’habitude sous cet OS : sans lire et en cliquant sur « Next » [INTEL] http://ark.intel.com/
« Next » « Next ». L’installation se termine au bout de plusieurs redémarrages
(Windows...). Si VNC Viewer se ferme (il se fermera), relancez-le : [MATOS] http://wiki.xen.org/
wiki/VTd_HowTo
vncviewer localhost [CONF_FILES] https://github.
Une fois enfin arrivé sur le Bureau de Windows, vous allez pouvoir installer les com/Nesousx/xen
pilotes propriétaires de votre carte graphique et... redémarrer. Après le chargement [KVM] http://www.asciiflow.
du logo Windows, l’écran devrait rester noir, c’est bon signe ! Changez la source com/#Draw2234936168077
de votre moniteur pour sélectionner HDMI et vous devriez avoir un joli Bureau 638856
Windows sous les yeux. Vous utilisez désormais votre carte ATI sous Linux ! Si [ISO_WIN7] http://www.
vous n’avez pas de souris, ni de clavier, c’est que vous avez oublié d’appuyer sur mydigitallife.info/official-
le bouton de votre KVM. windows-7-sp1-iso-from-digital-
Dernière petite étape : afin d’augmenter les performances et d’avoir les bons pilotes river/
pour les éléments paravirtualisés de Xen, installez les pilotes GPL PV [GPLPV]. [GPLPV] http://wiki.univention.
Voilà, vous y êtes arrivé ! Vous pouvez à nouveau jouer à en faire craquer votre de/index.php?title=Installing-
facture d’électricité, sans avoir à dual booter. signed-GPLPV-drivers

Dernier petit point, cet article arrive quelques mois après la sortie de Steam Linux [CESAR] http://forums.
et certains d’entre vous trouveront peut-être dommage d’utiliser une machine linuxmint.com/viewtopic.
virtuelle pour jouer sous Steam. Ceci dit, n’oubliez pas que Steam Linux n’est php?f=42&t=112013

32 | Linux Pratique n°77  w w w.linux-pratique.com


Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

w w w.linux-pratique.com 
Linux Pratique n°77
|33
en Couverture
système & réseau

Serveur sous
Linux : disques et
partitionnement
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Sébastien Maccagnoni-Munch

Le partitionnement des disques durs... c’est un sujet épineux, et chacun a un avis bien tranché
sur la question. Ajoutons à cela que la plupart des distributions Linux proposent un partitionnement
« standard », on est facilement perdu... Alors, comment bien partitionner un disque ?

Soyons clairs dès le début : cet article • A


 vec une technologie adaptée (comme proposées, et encore plus rarement
ne présente pas une vérité absolue. LVM), les espaces disques peuvent utilisées.
C’est une approche que j’ai progressi- être attribués dynamiquement ; L’article de Wikipédia sur le RAID est
vement mise en place, en plus de dix • L
 es points de montage peuvent être particulièrement fourni et vous permettra
ans d’expérience dans ce domaine. placés sur des disques différents, de savoir tout ce dont vous avez besoin
Certains y trouveront des failles, améliorant la performance du serveur. sur ces technologies : http://fr.wikipedia.
d’autres la trouveront trop compli- org/wiki/RAID_(informatique).
quée... Cette approche a le mérite de
s’appuyer sur une réelle expérience 2. Des disques 2.1.1. Du disque de rechange
professionnelle, ainsi que d’être rela-
tivement propre et flexible. physiques Un disque de rechange (ou spare
disk), associé à une grappe RAID,
Notons que cette approche s’applique Avant même de penser au partition-
permet au système de garder un
à des serveurs ; pour un poste de tra- nement des disques, il faut prévoir la
disque inutilisé au quotidien et d’y
vail, mes conseils seraient complète- répartition des disques durs : un seul
reconstruire la grappe en cas de
ment différents. disque ? Une grappe RAID ? Plusieurs
panne d’un disque : cela permet de
disques ? Plusieurs grappes RAID ?
ne pas fonctionner dans un mode
Il n’y a bien sûr pas un seul cas de
« dégradé » le temps de remplacer le
1. Des raisons du figure, à vous de choisir la configu-
ration la plus adaptée à vos besoins,
disque défectueux.

partitionnement selon les avantages et les inconvé- Notons que, dans les baies SAN, un
disque de rechange n’est pas néces-
nients de chacune des possibilités.
Un néophyte me demandera (et il sairement lié à une grappe : de cette
aura bien raison) : « Mais pourquoi 2.1. De l’intérêt des manière, s’il y a plusieurs grappes
faire plein de partitions ? ». On peut RAID dans une même baie et un seul
en effet créer une seule grosse par- grappes RAID disque de rechange, il sera automa-
tition et tout mettre dedans, c’est un En général, on apprend que la techno- tiquement utilisé lors d’une panne
peu comme ça que fonctionnent les logie RAID est indispensable sur des disque, quelle que soit la grappe liée
systèmes Microsoft Windows. Et ça serveurs. Cela n’est qu’à moitié vrai... au disque.
marchera, au début. Chaque type de grappe RAID a ses
Le partitionnement apporte, en réalité, propres avantages et inconvénients. 2.1.2. Des cas où le RAID ne
différents avantages : Le tableau ci-dessous résume les sert à rien
principaux types de grappes RAID : Une grappe RAID ne protège jamais
• L
 es espaces disques sont dédiés à
voir tableau ci-contre. contre un effacement accidentel de
certains types de données et limités
selon les besoins ; Notons que d’autres technologies exis- données ; les grappes RAID protègent
tent : RAIDn, RAID 01, RAID 05, RAID (à part pour le RAID 0) uniquement
• D
 es restrictions précises peuvent être contre la perte matérielle d’un disque
15, RAID 50, RAID 51, RAID 5E, RAID
mises sur ces espaces disques ; dur. De plus, la plupart des technolo-
5EE, RAID 5DP, RAID TP, RAID 1.5,
• S
 i un espace disque est rempli, ça RAID 7, RAID S, Matrix RAID, RAID 1E, gies RAID utilisées ne protègent que
ne « déborde » pas sur les autres ; RAID Z... Mais celles-ci sont rarement contre la perte d’un seul disque...

34 | Linux Pratique n°77  w w w.linux-pratique.com


système & réseau

Type de RAID Description Avantages Inconvénients


Pas de RAID Un ou plusieurs disque(s), aucune Tout l’espace disque est disponible Aucune protection contre la perte
grappe RAID Gestion des disques la plus simple d’un disque
RAID 0 Plusieurs disques côte-à-côte Tout l’espace disque est disponible Aucune protection contre la perte
sans redondance, écriture croisée Performances en écriture et en lecture importantes d’un disque
sur les disques
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

NRAID/JBOD Plusieurs disques côte-à-côte Tout l’espace disque est disponible Aucune protection contre la perte
sans redondance, écriture d’un disque
successive sur un disque après
l’autre
RAID 1 Redondance des données, Données sécurisées contre la perte d’un disque dur Seule la moitié de l’espace disque
« miroir » total est disponible
Ne fonctionne qu’avec deux disques
RAID 5 écriture croisée + disque de parité Données sécurisées contre la perte d’un disque dur Perte de performance en écriture
Performances en lecture importantes (calcul de la parité) ; Minimum 3
Pour N disques, espace disponible égal à l’espace disques
fourni par N-1 disques
RAID 6 écriture croisée + plusieurs (N) Données sécurisées contre la perte de plusieurs Grosse perte de performance en
disques de parité disques durs (selon le nombre de disques de parité) écriture (calcul de la parité)
Pour N disques et X disques de parité, espace Minimum 4 disques
disponible égal à l’espace fourni par N-X disques
RAID 10 agrégat (RAID 0) de plusieurs Données sécurisées contre la perte d’un ou plusieurs Seule la moitié de l’espace disque
grappes RAID 1 disque(s) dur(s) (tant que les disques défaillants ne font total est disponible ; Minimum 4
pas partie de la même grappe RAID 1) disques ; Nombre pair de disques

Notons également que le NRAID (ou matérielle, il n’y a absolument aucune nous n’allons donc pas approfondir énormé-
JBOD, « just a bunch of disks ») est configuration à effectuer dans le système ment cette technologie. Rappelons quand
à éviter, au profit d’une technologie de pour supporter les grappes. Les proces- même les bases :
plus haut niveau comme LVM. seurs des contrôleurs RAID matériels • v
 ous « formatez » une ou plusieurs par-
sont bien moins puissants que les proces- titions disque comme volumes physiques
2.2. De la différence seurs centraux des serveurs, mais toute (PV) ;
entre RAID matériel et leur puissance est dédiée à la gestion du
• v
 ous réunissez un ou plusieurs volumes
RAID.
RAID logiciel physiques dans un groupe de volumes
(VG) ;
Le noyau Linux permet de gérer des 2.3. Des multiples
• v
 ous créez, dans ce groupe de volumes,
grappes RAID logicielles : le système voit disques ou grappes des volumes logiques (LV) ;
tous les disques durs et gère lui-même
l’ensemble des aspects des grappes. Selon vos besoins, il peut être préfé- • v
 ous placez dans ces volumes logiques
rable d’avoir plusieurs disques ou plu- des systèmes de fichiers.
Les serveurs peuvent être fournis avec sieurs grappes indépendants. C’est
des contrôleurs RAID matériels  : les Il n’est pas nécessaire d’allouer tout l’espace
notamment le cas lorsque vous avez
grappes sont gérées de manière trans- dès l’installation d’un système : l’espace
une application qui a énormément de
parente et le système Linux ne voit qu’un disque pourra être attribué dynamique-
besoins en entrée/sortie disque, ce qui
seul disque dur. ment aux volumes logiques, sans arrêter
est le cas des bases de données à forte
le système et sans démonter les systèmes
Le RAID logiciel est intéressant car abor- charge par exemple.
de fichiers. C’est le premier intérêt, le plus
dable : il n’y a pas besoin d’acheter un Séparer physiquement le système et visible, de cette technologie !
quelconque matériel complémentaire. les données permet d’éviter les ralentis-
Par contre, la gestion des grappes est Les écrans de partitionnement des proces-
sements lorsque le système doit simul- sus d’installation des distributions permettent
plus compliquée (maintenance, mises à tanément écrire ou lire sur les parties
jour, ligne de commandes, etc.). De plus, en général de créer des volumes LVM pour
« système » et sur les parties « données ». y installer des systèmes...
toute opération sur les grappes utilise de
la puissance du processeur, impactant
éventuellement les applications héber- 3. De LVM 4. Du partitionnement
gées sur le serveur. LVM (pour « Logical Volume Management ») Entrons maintenant dans le vif du sujet !
Le RAID matériel, bien que plus onéreux, est une technologie permettant d’allouer Nous avons un serveur, avec un ou plu-
est à envisager la plupart du temps : la de l’espace disque de manière très souple. sieurs disques ou grappes RAID, et on
gestion des disques durs est totalement Plusieurs articles récents ont traité de LVM, doit définir le plan de partitionnement des

w w w.linux-pratique.com  Linux Pratique n°77 | 35


système & réseau Serveur sous Linux : disques et partitionnement

disques ; c’est important car, une fois parle d’un temps que les moins de vingt ans peu près tout. C’est pourquoi je propose
défini, ce plan ne pourra que difficile- ne peuvent pas connaître. À cette époque, de faire une petite partition de 10 Go
ment être modifié. Il faut donc pouvoir la mémoire vive était rare et chère. Il était par exemple, voire moins s’il y a des
anticiper l’utilisation du serveur sur toute exceptionnel d’avoir 32 Mo de mémoire vive contraintes d’espace disque.
sa durée de vie, parfois de nombreuses sur une machine. Et, même à cette époque,
années... les logiciels avaient besoin de beaucoup de 4.4. De l’inutilité de /boot
RAM. Pas autant qu’aujourd’hui, bien sûr. Beaucoup conseillent encore la création
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Je ne vais évoquer ici qu’un partition-


nement sur un ou plusieurs disques, Mais on arrivait facilement à un besoin de d’une partition /boot spécifique ; c’est
hors grappes RAID. Si vous utilisez 50 Mo de mémoire. Dans ce cadre, on fai- inutile. La raison de cette inutilité est
des grappes RAID matérielles, l’ap- sait des concessions, on acceptait d’utiliser directement liée à la raison de l’existence
proche est exactement la même, car beaucoup de swap pour stocker les don- de ce /boot dans la plupart des cas.
le système Linux n’y voit que des nées d’une grosse partie du système, mal-
Il y a quelques années, les BIOS ne
disques simples. Si vous utilisez des gré les ralentissements induits.
pouvaient pas adresser plus de 1024
grappes RAID logicielles, je vous Mais aujourd’hui, ce n’est plus une réalité. cylindres, ce qui correspond à un maxi-
laisse le soin d’adapter cette logique Le prix de la mémoire vive va en diminuant mum de 8 Go de disque dur. Lorsque
à votre agencement de grappes RAID. et le moindre serveur d’entrée de gamme des disques de plus de 8 Go sont sor-
est fourni avec 2 Go de mémoire vive, tout tis, le BIOS ne savait pas utiliser tout le
4.1. Des systèmes de en offrant la possibilité de monter jusqu’à disque. Il fallait donc placer une partition
fichiers 32 Go pour quelques centaines d’euros. La spécifique pour /boot, permettant au
mémoire vive joue un rôle important dans la BIOS de charger le noyau sur un espace
Linux supporte de nombreux systèmes
rapidité d’un serveur, il ne faut pas hésiter auquel il savait accéder.
de fichiers différents. Cependant, pour
à en installer beaucoup. Et si on a beau- Aujourd’hui, les BIOS accèdent aux
des besoins classiques, le système de
coup de mémoire vive, on n’a plus besoin disques durs par une numérotation
fichiers par défaut (ext4 actuellement,
de swap. logique (le fameux « LBA »), qui s’af-
ou ext3 si vous utilisez une distribution
un peu vieille) est largement suffisant. Il Pour conserver les performances du ser- franchit totalement de ces probléma-
est possible de se tourner vers d’autres veur, la logique doit être la suivante : tous tiques matérielles. Le noyau peut donc
systèmes de fichiers si vous avez des les logiciels en fonctionnement doivent être stocké n’importe où sur le disque, le
besoins spécifiques, en termes de per- tenir dans la mémoire vive, la swap n’étant BIOS saura le charger.
formances ou de gestion, mais généra- utilisée qu’en cas de problème, en cas de
lement il ne sert à rien de se compliquer surcharge. Il est donc préférable de mettre 4.5. Des volumes LVM
la gestion du serveur avec ça... peu de swap – 1 Go par exemple – en Tout le reste sera stocké dans des
complément d’une mémoire vive impor- volumes LVM.
4.2. De la swap tante et de considérer que toute utilisation
Dans tous les cas, la troisième partition
de la swap est soit un problème temporaire
sera préparée comme volume physique
Masculin ou féminin ? à résoudre, soit une raison d’ajouter de la
et placée dans un groupe de volumes qui
mémoire vive...
Certains écrivent « le swap », c’est sera appelé (par exemple) « system ».
d’ailleurs le cas de Wikipédia... La swap peut être placée n’importe où sur
Si les données sont stockées sur un
Personnellement, je préfère écrire le disque dur, vu qu’elle ne sera idéalement
second disque dur ou sur une seconde
« swap » au féminin, car c’est un jamais utilisée, ses performances ne sont
grappe RAID, une seule partition y est
anglicisme qui permet de décrire un pas cruciales. Par habitude, je place la
créée, en tant que volume physique LVM,
espace de stockage de la mémoire swap dans la toute première partition, mais
seul dans un groupe de volumes appelé
virtuelle. C’est de la mémoire, c’est ce n’est qu’une habitude...
(par exemple) « data ».
virtuel... En plus, on dit bien souvent
« la partition de swap » : encore un 4.3. De la partition racine 4.5.1. De l’ajout de volumes
féminin ! Mon expérience tend à dire Je préconise de placer la partition racine physiques
que la swap est plutôt considérée hors du volume LVM. De cette manière, si
féminine : c’est une partition, c’est Et si, au bout de quelques années, on se
jamais il y a obligation d’accéder au système
de la mémoire et j’ai de nombreux retrouve à court d’espace disque ? Pas
sans support de LVM (ça ne devrait pas
collègues ou ex-collègues qui sont de panique ! Grâce à LVM, il est pos-
arriver, mais on n’est jamais trop prudent),
du même avis. sible d’ajouter un disque ou une grappe
les données de base restent accessibles :
dans le système, d’y créer un ou plu-
Un bruit court, chez les novices en infor- configuration dans /etc, exécutables de
sieurs volumes physiques LVM et de les
matique (ou chez les barbus qui ne se base dans /bin, noyau dans /boot et
ajouter aux groupes de volumes exis-
mettent pas à jour) : il serait idéal d’avoir /lib/modules, etc.
tants : cela permet ensuite d’agrandir les
deux fois plus de swap que de mémoire Nous allons voir ci-après que cette par- volumes logiques à la demande, LVM se
vive. C’était vrai à une époque, en rai- tition ne contiendra, au final, que peu de débrouillant tout seul pour stocker telle ou
son de contraintes techniques. Je vous données : le système de base, mais c’est à telle donnée sur tel ou tel disque...

36 | Linux Pratique n°77  w w w.linux-pratique.com


système & réseau

Attention aux performances ! À partir du • p


 rotection : ce système de fichiers pourra être monté en interdisant les exécu-
moment où un volume logique LVM est à tions (option noexec).
cheval sur deux volumes physiques, on ⇒ /var/log :
peut estimer que ses performances sont
égales à celles du volume le plus lent... • description : contient les journaux système ;
N’ajoutez donc pas un disque USB2 à un • m
 ouvement : des journaux sont écrits continuellement, l’espace utilisé est en
groupe de volumes qui utilise des grappes augmentation constante – avec logrotate, il y a toutefois une limite à l’espace uti-
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

RAID SAS ! lisé, retenons cependant qu’on a une obligation de conserver les logs pendant
longtemps, il faut donc prévoir assez de place ; de plus, il faut, comme pour /var,
4.6. Des autres points de pouvoir amortir toute augmentation subite de l’espace disque utilisé ;
montage • t aille : 50 Go devraient suffire pour stocker plusieurs mois (voire années) de logs,
Jusqu’ici, on a défini trois partitions : une sauf dans le cas d’applications très verbeuses ;
partition de swap, une partition racine • p
 rotection : ce système de fichiers pourra être monté en interdisant les exécu-
et un volume physique LVM. Toutes les tions (option noexec).
autres données seront stockées dans des ⇒ /
 tmp :
volumes logiques LVM.
• description : les applications écrivent leurs données variables dans cette partition ;
Détaillons ici tous les points de montage
que je crée systématiquement, dans le • m
 ouvement : les mouvements dans ce répertoire dépendent complètement des
groupe de volumes « system » : applications utilisées ;
• t aille : 10 Go devraient suffire, sauf dans le cas d’applications très gourmandes
⇒ /
 usr :
en espaces temporaires ;
• d
 escription : contient surtout les don-
• p
 rotection : ce système de fichiers pourra être monté en interdisant les exécu-
nées de type «  binaire  » et « parta-
tions (option noexec), mais cela reste à valider selon les applications utilisées.
gées » : exécutables, bibliothèques,
données fixes comme les icônes, les En complément de ces points de montage « systématiques », des points de mon-
documentations, etc. ; tage peuvent être créés pour les applications, soit dans « system » soit dans « data »
• m
 ouvement : la taille de ces données selon les cas ; par exemple :
varie peu, une fois le serveur en place • /
 var/lib/mysql : données de MySQL ;
l’espace utilisé dans ce volume ne • /
 var/lib/postgresql : données de PostgreSQL ;
devrait pas beaucoup changer ;
• /
 var/www : données du serveur web ;
• t aille : on peut lui attribuer 20 Go, ce qui
• /
 opt : applications hors de l’arborescence UNIX standard ;
est amplement suffisant dans la plupart
des cas. Si nécessaire, on pourra défi- • /
 srv : données des services, peut venir en remplacement
nir dès le début un volume plus gros ou des différents /var/lib/*sql, de /var/www, etc.
l’agrandir ultérieurement ;
• p
 rotection : on pourra monter ce système 5. Du résultat obtenu
de fichiers en lecture seule, à remonter
temporairement en lecture-écriture pen- Prenons comme exemple un serveur « LAMP » (Apache/MySQL), avec deux
dant les mises à jour du système. disques durs (un pour le système, un pour les données). Le partitionnement d’un
tel serveur peut être résumé par le tableau ci-dessous :
⇒ /var :
Partition / volume Type Taille Montage
• d
 escription : contient, comme son nom
/dev/sda1 swap 1 Go swap
l’indique, des données variables : bases
de données, cache des applications, /dev/sda2 ext4 10 Go /
etc. ; /dev/sda3 LVM PV (le reste) LVM VG « system »
• m
 ouvement : ces données bougent /dev/sdb1 LVM PV (tout) LVM VG « data »
constamment, il faut prévoir suffisam- /dev/system/tmp ext4 10 Go /tmp
ment de place pour amortir une éven- /dev/system/usr ext4 20 Go /usr
tuelle augmentation rapide de la place /dev/system/var ext4 20 Go /var
utilisée, surtout si les logs y sont éga- /dev/system/varlog ext4 50 Go /var/log
lement stockés (dans le cas – que je
/dev/data/varlibmysql ext4 200 Go /var/lib/mysql
déconseille – où on ne crée pas de
/dev/data/varwww ext4 25 Go /var/www
volume pour /var/log) ;
• t aille : je pars en général sur 20 Go au Bien sûr, c’est à vous de définir le partitionnement de votre serveur, mais ces
début, avec un agrandissement si le quelques conseils vous permettront de partir sur de bonnes bases, avec un sys-
besoin se fait ressentir les premières tème racine facilement réparable et un important espace LVM libre, qui pourra
semaines ; être attribué au fur et à mesure selon les besoins de vos applications... ▪

w w w.linux-pratique.com  Linux Pratique n°77 | 37


système & réseau

Besoin d’un serveur


sans prétentions ?
Essayez 4MLinux !
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Un petit serveur, là, maintenant, tout de suite, sans prise de tête à l’installation et qui se
configure simplement ? C’est un peu vouloir le beurre et l’argent du beurre, mais si, c’est
possible : grâce à 4MLinux. Cette petite distribution d’une cinquantaine de mégaoctets
inclut les services les plus courants et vous permettra d’installer le serveur dont vous avez
besoin, chez vous, en quelques minutes seulement.

1. Présentation du • 4
 MLinux Media Edition orientée activi-
tés multimédias avec : MPLayer, Xine,
Notez au passage que toutes les ISO
de 4MLinux sont compatibles avec
projet TiMidity, MikMod, Audacity, SoX, cdrkit, MultiBootUSB et UNetbootin, ce qui
Mencoder, ffmpeg, Xpdf et Xpaint. vous permettra de créer rapidement une
4MLinux est une mini distribution Linux, clé USB bootable avec votre solution
basée sur 4 grands axes d’utilisation. • 4
 MLinux Server Edition, un mini ser-
veur qui inclut les services FTP (vsftpd), serveur par exemple. On pourra égale-
« 4M » signifie en effet Maintenance, ment l’installer sur une machine virtuelle,
Multimédia, Mini-serveur et Mystère (ce HTTP (Busybox), HTTPS (via Stunnel),
SFTP (via openSSH), SSH (Dropbear) c’est d’ailleurs ce qui a été effectué dans
dernier terme désignant simplement le cadre de cet article. 512Mb de RAM
l’aspect ludique de la distribution, qui et Telnet. Un proxy (Polipo) associé
à Tor (pour surfer de façon anonyme) sont recommandés pour faire tourner ces
inclut également quelques jeux). Une images, 1Gb d’espace est requis pour
version 6.0 bêta de cette distribution a est également intégré à la solution.
l’installation sur votre disque dur.
été publiée à la fin du mois de mars, L’environnement de programmation inclut
l’occasion pour nous de découvrir ce PHP 5.4, Perl 5.16, SQLite 3.7. Côté Dans le cadre de cet article, nous avons
projet... sécurité, on trouve le firewall 4MLinux testé une version de 4MLinux 5.1 avec
(basé sur iptables) et l’antivirus ClamAV. GUI intégrée, disponible à l’adresse :
À savoir qu’elle se décline en 4 versions Cette version a été conçue pour les utili- http://4mlinux.com/download.html.
plus spécifiques, dédiées exclusivement sateurs qui ont besoin d’une solution ser-
à chacun des axes décrits précédem-
ment. Chacune intègre le « noyau »
veur pour de petits LAN (chez vous, à la
maison, par exemple...). Une démo de
2. Utilisation
4MLinux de base (4MLinux Core) et cette édition serveur est disponible ici :
s’accompagne d’outils et logiciels plus http://server.4mlinux.com/.
spécifiques. On distingue ainsi :
• 4
 MLinux Game Edition : on y trouve
• 4
 MLinux Rescue Edition, destinée à une petite sélection de shoot’em up, Fig. 1
des activités de maintenance et de comme Abuse, Doom, Heretic, Hexen et
sauvegarde. Elle contient notamment Quake, mais aussi Lincity, les LGames
X File Explorer, Midnight Commander, de Michael Speck (LBreakout, LMarbles,
Partimage, Partclone, TestDisk, LTris...), DOSBox avec quelques jeux Après le processus de démarrage, il vous
GNU Parted, Clam AntiVirus, 7-Zip, DOS de type freeware, ainsi qu’un ému- est demandé de saisir un mot de passe
UNetbootin et InfraRecorder. Les sys- lateur de Commodore C64 (ec64). root. Ceci fait, vous pouvez vous logger
tèmes de fichiers supportés sont btrfs, au système en tant que root et en saisis-
Bon, déjà, l’ISO n’est pas livrée avec le
ext2, ext3, ext4, FAT, HFS, HFS+, jfs, sant le mot de passe précédent (Fig. 1).
PC qui va avec... À vous de dénicher une
Minix, NTFS, ReiserFS et XFS.
machine qui fera office de serveur et faites Vous pouvez commencer par lancer
• 4
 MLinux Multiboot Edition, qui permet en sorte qu’elle soit dotée d’un lecteur de le serveur graphique via la commande
d’installer, via le réseau, les distribu- CD-ROM ! Ensuite on récupère l’ISO de startx ; le gestionnaire de fenêtres uti-
tions suivantes : Debian 6.06, Fedora son choix sur la page http://sourceforge. lisé est JWM. Une barre de lancement
18, Slackware 14.0 et Ubuntu 12.10. net/projects/linux4m/files/6.0/livecd/. intégrée (Wbar) vous permettra de lancer

38 | Linux Pratique n°77  w w w.linux-pratique.com


système & réseau

Clavier français
2.1 Les serveurs
Les différents services pourront être démarrés, stoppés, redé-
Attention, le clavier est en « qwerty » par défaut ! marrés ou testés en ligne de commandes, de la façon suivante :
Officiellement, 4MLinux supporte uniquement l’anglais, mais
pour disposer d’un clavier en français, il est possible d’éditer le Section «InputClass»
fichier /etc/X11/xorg.conf.d/90-keyboard-layout. Identifier «keyboard-all»
conf pour remplacer l’agencement « us » par « fr » : MatchIsKeyboard «on»
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

MatchDevicePath «/dev/input/event*»
Section «InputClass» Driver «evdev»
Identifier «keyboard-all» Option «XkbLayout»     «fr»
MatchIsKeyboard «on» #Option «XkbVariant» «»
MatchDevicePath «/dev/input/event*» Option «XkbOptions» «terminate:ctrl_alt_bksp»
Driver «evdev» EndSection
Option «XkbLayout» «fr»
#Option «XkbVariant» «» Par défaut, aucun des serveurs n’est démarré automatique-
Option «XkbOptions» «terminate:ctrl_alt_bksp» ment lors du boot, mais vous pouvez changer ce comporte-
EndSection ment en éditant le fichier /etc/server/autostart.conf,
par exemple :
Ceci fait, si vous avez déjà lancé le serveur graphique, redé-
marrez-le pour que le changement soit pris en compte. FTP=no
HTTP=yes
SSH=yes
TELNET=no
Fig. 2 PROXY=no
FIREWALL=no
Les fichiers du serveur web sont stockés dans /var/www/. Pour
visualiser les modules PHP qui sont chargés, vous pouvez poin-
ter le navigateur sur l’adresse http://IP.du.serveur/test.php. La
commande httpd test permet de tester l’accès HTML public
ou privé et les scripts CGI.
Concernant le serveur FTP, après l’avoir
démarré, vous ne pourrez uploader des fichiers
qu’après avoir saisi la commande :

upload <username>
Fig. 3
où <username> désigne l’utilisateur qui sera
rapidement quelques applications ; on autorisé à uploader des fichiers sur le serveur.
notera la présence de l’outil de moni- Notez au passage que de nouveaux utilisateurs
toring Conky, qui affiche sur le bureau peuvent être créés sur le système à l’aide de la
quelques informations système (Fig. 2). commande adduser.
Un clic droit affiche le menu qui vous
permettra d’accéder facilement à 2.2 Sauvegardes
l’ensemble des composantes de la distribution : scripts de Comme évoqué plus haut, 4MLinux intègre des scripts de sau-
sauvegarde, anti-virus, gestion des partitions, jeux et outils mul- vegarde automatique, auxquels vous pouvez accéder soit via le
timédias, sans oublier les différents serveurs à votre disposition menu graphique, soit via les commandes :
(FTP, HTTP, SSH et Telnet), que vous pourrez d’ailleurs lancer • f
 sbackup (sauvegarde de fichiers),
tous en même temps via un seul clic (Fig. 3).
• m
 br (sauvegarde du Master Boot Record),
Quelques autres commandes utiles à connaître :
• p
 art (sauvegarde de la table des partitions).
• h elp   : donne accès à quelques rappels et exemples
La commande backup permet quant à elle de sauvegarder des
d’utilisation ; fichiers manuellement.
• mc : pour lancer le navigateur de fichiers Midnight Commander ;
• vi : pour lancer l’éditeur de fichiers ; Conclusion
• a
 ntivir : permet de télécharger et d’installer l’antivirus ClamAV ; Le projet est relativement récent et semble évoluer rapidement.
• netconfig : pour configurer les interfaces réseau ; Il s’agit là d’une solution simple et rapide à mettre en place pour
quiconque a besoin d’un petit serveur web ou FTP ne nécessitant
• i
 nstall2hd : pour installer 4MLinux sur votre disque dur ;
pas de performances démesurées... Une FAQ et quelques élé-
• b
 ackup : pour lancer une sauvegarde sur un disque amovible ments d’aide se trouvent sur le site du projet (http://4mlinux.com/
ou un serveur FTP distant ; help.html). Le développeur de 4MLinux met également quelques
• f
 sbackup : pour sauvegarder toute une partition. tutoriels à disposition sur son blog : http://4mlinux.blogspot.fr/. ▪

w w w.linux-pratique.com  Linux Pratique n°77 | 39


système & réseau
fiche Mémo : Comment installer un
pratique
environnement LAMP (Linux,
Apache, MySQL, PHP) ?
Voici un récapitulatif des commandes à exécuter pour disposer d’un environnement
LAMP fonctionnel en fonction de votre distribution...
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Toutes les manipulations sont à faire en tant que root. Avant toute chose, on commencera par s’assurer que le gestionnaire
de paquets est à jour avec yum update ou aptitude update selon le cas.

Sur Fedora 18 Et à nouveau, on fait en sorte qu’il soit lancé au démarrage et


on démarre le serveur :

1. Installation de MySQL ~# systemctl enable httpd.service


ln -s ‘/usr/lib/systemd/system/httpd.service’ ‘/etc/systemd/
~# yum install mysql-server system/multi-user.target.wants/httpd.service’
Dépendances installées : mysql, mysql-libs, perl… ~# systemctl start httpd.service
et tout un lot de modules Perl. Aucun mot de passe n’est De suite, on peut vérifier que l’installation s’est bien déroulée
demandé lors de l’installation. en pointant son navigateur sur localhost.
Puis, on fait en sorte que le serveur soit lancé au démarrage L’utilisateur par défaut est apache. Le DocumentRoot corres-
du système et on le démarre : pond à /var/www/html. Le fichier de configuration correspond
à /etc/httpd/conf/httpd.conf ; les éléments de configu-
~# systemctl enable mysqld.service
ln -s ‘/usr/lib/systemd/system/mysqld.service’ ‘/etc/systemd/ ration supplémentaires se trouvent dans /etc/httpd/conf.d/.
system/multi-user.target.wants/mysqld.service’
~# systemctl start mysqld.service 3. Installation de PHP
(et éventuellement quelques modules au passage...) :
Ensuite, très important, on définit un mot de passe pour l’uti-
lisateur root via la commande : ~# yum install php php-mysql php-gd
~# mysql_secure_installatio Le fichier de configuration de PHP correspond à /etc/httpd/
conf.d/php.conf. Le fichier d’initialisation définissant le com-
• O
 n vous demande tout d’abord de saisir le mot de passe
portement de PHP correspond à /etc/php.ini.
root ; puisqu’on ne l’a pas encore défini, on tape simple-
ment [Entrée], puis on saisit un nouveau mot de passe. À ce stade, on peut effectuer une petite vérification en créant le
fichier /var/www/html/phpinfo.php qui contiendra :
• P
 ar défaut, une installation MySQL a un utilisateur ano-
nyme, qui permet à n’importe qui de se logger sans pour <?php
autant avoir un compte propre (principalement à des fins phpinfo();
de test). Il est conseillé de retirer cet utilisateur avant ?>
de passer en production. On répond donc « oui » à la
question. Après avoir relancé le serveur web via :

• N
 ormalement, l’utilisateur root est seulement autorisé à se ~# systemctl restart httpd.service
connecter depuis localhost, cela permet de s’assurer que
personne ne puisse obtenir le mot de passe root depuis le ouvrez un navigateur et pointez l’URL : http://localhost/phpinfo.
réseau. On interdit donc à root de se connecter à distance. php. Vous devriez normalement visualiser les notes de version
et la configuration de PHP.
• P
 ar défaut, le serveur MySQL est livré avec une base de
données « test », accessible par tous. Idem ici, on sup- 4. Installation de phpMyAdmin
prime cette base avant de passer en production.
~# yum install phpmyadmin
vOn vous invite ensuite à recharger les tables de privilèges
pour valider tous les changements effectués. La configuration par défaut de phpMyAdmin est décrite dans le
Et votre installation est désormais sécurisée ! fichier /etc/phpMyAdmin/config.inc.php. Le fichier de confi-
guration d’Apache /etc/httpd/conf.d/phpMyAdmin.conf
2. Installation d’Apache 2 n’autorise par défaut que les connexions provenant de localhost.
On pointe son navigateur sur http://localhost/phpmyadmin/ et
~# yum install httpd
on saisit le couple root/mot de passe saisi lors de l’installation
Dépendances installées : apr, apr-util, httpd-tools. de MySQL, puis on arrive sur la page d’accueil de l’application.

40 | Linux Pratique n°77  w w w.linux-pratique.com


système & fiche
réseau
pratique

Sur Debian 6.0 3. Installation de PHP


Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

~# aptitude install php5 php5-mysql


1. Installation de MySQL
Le fichier d’initialisation définissant le comporte-
~# aptitude install mysql-server ment de PHP correspond à /etc/php5/apache2/
Parmi les dépendances installées : libdbd-mysql- php.ini.
perl, libmysqlclient16, mysql-client-5.1, mysql- À ce stade, on peut effectuer une petite vérification
common, mysql-server, mysql-server-core-5.1... en créant le fichier /var/www/apache2-default/
Pendant l’installation, il vous est demandé de saisir un phpinfo.php qui contiendra :
mot de passe pour l’utilisateur root. Après ceci, on exé-
<?php
cute le script de sécurisation fourni : phpinfo();
?>
~# mysql_secure_installation
Après avoir relancé le serveur web via :
• O
 n vous demande tout d’abord de saisir le mot de passe
root ; puisque vous l’avez défini à l’étape précédente, ~# service apache2 restart
vous aurez la possibilité ici de le modifier.
ouvrez un navigateur et pointez l’URL : http://localhost/
• P
 ar défaut, une installation MySQL a un utilisateur ano-
apache2-default/phpinfo.php. Vous devriez normale-
nyme, qui permet à n’importe qui de se logger sans
ment visualiser les notes de version et la configuration
pour autant avoir un compte propre (principalement à
de PHP.
des fins de test). Il est conseillé de retirer cet utilisateur
avant de passer en production. On répond donc « oui »
à la question. 4. Installation de phpMyAdmin
• N
 ormalement, l’utilisateur root est seulement autorisé ~# aptitude install phpmyadmin
à se connecter depuis localhost, cela permet de s’as-
surer que personne ne puisse obtenir le mot de passe Lors de l’installation, on choisit le serveur web adé-
root depuis le réseau. On interdit donc à root de se quat (Apache 2 ou Lighttpd) à configurer automatique-
connecter à distance. ment. Puis, dbconfig-common se charge d’installer
et de configurer une première base de données pour
• P
 ar défaut, le serveur MySQL est livré avec une base
que vous puissiez utiliser phpMyAdmin. On saisit alors
de données « test », accessible par tous. Idem ici, on
le mot de passe pour le compte d’administration qui
supprime cette base avant de passer en production.
servira à créer la base de données MySQL, ainsi que
• O
 n vous invite ensuite à recharger les tables de pri- les utilisateurs (il s’agit du même mot de passe que
vilèges pour valider tous les changements effectués. celui saisi lors de l’installation de mysql-server).
Ensuite, on entre un mot de passe de connexion
Et votre installation est désormais sécurisée !
pour phpMyAdmin sur le serveur de bases de don-
nées (si vous ne saisissez rien, un mot de passe aléa-
2. Installation d’Apache 2 toire est créé). Ceci fait, on pointe son navigateur sur
http://localhost/phpmyadmin/ et on arrive sur la page
~# aptitude install apache2 d’accueil de l’application.
Parmi les dépendances installées : apache2-mpm-worker, La configuration par défaut de phpMyAdmin est décrite
apache2-utils, apache2.2-bin, apache2.2-common… dans le fichier /etc/phpmyadmin/config.inc.php.
Le serveur est démarré dans la foulée. De suite, on peut Le fichier de configuration d’Apache pour phpMyAdmin
vérifier que l’installation s’est bien déroulée en pointant correspond à /etc/phpmyadmin/apache.conf.
son navigateur sur localhost.
Le script /usr/sbin/pma-secure fourni avec l’appli-
L’utilisateur par défaut est www-data. Le fichier de confi- cation permet de changer les permissions du fichier
guration correspond à /etc/apache2/apache2.conf ; de configuration de phpMyAdmin, de façon à ce que
les éléments de configuration supplémentaires se trou- le script d’installation (/usr/share/phpmyadmin/
vent dans /etc/apache2/conf.d/. Comme on peut le setup/index.php) ne puisse pas écrire dans ce
lire dans le fichier /etc/apache2/sites-available, fichier. Le script /usr/sbin/pma-configure effec-
le DocumentRoot correspond à /var/www/. tue la tâche inverse. ▪

w w w.linux-pratique.com  Linux Pratique n°77 | 41


WEB

Tarsnap : stockage
sécurisé dans le Cloud
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Benoît Benedetti

À la lecture de ce titre paradoxal, vous vous demandez à juste


titre comment le stockage « cloud » peut être utilisé de manière
sécurisée. C’est tout l’intérêt de Tarsnap, sujet de cet article.

une politique de sauvegarde stricte, on entre stockage dans le cloud et trans-


peut désirer sauvegarder en externe des parence sur l’encryptage des don-
données sensibles. Le problème est que nées. Colin Percival est expert en ce
tout le monde ne peut pas se payer un domaine, vous pourrez trouver une
data center personnel, auquel il est le seul page dédiée sur la sécurisation des
à avoir accès. C’est donc prendre le risque échanges et du stockage [CRYPTO],
1. Introduction d’héberger ses données sur un serveur, un et vous pourrez vérifier le code source
stockage externe, auquel un tiers peut avoir et remonter les bugs trouvés auprès de
Sans rentrer dans les détails exhaustifs accès et récupérer nos données, même l’auteur, qui propose même des récom-
d’une stratégie de sauvegarde profes- après avoir mis fin à ce service. D’où la penses [BOUNTY]. Bon courage pour
sionnelle digne de ce nom, et commen- nécessité de l’encryptage pour s’assurer trouver une faille critique, la plus forte-
cer à disserter sur les sauvegardes de la confidentialité de ses données. ment récompensée, car une seule faille
incrémentales, totales ou différentielles, de ce type a été découverte depuis les
on peut dégager certaines bonnes pra- Tarsnap tente de répondre à ces pro-
5 ans d’existence de l’outil !
tiques élémentaires : blèmes. Il s’agit d’un outil en ligne de
commandes pour gérer vos sauvegardes En plus de la sécurité, là où Tarsnap
• faire des sauvegardes et les tester distantes. Il intègre un client à installer brille est dans l’optimisation de l’utilisa-
régulièrement, sur votre machine, qui va compresser tion de l’espace disque. Il utilise un sys-
• s tocker un jeu de sauvegardes en et encrypter les données à sauvegar- tème de dé-duplication, qui ne transfère
local, sur un support différent de der, communiquer avec des serveurs du et ne stocke que les nouveaux fichiers,
l’original, service de Tarsnap (des instances EC2 ou leur modification pour chaque nou-
Amazon), serveurs qui vont ensuite stocker velle sauvegarde. Toujours grâce à son
• s tocker un jeu de sauvegardes dans algorithme de dé-duplication, Tarnsap
les données (sur du stockage S3 d’Ama-
un lieu géographique différent. est intéressant par rapport à d’autres
zon). Pour utiliser Tarsnap, vous devrez
Le premier point est évident, mais il donc payer les ressources réseau et stoc- solutions, car chaque sauvegarde
m’arrive tellement de constater son kage utilisées. est indépendante de la précédente :
manque d’application dans la vraie vie, même si les sauvegardes partagent
Oui, vous avez bien lu, Tarsnap est payant
que je préfère le rappeler. des fichiers en commun qui n’ont été
et utilise obligatoirement le cloud proprié-
stockés qu’en un seul exemplaire pour
Pour le deuxième point, sauvegarder taire d’Amazon. C’est un choix de son
gagner de l’espace, vous pouvez sup-
les données d’une machine sur cette auteur, qui n’est autre que Colin Percival,
primer indifféremment une sauvegarde ;
même machine, ça s’appelle une copie, expert sécurité, qui après plusieurs années
Tarsnap, côté serveur, saura quels
en aucun cas une sauvegarde ! Le stoc- à porter la casquette du responsable sécu-
fichiers conserver pour garder com-
kage d’une sauvegarde sur un support rité de FreeBSD, a voulu vivre de ses com-
plètes les sauvegardes restantes. Ceci
local, différent, reste néanmoins simple pétences en cryptographie. Le client n’est
simplifie grandement la stratégie et la
à mettre en place, à l’aide d’un simple pas non plus sous licence libre, mais les
gestion de vos sauvegardes, et évite les
disque dur externe, ou d’un NAS, fait sources sont disponibles et visibles : vous
casse-têtes durant lesquels vous devez
maison ou non. pourrez modifier le code, à condition de
décider si telle ou telle sauvegarde peut
C’est pour le dernier cas que les choses n’utiliser le code modifié qu’avec le service
être supprimée sans risque. Tarsnap
se compliquent un peu. Vous allez me Tarsnap.
optimise de toute façon tellement l’utili-
dire que c’est pousser le bouchon un peu Je me doute que cela représente une sation de l’espace disque, que la ques-
loin. Mais même sans être paranoïaque grande entorse à l’esprit de l’open source, tion de la suppression d’une sauvegarde
ou une entreprise qui doit respecter mais Tarsnap est le meilleur compromis ne devrait même plus se poser !

42 | Linux Pratique n°77  w w w.linux-pratique.com


WEB

Pour utiliser Tarsnap, vous devrez com- allons faire les choses bien, et vérifier l’archive récupérée. Commencez par ins-
mencer par créer un compte [COMPTE] taller la clef GPG publique du projet :
et ajouter du crédit par tranche de 5 dol-
serveurperso$ wget https://www.tarsnap.com/tarsnap-signing-key.asc -O - | gpg --import -
lars. Le service coûte 0.30 cents par
giga de stockage mensuel et 0.30 cents Le fichier contient la signature SHA256 de l’archive de Tarsnap :
par giga de bande passante (vous payez
seulement le service Tarsnap, les frais serveurperso$ cd /tmp
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

serveurperso$ wget https://www.tarsnap.com/download/tarsnap-sigs-1.0.33.asc


d’utilisation d’Amazon sont inclus). Cela serveurperso$ gpg --decrypt tarsnap-sigs-1.0.33.asc
revient un peu plus cher que d’utiliser SHA256 (tarsnap-autoconf-1.0.33.tgz) = 0c0d825a8c9695fc8d44c5d8c3cd17299c248377c9c7b91fdb49d73e54ae0b7d
directement Amazon, mais cela com- gpg: Signature faite le sam. 23 mars 2013 15:42:40 CET avec la clé RSA ID 2F102ABB
pense la sécurité et la dé-duplication gpg: Bonne signature de « Tarsnap source code signing key (Colin Percival) <cperciva@tarsnap.com> »
gpg: ATTENTION: Cette clé n’est pas certifiée avec une signature de confiance !
fournies par le service. gpg: Rien ne dit que la signature appartient à son propriétaire.
Vous n’êtes pas face à une politique de Empreinte de clé principale: B881 A3F3 5074 02F4 748D DE1C 5F96 DA67 2F10 2ABB
faire payer pour un abonnement men- Vérifiez que la signature attendue correspond à celle de l’archive source de
suel, vous payez seulement ce que vous Tarsnap à récupérer :
utilisez. De plus, tous les calculs sont
fait 15 chiffres après la virgule, arron- serveurperso$ wget https://www.tarsnap.com/download/tarsnap-autoconf-1.0.33.tgz
dis au chiffre inférieur, pour ne pas voler serveurperso$ sha256sum tarsnap-autoconf-1.0.33.tgz
les utilisateurs avec des calculs et des 0c0d825a8c9695fc8d44c5d8c3cd17299c248377c9c7b91fdb49d73e54ae0b7d tarsnap-autoconf-1.0.33.tgz
arrondis à deux chiffres après la virgule. Si les deux signatures sont équivalentes, l’archive récupérée est sûre, et est bien
Imaginons que vous ayez environ 1Go l’archive source officielle. Vous pouvez la décompresser et la compiler, en ayant
de données à sauvegarder quotidien- installé les dépendances nécessaires au préalable :
nement, avec 100Mo de changements serveurperso$ sudo aptitude install -y build-essential libssl-dev zlib1g-dev e2fslibs-dev
quotidiens à envoyer, cela vous revien- serveurperso$ tar xzf tarsnap-autoconf-1.0.33.tgz
dra à à peine plus de 2 euros par mois. serveurperso$ cd tarsnap-autoconf-1.0.33/
Vous aurez peut-être moins d’1Go à serveurperso$ ./configure
sauvegarder, dont les données chan- serveurperso$ sudo make all install clean
gent moins souvent et vous utiliserez Les différents fichiers sont installés dans /usr/local. Les binaires dans /usr/
une sauvegarde hebdomadaire : dans local/bin et les manuels dans /usr/local/man. Vous pourrez donc exécuter
ce cas, votre premier versement de 5 les différentes commandes tarsnap* et visualiser leurs pages de manuel.
dollars vous durera des mois. Si votre
crédit venait à devenir nul, des e-mails
vous seraient envoyés pendant 14 jours 3. Enregistrement d’une machine
pour vous avertir. Au bout de ce délai, Un fichier de configuration de base est disponible dans /usr/local/etc/tarsnap.
votre compte et toutes ses données conf.sample. Copiez-le en un fichier de configuration définitif /usr/local/
seraient supprimés [FAQ]. etc/tarsnap.conf :

serveurperso$ sudo cp /usr/local/etc/tarsnap.conf.sample /usr/local/etc/tarsnap.conf


Note
Vous pouvez laisser les options de configuration par défaut. Parmi celles-ci, tarsnap
Je ne connais pas l’auteur du projet,
s’attend à utiliser une clé /root/tarsnap.key, qui lui permet de s’authentifier aux
je n’ai jamais été en contact avec lui,
serveurs de Tarsnap. Pour générer une telle clé, utilisez la commande tarsnap-
de loin ou de près. Comprenez que
keygen, en précisant l’e-mail et le mot de passe de votre compte Tarsnap :
si je parle de ce service payant, c’est
parce que j’estime qu’il est d’intérêt serveurperso$ sudo tarsnap-keygen --keyfile /root/tarsnap.key --user moi@mail.fr --machine
pour les lecteurs de ce magazine. serveurperso
Je ne le fais pas suite à une faveur [sudo] password for user:
de son auteur, et encore moins dans Enter tarsnap account password:
l’optique d’un éventuel dédommage- Cette clé encrypte et signe vos sauvegardes, elle est indispensable pour pouvoir
ment de sa part. utiliser, lire ou supprimer les sauvegardes créées avec cette clé. C’est l’intérêt de
Tarsnap dans une optique de sécurité, pour éviter à une personne tierce d’exploi-
ter vos sauvegardes. Mais cela vaut aussi pour vous : sans elle, toutes les sauve-
2. Installation gardes associées seront inexploitables. Alors stockez-la dans un endroit sûr, ou
La version utilisée dans cet article imprimez-la, c’est un simple fichier texte.
est la version 1.0.33. Elle se présente Dans la commande précédente, nous avons créé une clé sur un serveur fictif
sous la forme d’une archive source à serveurperso, à l’aide de sudo, qui sera encore utilisé plus loin avec Tarsnap pour
compiler. Étant donné que Tarsnap sauvegarder les fichiers sensibles de ce serveur fictif. La sauvegarde de données
met l’accent sur la sécurité, nous personnelles utilisateur est aussi un cas d’utilisation classique de Tarsnap ; dans ce

w w w.linux-pratique.com  Linux Pratique n°77 | 43


WEB Tarsnap : stockage sécurisé dans le Cloud

cas, les fichiers à sauvegarder sont dans le dossier personnel


serveurperso$ sudo tarsnap -c -f backup2 /etc /var
de l’utilisateur courant et ne nécessitent pas les droits root via Total size Compressed size
sudo. C’est l’utilisation que j’en ai depuis ma machine de tra- All archives 337510512 122482394
vail personnelle. Nous allons enregistrer une nouvelle machine (unique data) 159537438 58022479
This archive 168756280 61241286
fictive machineperso, sous l’identité d’un utilisateur non privi- New data 257912 119020
légié qui désire sauvegarder ses données personnelles. Après
avoir suivi la procédure d’installation de la section précédente Cette création d’une nouvelle archive est plus rapide, car les
données sont comparées avec vos archives déjà présentes sur
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

sur cette nouvelle machine, commencez par copier le fichier


de configuration de base dans le répertoire personnel de votre les serveurs de Tarsnap, et seuls les nouveaux fichiers ou les
utilisateur : modifications par rapport à celles-ci sont inclus dans la nou-
velle archive. On peut observer tout cela dans les statistiques :
machineperso$ cp /usr/local/etc/tarsnap.conf.sample ~/.tarsnaprc la taille réelle des données sauvegardées a doublé (ligne All
Puis, enregistrez cette nouvelle machine : archives de la colonne Total size), mais les données
réelles à sauvegarder pour cette archive sont moindres (ligne
machineperso$ sudo tarsnap-keygen --keyfile ~/.tarsnap.key New data de la colonne Total size). Ce qui fait qu’au final,
--user moi@mail.fr --machine machineperso la taille des données uniques sauvegardées est minimisée (ligne
Modifiez la variable keyfile du fichier de configuration pour (unique data), colonne Total size). Ajoutez à cela la taille
indiquer le chemin de la clé générée avec la commande une fois compressée, on obtient une optimisation maximale de
précédente : l’utilisation de la bande passante et de l’espace disque.
Pour lister toutes vos archives disponibles :
...
# Tarsnap key file serveurperso$ sudo tarsnap --list-archives
#keyfile /root/tarsnap.key backup2
keyfile ~/.tarsnap.key
... backup1
Pour lister le contenu d’une archive, utilisez l’option -t :

4. Utilisation serveurperso$ sudo tarsnap -t -f backup1

4.1 Les bases Pour la récupération des données, il existe l’option -r et l’option
-x. Avec -r, le contenu de l’archive est renvoyé sur la sortie
Le synopsis de la commande tarsnap est très proche de
standard au format tar. En utilisant un redirection, vous pouvez
tar. Pour exécuter une sauvegarde, on utilise l’option -c, on
donc créer en local une archive tar de vos données :
précise le nom de celle-ci par l’option -f, puis les différents
dossiers ou fichiers à sauvegarder : serveurperso$ sudo tarsnap -r -f backup1 /etc/init.d/ > /tmp/backup1.tar
serveurperso$ sudo tarsnap -c -f backup1 /etc /var Ou une version compressée, en utilisant un tube vers gzip :
Total size Compressed size
All archives 168754232 61241108 serveurperso$ sudo tarsnap -r -f backup1 /etc/init.d/ | gzip > /tmp/
(unique data) 159279526 57903459 backup1.tar.gz
This archive 168754232 61241108 L’option -r est très longue et vous préférez sûrement utiliser
New data 159279526 57903459 la commande -x qui extrait directement les données :

serveurperso$ sudo tarsnap -x -f backup2


Note
Comprenez bien que l’archive backup1 n’existe absolu- Tout comme tar, tarsnap n’inclut pas la racine (/) lors de
ment pas physiquement, localement sur la machine. Les la sauvegarde, et extrait les fichiers dans le répertoire cou-
données sont compressées et envoyées vers les serveurs rant. Vous pouvez vous placer dans /tmp, par exemple, par
de Tarsnap et sont récupérables sous le nom backup1. sécurité lors de l’extraction. Ou utiliser l’option -C pour chan-
ger le répertoire de travail (l’option -C est utilisable lors de la
Une fois l’archive créée, les informations d’utilisation disque de création d’une archive également) :
backup1 sont affichées, ainsi que les informations d’utilisation
serveurperso$ sudo tarsnap -x -f backup2 -C /tmp
globale de toutes les archives. On voit clairement la taille réelle
des données sur le disque et l’utilisation moindre des archives, Toujours de manière similaire à tar, vous pouvez limiter l’extrac-
une fois les données compressées, sur les serveurs de Tarsnap. tion aux fichiers et dossiers en particulier que vous souhaitez
Vous pouvez afficher les statistiques à tout moment : extraire :

serveurperso$ sudo tarsnap --print-stats serveurperso$ sudo tarsnap -x -f backup2 /etc


serveurperso$ sudo tarsnap --print-stats -f backup1
J’ai utilisé backup2 comme archive dans les exemples précé-
#statistiques détaillées d’une archive en particulier
dents, car si vous listez les fichiers décompressés, vous verrez
Sauvegardez à nouveau les mêmes données, en utilisant que tous les fichiers de /etc et /var sont récupérés. Il faut
une nouvelle archive backup2 : bien comprendre que, bien que seules les différences ont été

44 | Linux Pratique n°77  w w w.linux-pratique.com


WEB

récupérées et sauvegardées à la créa-


tion de backup2, backup2 n’est pas
Je vous invite donc à passer par une
suppression manuelle, après vous être
Conclusion
une sauvegarde partielle basée sur assurés de pouvoir restaurer à partir des Je suis un jeune utilisateur de Tarsnap
backup1 ! Vous pouvez donc supprimer archives que vous souhaitez conserver (depuis mi-2012) et ne stocke que
backup1 en toute tranquillité, avec l’op- (est-ce que je vous ai déjà dit de toujours quelques centaines de Mo de données
tion -d : tester vos sauvegardes ?). critiques, sauvegardées hebdomadaire-
ment. J’ai consommé moins de 2 dollars
serveurperso$ sudo tarsnap -d -f backup1
4.3 Permissions de mon compte, et encore, consomma-
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Total size Compressed size tion due aux tests lors de ma découverte
All archives 168756280 61241286 Les archives créées via Tarsnap sont liées
du logiciel et aux tests lors de la rédac-
(unique data) 159281574 57903637 à une clé, et non pas à une machine ou un
tion de l’article.
This archive 168754232 61241108 utilisateur système de la machine. Dans
Deleted data 255864 118842 notre exemple, nos machines utilisant une Vous pouvez d’ailleurs afficher un réca-
clé Tarsnap différente, les commandes pitulatif de votre consommation globale,
Seules les données particulières et ou par machine, depuis votre compte sur
Tarsnap travaillent chacune sur un conte-
uniques à backup1 (ligne Deleted le site officiel et l’exporter au format CSV
neur d’archives différent. Les clés étant liées
data) sont supprimées depuis le ser- (Les données sont mises à jour quoti-
à un même compte Tarsnap, la somme des
veur. Toutes les données appartenant diennement vers minuit, temps UTC). Le
ressources réseau et disque consommées
à backup2 sont conservées et peuvent projet pêche un peu par manque d’ou-
dans les conteneurs via les différentes clés
continuer à être récupérées avec -r til en ligne de commandes pour afficher
est facturée sur ce seul et même compte.
ou -x. ces données tarifaires, gageons que l’au-
Pour revenir à notre exemple, si machi- teur s’attelle à cette tâche.
4.2 Automatisation neperso est ma machine de travail princi-
pale, depuis laquelle je veux avoir une vision Bien que non totalement libre, Tarsnap
Tout comme tar, et dans l’esprit Unix,
centrale de toutes mes archives, il me fau- mérite qu’on s’y intéresse si l’on est à la
tarsnap est un outil qui fait une chose
dra récupérer la clé de serveurperso en recherche d’une solution de sauvegarde
et le fait bien. Si vous voulez automatiser
local, à l’aide de scp ou d’un copier-coller distante sécurisée et transparente sur les
la création ou la suppression d’archive, méthodes d’encryptage utilisées. Son
il faudra passer par des scripts maison. par exemple. Vous pourrez ensuite utiliser
tarsnap avec l’option --keyfile pour ne auteur n’est pas un mercenaire du libre,
Pour la création d’archive à intervalles certains des outils qu’il a eus à dévelop-
réguliers, une simple tâche cron fera l’af- pas utiliser la clé configurée par défaut :
per pour créer le service sont d’ailleurs
faire. Sans rentrer dans l’écriture d’une machineperso$ tarsnap --list-archives sous licence libre, comme la solution de
tâche complexe, le script suivant, enre- backup-perso stockage Kivaloo et le pipe réseau sécu-
gistré dans le fichier /etc/cron.daily/ backup-perso risé Spiped [TECH]. Et il a fait évoluer
tarsnap sera un bon point de départ : machineperso$ tarsnap --list-archives
--keyfile ~/serveur.key et apporté des contributions aux librai-
#!/bin/bash backup2 ries externes déjà existantes, utilisées
JOUR=$(date +%y-%m-%d) par son service, comme libarchive
Nous pouvons maintenant lister, lire, extraire et scrypt.
tarsnap --quiet --no-print-stats -c -f
et supprimer les archives du serveur depuis
backup-${JOUR} /etc J’espère que ces derniers arguments
une autre machine.
Donnez les droits d’exécution au script : vous auront convaincu de l’utiliser, lais-
Toujours dans cette optique, imaginons que sant votre conscience de libriste tran-
serveurperso$ sudo chmod u+x /etc/cron. sur le serveur nous souhaitions seulement quille, et vous évitant de vous flageller
daily/tarsnap créer et récupérer des sauvegardes, et qu’il au nom de Saint IGNUcius [IGNUCIUS]
soit impossible de les supprimer, afin d’évi- à chaque utilisation. ▪
Une archive nommée sur le modèle ter qu’un intrus ayant pris le contrôle de la
backup-aa-mm-jj sera créée quotidien- machine supprime vos sauvegardes. La
nement. J’ai précisé les options --quiet commande tarsnap-keymgmt permet Références
(suppression des messages d’avertisse- de gérer les permissions d’une clé. Par
ment) et --no-print-stats (pour ne [CRYPTO] http://www.tarsnap.
exemple, pour générer une nouvelle clé com/crypto.html
pas afficher les statistiques), afin de sup- pour notre serveur à partir de la clé originale
primer les messages de la sortie standard /root/tarsnap.key, qui ne puisse que [BOUNTY] https://www.tarsnap.
et éviter de recevoir des e-mails inutiles ; com/bugbounty.html
créer (-w) et extraire (-r, qui permet égale-
vous recevrez quand même les e-mails ment la lecture) des archives : [COMPTE] https://www.tarsnap.
en cas d’erreur. com/account.html
serveurperso$ sudo tarsnap-keymgmt
Pour ce qui est de la suppression, la [FAQ] https://www.tarsnap.com/
--outkeyfile /root/tarsnap-minimal.key -w
tâche s’avérera plus complexe et dépen- faq.html
-r /root/tarsnap.key
dra de votre politique de rétention. Mais
[TECH] https://www.tarsnap.
l’utilisation des ressources est tellement Modifiez ensuite le fichier de configu-
com/technical.html
optimisée sur les serveurs de Tarsnap, ration pour utiliser cette nouvelle clé
que vous pourrez vous permettre le luxe /root/tarsnap-minimal.key. La clé [IGNUCIUS] http://stallman.org/
de garder des archives très anciennes. originale pourra être retirée du serveur. saint.html

w w w.linux-pratique.com  Linux Pratique n°77 | 45


WEB

Mettre en place une


base de connaissances
avec phpMyFAQ
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Benoît Benedetti

Que ce soit pour un usage interne ou pour la mettre à disposition de ses utilisateurs,
l’installation d’une foire aux questions (FAQ) est bénéfique pour toute structure. En effet,
posséder une FAQ, c’est mettre à disposition de vos utilisateurs, clients, ou personnels, une
base de connaissances pour répondre au plus vite aux problèmes les plus courants.

L’application phpMyFAQ est un pro-


jet open source qui permet de mettre
1. Installation
en place sa propre FAQ. Initiée il y a Nous installerons Apache sous Debian pour servir les fichiers PHP de l’application,
une dizaine d’années, à la base appli- et une base MySQL pour héberger les données de notre FAQ. Commençons par
cation PHP/MySQL comme son nom installer les paquetages nécessaires :
l’indique, elle a évolué depuis. Elle sup-
porte désormais d’autres serveurs de $ sudo aptitude install -y unzip apache2 libapache2-mod-php5 php5-gd php5-curl
bases de données et possède de nom- php5-mysql mysql-server
breuses autres fonctionnalités [1] : $ sudo /etc/init.d/apache2 restart

• C
 réation de questions/réponses, Nous pouvons ensuite créer une base et un utilisateur MySQL :
questions ouvertes,
$ mysql -u root -p -e «CREATE DATABASE phpmyfaq;»
• G
 estion des commentaires pour $ mysql -u root -p -e «GRANT ALL ON phpmyfaq.* TO ‘utilisateur’@’localhost’
améliorer les réponses, IDENTIFIED BY ‘password’;»
• G
 estion multi-utilisateur, groupes et $ sudo mysqladmin flush-privileges
permissions, Nous pouvons récupérer l’archive de phpMyFAQ [2]. La version 2.8.0 était seu-
• S
 upport des catégories et sous- lement sortie en version release candidate 3 à la rédaction de cet article, version
catégories, de développement récupérable comme suit :
• Anti-spam, système de captcha, $ wget http://www.phpmyfaq.de/download/phpMyFAQ-development.zip -O /tmp/phpMyFAQ.zip
• S
 upport MySQL, PostgreSQL, MS
phpMyFAQ devrait être disponible en version stable lorsque vous lirez ces lignes,
SQL et SQLite (entre autres),
version que vous pourrez télécharger comme suit quand elle sera disponible (le
• S
 upporte l’authentification depuis un lien pointe pour l’instant vers la version stable 2.7.9) :
annuaire LDAP et Active Directory.
$ wget http://www.phpmyfaq.de/download/phpMyFAQ-latest.zip -O /tmp/phpMyFAQ-latest.zip
La version de phpMyFAQ que nous
allons aborder dans cet article est la Une fois l’archive récupérée, décompressez-la dans votre Docum entRoot
toute récente 2.8, qui comporte de Apache :
nombreuses nouveautés :
$ sudo unzip -x /tmp/phpMyFAQ.zip -d /var/www/
• U
 tilisation de Twitter Bootstrap
$ sudo chown -R www-data /var/www/phpmyfaq/
comme framework CSS,
• Gestion multi-site, Pour poursuivre l’installation, ouvrez votre navigateur à l’adresse http://ip_de_
votre_serveur/phpmyfaq/install/setup.php. Dans la page de configuration, indi-
• G
 estion des dépendances PHP avec quez les paramètres de connexion à la base de données. Créez également un
Composer, utilisateur, en précisant son identifiant et son mot de passe, utilisateur qui aura
• A
 mélioration des processus d’instal- les droits d’administration sur l’application. Validez, vous êtes redirigé vers une
lation et de sauvegarde. page qui vous propose un questionnaire optionnel. Cette page affiche également

46 | Linux Pratique n°77  w w w.linux-pratique.com


WEB

les sauvegardes, etc.) ou de gestion


des différents contenus (catégories,
articles, etc.).
Pour faciliter la gestion des droits
utilisateurs, vous pouvez utiliser les
groupes si vous avez activé cette
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Fig. 1 fonctionnalité à l’installation. De la


même manière, commencez par créer
un groupe. Vous pourrez ensuite lui
ajouter des utilisateurs et lui appliquer
des droits.

sous-sections de la
5. Contenu
section en cours. C’est la section d’administration la plus
Par défaut, vous importante. Il vous faut commencer
êtes dans la sec- par ajouter au moins une catégorie. Il
tion Accueil . Les faut lui donner un nom, une descrip-
dif férentes sous - tion, un administrateur qui sera chargé
sections du menu de la gérer. De plus, il faut indiquer
Fig. 2 latéral de cette page des permissions sur son utilisation :
d’accueil redirigent est-elle publique ou réservée à un
vers les tâches utilisateur (ou groupe d’utilisateurs si
les plus courantes vous avez activé cette fonctionnalité) ?
les liens vers la FAQ elle-même, fraî- d’administration de votre installation.
Une catégorie disponible, vous pou-
chement installée, ainsi que vers son La partie centrale affiche par défaut
vez lui ajouter un article. Un article
backend d’administration. un résumé des informations de votre
étant en fait une question accompa-
installation. Les différents liens de ces
gnée de sa réponse. Un article peut
informations vous renvoient vers les
2. L’interface deux sections les plus importantes, être ajouté à une catégorie par le ou
les administrateurs de cette catégo-
celles dans lesquelles vous passe-
Cliquez sur le lien amenant vers la rie depuis l’interface d’administration
rez le plus de votre temps d’adminis-
FAQ elle-même. La page d’accueil (Fig. 4). Un article peut aussi être pro-
tration : les sections Utilisateurs et
de votre FAQ comprend un menu posé depuis le frontend de votre FAQ,
Contenu.
supérieur, caractéristique de Twitter en cliquant sur Ajout FAQ (Fig. 5). Un
Bootsrap, et une partie centrale affi- utilisateur non enregistré ne pouvant
chant les dif férentes entrées de 4. Utilisateurs proposer un article que pour une caté-
votre FAQ (Fig. 1). Cette partie est gorie de type publique. À l’adminis-
Cette section permet de gérer vos uti-
vide, vous ne pouvez effectuer de trateur de la catégorie de décider s’il
lisateurs. Il vous faut d’abord ajouter
recherche, ni proposer de nouvelle valide l’article et autorise sa publica-
un utilisateur, pour pouvoir ensuite
entrée, car il vous faut d’abord confi- tion sur le site.
éditer son compte (bouton Lister tous
gurer votre installation et en particu-
les utilisateurs) et lui ajouter des droits Pour valider un article, rendez-vous
lier, ajouter des catégories, qui vont
(Fig. 3). Par défaut, un utilisateur ne dans Éditer un ar ticle , du menu
contenir vos différentes questions/
possède aucun droit, vous devez Contenu. À partir de cette section,
réponses. Pour cela, connectez-vous
donc lui donner les droits adéquats. vous pourrez également supprimer
à l’interface d’administration, avec
Que ce soit des droits d’administration ou modifier un article. Qu’il soit à l’ori-
l’utilisateur administrateur créé pen-
de l’installation (gérer les utilisateurs, gine de sa création, ou que ce soit lors
dant la phase d’installation, via le lien
Connexion en haut à droite, puis cli-
quez sur le lien Administration.

3. Utilisation
Dans l’interface d’administration, on
retrouve un menu supérieur, différent
car composé de sections pour gérer
votre installation (Fig. 2). Dans la par- Fig. 3
tie principale, un menu latéral liste les

w w w.linux-pratique.com  Linux Pratique n°77 | 47


Mettre en place une base de connaissances
WEB avec phpMyFAQ
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Fig. 4

Fig. 5

du processus de validation suite à une ouvertes proposées pour les reformuler, ou créer un article à partir de celles-ci,
proposition, un administrateur peut en apportant lui-même sa réponse.
paramétrer plusieurs fonctionnalités Vous pouvez faire des annonces sur votre FAQ, depuis le menu Éditer une nou-
pour un article : commentaires, inter- veauté. Elles apparaîtront sur la page d’accueil du frontend (Fig. 7). La sous-sec-
valle de visibilité, utilisation de tags ou tion Glossaire du menu Contenu, permet de créer un glossaire si le besoin s’en
de mots-clés, etc. fait sentir pour aider vos utilisateurs (Fig. 8).
Une question ouverte est une ques-
tion posée par un utilisateur depuis le
frontend de votre FAQ, en cliquant sur
le menu Poser une question (Fig. 6).
Question ouverte, car question pour Fig. 7
laquelle il est à la recherche d’une
réponse. La question apparaîtra dans
le menu Questions ouvertes du fron-
tend, depuis lequel d’autres utilisa-
teurs pourront apporter leur réponse
pour participer à sa résolution. Au Fig. 8
choix de l’administrateur de la conver-
tir en un article depuis le menu Éditer
un article, si la résolution apportée lui
convient.
Depuis Éditer les questions ouvertes 6. Parcourir la
du backend, l’administrateur peut
supprimer ou modifier les questions FAQ
Alimenter correctement votre FAQ
et gérer les entrées est une bonne
chose. Que vos utilisateurs puissent facilement trouver l’information qui les inté-
resse est tout aussi important. Dans ce sens, la page d’accueil affiche clairement
le contenu de votre FAQ (Fig. 9) : les annonces, les derniers articles, les articles
les plus populaires sont mis en valeur, et d’autres peuvent être épinglés si vous
jugez que ce sont des questions sur lesquelles vos utilisateurs vous enquiquinent
demandent gentiment votre aide régulièrement.
La boîte de dialogue de recherche permet de faire une requête sur toutes les
entrées de votre FAQ, si l’information recherchée n’est pas directement dispo-
Fig. 6 nible sur la page d’accueil. Il faut cliquer sur Recherche Avancée pour choisir une
catégorie en particulier dans laquelle faire sa recherche et voir les termes les plus
recherchés (Fig. 10). À partir de cette page, vous pourrez également utiliser votre
FAQ comme moteur de recherche pour Firefox et Internet Explorer, car phpMyFAQ
est compatible OpenSearch.

48 | Linux Pratique n°77  w w w.linux-pratique.com


WEB

Fig. 9
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Conclusion
Fig. 10 Il existe plusieurs autres projets équivalents à phpMyFAQ et
certaines extensions sont disponibles pour mettre en place
et intégrer simplement et rapidement un système de FAQ
aux CMS les plus connus. Néanmoins, dans la pure tradition
Unix, phpMyFAQ fait une chose et le fait bien.
7. Configuration Le projet existe depuis de nombreuses années et bien qu’il
Certains paramètres de configuration, variant moins ou plus soit porté par un développeur, celui-ci a créé une commu-
sensibles, sont uniquement accessibles depuis les fichiers nauté solide de contributeurs qui lui assure sa pérennité. La
du dossier config de votre installation. Ainsi, les para- feuille de route est d’ailleurs disponible [3] pour les années et
mètres de configuration à la base de données peuvent être versions futures du projet. L’utilisation de méthodes de déve-
modifiés dans le fichier config/database.php. Assurez- loppement standardisées comme jQuery, LESS et Twitter
vous d’ailleurs que ce fichier ne soit visible que par le ser- Boostrap est un plus pour assurer son adoption. Le chargeur
veur web : de classes de Symfony 2 vient d’être préféré à un chargeur
développé en interne, premier pas dans l’optique de baser
$ sudo chown www-data /var/www/phpmyfaq/config/database.php complètement le projet sur le framework Symfony 2 et d’uti-
$ sudo chmod 400 /var/www/phpmyfaq/config/database.php liser Twig comme moteur de templates. Vous pourrez donc
développer facilement votre propre thème, en vous inspi-
Des paramètres plus généraux sont contenus dans config/
constants.php (fuseau horaire, durée d’une session, etc.) rant du thème par défaut visible dans le dossier assets/
et la configuration de la connexion LDAP est accessible template/default. Vous trouverez les technologies uti-
dans config/constants_ldap.php si vous l’avez acti- lisées actuellement dans phpMyFAQ sur le site officiel [4],
vée dans l’interface d’administration. ainsi que les différentes informations pour pouvoir contribuer
à ce projet. ▪

8. Maintenance
Références
Le menu Statistiques vous permet d’auditer les sessions
et l’activité de votre installation. Le menu Export vous per- [1] h
 ttp://www.phpmyfaq.de/features.php
met d’exporter les entrées de votre FAQ au format PDF ou [2] h
 ttp://www.phpmyfaq.de/download.php
HTML, pour en faciliter la consultation en mode hors-ligne
à vos utilisateurs. Côté maintenance, le menu Sauvegarde [3] http://www.phpmyfaq.de/roadmap.php
permet d’exporter au format SQL les entrées ou les logs
[4] h
 ttp://www.phpmyfaq.de/development.php
de votre FAQ, ou de restaurer un tel fichier de sauvegarde.

w w w.linux-pratique.com  Linux Pratique n°77 | 49


geek

Réaliser des titres


animés pour
OpenShot à l’aide de
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Blender
Yann Morère

Blender, maintenant, vous commencez à connaître dans Linux Pratique. Sur un nouvel
exemple utilisant le moteur physique, nous allons voir comment intégrer une animation
comme titre animé pour OpenShot.

1. Introduction Nous aborderons donc plusieurs parties


dans cet article. La première concer-
OpenShot. Mais il y eu une for te
demande des utilisateurs pour dispo-
La version 1.4.3 d’OpenShot est nera la réalisation de l’animation avec ser de cette fonctionnalité directement
sortie le 1er octobre 2012. Ce n’est Blender. Ensuite, nous verrons com- dans OpenShot. Il a donc implémenter
pas une révision majeure, même si ment l’automatiser à l’aide de l’API et le titrage 3D, mais toujours en gardant
de nombreuses fonctionnalités ont d’un script. Puis, après avoir décrit le Blender pour rendre les images.
été ajoutées  [1]. Depuis le début, fonctionnement et l’interface des titres Pour cela, il utilise des scripts Python en
Jonathan Thomas, le développeur à animés dans OpenShot, nous verrons coordination avec un fichier Blender et un
l’origine du projet, a utilisé Blender en comment ajouter votre animation. fichier XML chargé de générer l’interface
corrélation avec OpenShot. En effet, Cela va sans dire, mais quelques bases graphique spécifique à chaque « titre
il utilisait à titre personnel Blender en programmation et Blender vous animé » dans OpenShot. Cette interface
pour réaliser quelques titres animés. seront nécessaires pour suivre la suite permet à l’utilisateur de configurer son
Mais cette fonctionnalité, à l’époque, de l’article. propre titre et ensuite de lancer le calcul
n’était pas encore intégrée dans de l’animation. Cette dernière est compo-
OpenShot. Il a donc eu l’idée de relier sée d’une série d’images qui sera impor-
les deux logiciels. C’est effectivement Note
tée dans les fichiers du projet OpenShot.
assez intelligent, dans le sens où Normalement, si vous avez lu mes
OpenShot est développé en Python, deux précédents articles sur Blender, Cette interface en XML permet de
et Blender possède son API dans le vous ne devriez pas avoir trop de configurer le texte, les couleurs et aussi
même langage. L’interaction entre les problèmes :-). les options spécifiques à chaque titre.
deux logiciels sera alors facilitée. La figure 1 montre l’interface de confi-
guration du « Titre explosif ».
Dans OpenShot, il est maintenant
possible de créer des titres animés 2. Histoire et Tous les fichiers utiles aux titres ani-
qui utiliseront tout la puissance de fonctionnement des més sont localisés dans le répertoire
/usr/share/pyshared/openshot/
Blender pour le rendu.
Le but de cet article est de vous mon-
titres animés blender sur une distribution Ubuntu :

trer comment intégrer une de vos Afin de comprendre comment fonc- $ tree -d /usr/share/pyshared/openshot/
animations réalisées avec Blender tionne la génération des titres animés blender
comme titre animé pour OpenShot. dans OpenShot, revenons sur leur his- /usr/share/pyshared/openshot/blender
Cela pourrait être une première par- toire. Dans une interview donnée à Linux ├── blend
ticipation à ce logiciel et ainsi vous Action Show  [3], Jonathan explique ├── earth
permettre de devenir acteur, et non qu’il utilisait Blender de manière sépa- ├── icons
plus simple utilisateur, de logiciels rée pour réaliser ses titrages 3D, puis └── scripts
libres. les intégrait dans son montage avec 4 directories

50 | Linux Pratique n°77  w w w.linux-pratique.com


geek

Le réper toire ble n d e r contient


les f ichiers XML des inter faces
graphiques des titres. Le réper-
toire blend va contenir les fichiers
Blender originaux contenant l’anima-
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

tion sur un texte « générique » ; le


répertoire earth contient les images
de la NASA servant à produire le
titre «  Carte du Monde (photoréa-
liste) » ; le répertoire icons contient
les icônes affichées dans l’interface
des titres animés et le répertoire
scripts contient des scripts char-
gés de faire l’interface entre OpenShot
et Blender. Ce sont ces fichiers qui
sont le plus difficile à produire, car
ce sont eux qui contiennent toute
l’automatisation et les commandes
de l’API de Blender qui permet-
tent de modifier le fichier original de
l’animation. Fig. 1
Lorsque l’utilisateur choisit et confi-
gure l’un des titres, un sous-réper-
toire temp o raire e st c réé dans
~/.openshot/blender : Blender command: /home/yann/Téléchargements/blender-2.62-linux-glibc27-x86_64/blender -b ‘/usr/lib/
pymodules/python2.7/openshot/blender/blend/explode.blend’ -P ‘/home/yann/.openshot/blender/cdd6b89e-
$ tree .openshot/ 1439-11e2-a257-0024d6b0a314/explode.py’
update_image: /home/yann/.openshot/blender/cdd6b89e-1439-11e2-a257-0024d6b0a314/TitleFileName0075.png
.openshot/
Blender render thread finished
├── blender
│   ├── c49a6dca-1439-11e2-a257- La ligne précédente nous indique qu’OpenShot lance Blender en mode console
0024d6b0a314 avec deux paramètres :
│   │   ├── dissolve.py
• -
 b indique le fichier Blender à charger et à « rendre » en arrière-plan. Ceci per-
│   │   └── TitleFileName0064.png
met de continuer d’utiliser OpenShot, pendant que le titre est calculé ;
│   └── cdd6b89e-1439-11e2-a257-
0024d6b0a314 • -P indique le script Python à exécuter dans le fichier Blender.
│   ├── explode.py L’image « échantillon » calculée est alors écrite dans un sous-répertoire de
│   └── TitleFileName0075.png ~/.openshot/blender.
├── config.xml
├── pid.lock Maintenant que nous avons vu les interactions entre OpenShot et Blender, entrons
├── preview.mlt dans le vif du sujet : réaliser une animation que l’on va intégrer à OpenShot.
├── queue
├── sequence.mlt
├── thumbnail
3. Choisir un titre animé et le réaliser
└── user_profiles Généralement, c’est en surfant sur le net, sur des sites relatifs à Blender, que je
6 directories, 8 files trouve ce qui pourra faire un joli titre animé. Le premier réalisé, fut la modification
du titre « Mappemonde » que je voulais rendre un peu plus réaliste. Pour cette
Ce réper toire contient un script intégration, il a suffi de faire une copie des fichiers de titre « mappemonde » et de
Python contenant les choix de l’uti- modifier le fichier Blender servant à l’animation. Pour cela, j’ai utilisé le très bon
lisateur, ainsi que l’image exemple tutoriel [2] sur BlenderGuru.
produite par Blender. Dans mon cas, Nous allons voir ici une cas un peu plus complexe : l’animation du texte qui explose.
j’ai fait deux essais : un avec le titre De la même manière, j’ai trouvé cette animation sur YouTube [3]. Notre anima-
«  explode  » et l’autre avec le titre tion va utiliser une fonctionnalité présente à partir de la version 2.60 : les « Quick
« dissolve ». effects » et plus précisément « Quick Explode ». J’ai trouvé cette méthode à
Si l’on a lancé OpenShot à partir d’une l’adresse [4].
console, on peut alors comprendre Dans un premier temps, il convient de se familiariser avec l’effet. On crée un nou-
comment il utilise Blender : veau texte ([Shift]-[A] > Text). Puis, après l’avoir édité et modifié (extrusion, police,

w w w.linux-pratique.com  Linux Pratique n°77 | 51


geek
Réaliser des titres animés pour OpenShot à l'aide de Blender

Note
Il convient de préparer votre scène
c onvenablement (position de
caméra, éclairages, matériau) pour
avoir un rendu final convenable. La
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

figure 3 montre le rendu de la pre-


mière image de l’animation.

Notre scène est prête, nous allons


maintenant automatiser la génération
du texte, ainsi que le paramétrage de
l’effet d’explosion.

Fig. 2 4. Automatisation
de l’animation
Comme expliqué plus avant, nous
allons utiliser la fenêtre « Info » pour
connaître, quand c’est possible, l’équi-
matériau, transformé en maillage ([Alt]-[C] : Mesh from Text)), valent API d’une fonctionnalité dans l’interface graphique.
on applique l’effet. Cela crée une animation automatique, qu’il Ainsi, nous pourrons construire notre animation à l’aide d’un
ne reste plus qu’à tester avec les touches [Alt]-[A] (Fig. 2). Voilà, script.
ceci sera le cœur de notre animation. Elle utilise un système Commençons notre script. Tout d’abord, on importe la biblio-
de particules qui possède de nombreux réglages que nous thèque bpy (Blender Python) qui nous permet d’utiliser
détaillerons un peu plus loin. l’API Blender. Comme les angles sont par défaut gérés en
On remarque sur la figure 2, où j’ai volontairement agrandi la radians, on importe aussi la valeur de Pi de la bibliothèque
zone de la fenêtre « Info », le mode verbeux de Blender. En mathématique. Ensuite, on crée notre texte. Ici, on copie/
effet, toutes les actions sur l’interface sont reportées dans colle simplement la ligne présente dans la partie « Info » en
cette zone. Cela nous sera fort utile lorsque que nous réali- enlevant les parties optionnelles. On crée aussi une variable
serons l’automatisation à l’aide d’un script. qui contiendra la chaîne de caractères du titre.
La suite consiste à ajouter un sol, afin que les particules import bpy
(morceaux de texte) rebondissent avant de s’immobiliser. from math import pi
Pour cela, nous utiliserons les propriétés physiques dis- newText = ‘Explode’
ponibles grâce à la librairie Bullet intégrée à Blender. La #create text
figure 3 montre le sol (un quart de cylindre dont on a étiré bpy.ops.object.text_add(view_align=False, enter_
les extrémités) et le réglage des options de collision dans editmode=False, location=(0, 0, 0), rotation=(0, 0, 0))
l’onglet Physics. newtext = bpy.context.scene.objects.active

Ensuite, comme l’élément actif par défaut


est celui qui vient juste d’être créé, on
sauvegarde sa valeur dans la variable
newtext. Ensuite, on pourra utiliser
cette variable pour accéder directement
aux propriétés de l’objet texte.
La console Python est aussi ici d’un
grand secours ; elle nous permet de
tester l’accès aux propriétés d’un objet :

>>> bpy.context.scene.objects.active
bpy.data.objects[‘Text’]
>>> newText=bpy.context.scene.objects.
active
>>> newText
Fig. 3 bpy.data.objects[‘Text’]
>>>

52 | Linux Pratique n°77  w w w.linux-pratique.com


geek

Note
Par défaut, le premier objet text
créé possède le nom « Text », on
peut alors accéder aux propriétés
de l’objet par le chemin absolu :
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

bpy.data.objects[‘Text’].
data. Mais il est tout à fait pos-
sible d’utiliser la variable newtext.
Dans l’exemple, je me suis can-
tonné à l’extrusion et chanfrein,
mais vous pouvez aussi changer la
police de caractères, l’espacement
des lettres, etc.

La figure  4, montre les différentes


modifications évoquées plus avant.
Nous allons ensuite modif ier le
contenu de notre objet texte. Pour
Fig. 4 c e l a, n o u s avo n s e n c o r e d e u x
méthodes à notre disposition. Le pre-
mière consiste à reproduire toutes les
actions réalisées sur l’interface :

Note bpy.context.scene.objects.active=bpy.
data.objects[‘Text’]
Dans la console Python de Blender, les touches [Ctrl]-[Espace] permettent bpy.ops.object.editmode_toggle()
de réaliser la complétion automatique. C’est très pratique lorsque l’on veut bpy.ops.font.delete()
connaître les méthodes et propriétés d’un objet. bpy.ops.font.text_insert(text=newText,
accent=False)
Ensuite, nous opérons une rotation du texte de 90° suivant l’axe X : « r,x,90 » au bpy.ops.object.editmode_toggle()
clavier, ceci génère la ligne suivante dans la fenêtre « Info » : On commence par activer notre
objet texte. Ensuite, on le passe en
bpy.ops.transform.rotate(value=1.5708, axis=(1, 0, 0), constraint_axis=(True, False,
mode édition, on efface son contenu,
False), constraint_orientation=’GLOBAL’, mirror=False, proportional=’DISABLED’,
puis on insère notre nouveau texte.
proportional_edit_falloff=’SMOOTH’, proportional_size=1, snap=False, snap_
Finalement, on revient en mode objet.
target=’CLOSEST’, snap_point=(0, 0, 0), snap_align=False, snap_normal=(0, 0, 0),
release_confirm=False) La seconde solution est bien plus
rapide et consiste à modifier le corps
On remarque que les valeurs des angles sont bien exprimées en radians. Cela
du texte par la propriété body des
fonctionne, mais il y a une méthode plus courte qui consiste à utiliser la rotation
courbes curves de notre objet Text :
d’Euler qui se trouve dans les options de transformation de l’objet. Le code est
alors beaucoup plus simple : bpy.data.curves[‘Text’].body = ‘Hello
World’
#second solution
bpy.data.objects[‘Text’].rotation_euler[0]=pi/2 #xaxis On remarque ici que l’on accède aux
bpy.data.objects[‘Text’].rotation_euler[1]=0.0 #yaxis curves de l’objet texte et non à l’objet
bpy.data.objects[‘Text’].rotation_euler[2]=0.0 #zaxis lui-même. Pour vous familiariser avec
les concepts clés de l’API de Blender,
De la même manière, il sera possible de réaliser des opérations sur le texte par
je vous conseille la lecture de [5].
l’intermédiaire de ses propriétés (centrage, extrusion, chanfrein) :
Avant de pouvoir appliquer notre effet,
#centering text nous allons transformer notre texte
bpy.data.objects[‘Text’].data.align=’CENTER’ pour qu’il devienne un maillage. Pour
#extrude text cela, on utilise le code suivant :
bpy.data.objects[‘Text’].data.extrude=0.1
#bevel text #convert to mesh to apply effect
bpy.data.objects[‘Text’].data.bevel_depth = 0.01 bpy.ops.object.convert(target=’MESH’,
bpy.data.objects[‘Text’].data.bevel_resolution = 10 keep_original=False)

w w w.linux-pratique.com  Linux Pratique n°77 | 53


geek
Réaliser des titres animés pour OpenShot à l'aide de Blender

Ensuite, comme dans  [4], on applique le modificateur On fixe ici le numéro de l’image où commence l’émission de
Solidify  [6], qui nous permet d’ajouter de l’épaisseur à particules. Comme il s’agit d’une explosion, on émet qu’une
notre maillage pour rendre plus réels les morceaux produits seule fois les particules... Eh oui, ce n’est pas un feu de
par l’explosion : Bengale... Les valeurs frame_start et frame_end sont
donc identiques.
#solidify
bpy.ops.object.modifier_add(type=’SOLIDIFY’) #explosion power
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

bpy.data.objects[‘Text’].particle_systems[‘ParticleSystem’].
settings.normal_factor=5.5
Note
Ce paramètre permet de contrôler la vitesse d’émission de
Il faut appliquer à notre texte tous les changements la particule. Il convient de bien adapter cette valeur, afin que
désirés avant cette étape. Ensuite, il ne sera plus pos- cela ressemble à une explosion et non à un effondrement.
sible de l’éditer.
#integration method
bpy.data.objects[‘Text’].particle_systems[‘ParticleSystem’].
Voilà, tout est prêt pour appliquer notre effet rapide
settings.integrator=’RK4’ #’MIDPOINT’ #’RK4’
d’explosion :
Il s’agit ici de choisir l’algorithme utilisé pour calculer les don-
#apply quick explode nées physiques de l’explosion (trajectoire, collision, etc.). De
bpy.ops.object.quick_explode(style=’EXPLODE’, amount=100,
la méthode la plus rapide à la plus stable et précise, nous
frame_duration=50, frame_start=1, frame_end=51, velocity=1,
avons les choix suivants : Midpoint, Euler, Verlet, RK4.
fade=True)
J’ai laissé les options par défaut récupérées dans la fenêtre #size of particles
« Info », mais l’on peut déjà voir notre texte qui explose en bpy.data.objects[‘Text’].particle_systems[‘ParticleSystem’].
lançant l’animation. Les plus attentifs auront remarqué dans settings.particle_size = 0.1
la fenêtre « Info », la présence de la ligne suivante : On fixe ici la taille des particules.
bpy.ops.object.particle_system_add() #particles time step
Notre explosion utilise un système de particules appliqué bpy.data.objects[‘Text’].particle_systems[‘ParticleSystem’].
settings.timestep = 0.02
à notre maillage. Nous allons dans la suite en modifier les
options pour qu’il se comporte comme l’on désire. Nous Cette option permet de réaliser des calculs intermédiaires
allons décaler temporellement le début de l’explosion, pour entre 2 images, afin d’augmenter la précision de l’animation
que l’on puisse lire le texte avant qu’il ne disparaisse. Nous physique.
allons aussi régler le nombre de particules (nombre de mor-
ceaux de l’explosion, etc.). #mass of particles
bpy.data.objects[‘Text’].particle_systems[‘ParticleSystem’].
#modifying Particle System settings.mass = 2.0
#emitfrom
bpy.data.objects[‘Text’].particle_systems[‘ParticleSystem’]. On fixe la masse des particules pour l’animation.
settings.emit_from = ‘VERT’
bpy.data.objects[‘Text’].particle_systems[‘ParticleSystem’].
Cette première option permet de contrôler la position d’où par- settings.use_multiply_size_mass = True
tent les particules. Par défaut, il s’agit des points du maillage
« Vertex ». On peut aussi choisir « FACE » ou « VOLUME ». Cette dernière option multiplie la taille de la particule par sa
masse. Toutes ces options sont détaillées dans la page [7].
#particle number
bpy.data.objects[‘Text’].particle_systems[‘ParticleSystem’]. Ensuite, on affecte un matériau déjà présent dans notre
settings.count=200 fichier Blender :
#particle lifetime
bpy.data.objects[‘Text’].particle_systems[‘ParticleSystem’]. #affect an existing material
settings.lifetime=200 # 200 +48 > 150 ;-) bpy.data.objects[‘Text’].material_slots[0].material = bpy.data.
materials[‘TextMaterial’]
Ici, on règle le nombre de particules, ainsi que leur durée
de vie, afin que les morceaux ne disparaissent pas avant la Finalement, on modifie les paramètres du modificateur
fin de l’animation. Solidify pour donner un peu plus de réalisme aux mor-
ceaux issus de l’explosion :
# start/end explosion
bpy.data.objects[‘Text’].particle_systems[‘ParticleSystem’]. #solidify parameter
settings.frame_end = 48 bpy.data.objects[‘Text’].modifiers[‘Solidify’].edge_crease_
bpy.data.objects[‘Text’].particle_systems[‘ParticleSystem’]. inner=0.01
settings.frame_start = 48 bpy.data.objects[‘Text’].modifiers[‘Solidify’].thickness = 0.02

54 | Linux Pratique n°77  w w w.linux-pratique.com


geek
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

Fig. 5

Notre script est terminé. Pour le tester, supprimez le texte sur lequel vous avez fait
vos essais et lancez le script. Si tout se passe bien vous obtenez quelque chose Note
ressemblant à la figure 5. Cette dernière opération n’est
Il reste cependant un petit souci : si vous relancez le script, ce dernier échoue, sans doute pas nécessaire pour
car l’objet Text est déjà présent dans la scène. Si vous le supprimez et relancez l’utilisation avec OpenShot,
le script, tout se passe bien. puisque ce dernier relance le
rendu sur le fichier Blender avec
On peut aussi réaliser cela à l’aide des commandes suivantes, placées juste après le script modifié à chaque modi-
la création du texte : fication. Il suffit que le fichier
Blender initial ne contienne pas
newtext = bpy.context.scene.objects.active le « Text » et tout fonctionnera.

if bpy.context.scene.objects.active.name != ‘Text’: Il reste un point important à régler.


bpy.ops.object.select_all(action=’DESELECT’)
Pour notre animation, certains utilisa-
#selecting previous Text
teurs voudront utiliser le sol pour voir
bpy.context.scene.objects.active = bpy.data.objects[‘Text’]
rebondir les morceaux, mais d’autres
bpy.context.scene.objects.active.select = True
bpy.ops.object.delete(use_global=False) préféreront que l’ensemble du texte
bpy.ops.object.select_all(action=’DESELECT’) explosé disparaisse du champ de la
#selecting Text caméra, comme s’il tombait dans un
bpy.context.scene.objects.active = newtext trou. Pour cela, il faut prévoir la pos-
bpy.context.scene.objects.active.select = True sibilité de « supprimer » l’objet Sol.
#naming the text Dans Blender, nous n’allons pas vrai-
bpy.context.scene.objects.active.name = ‘Text’; ment le supprimer, mais plutôt ne pas
bpy.context.scene.objects.active = bpy.data.objects[‘Text’] l’activer pour le rendu. Il ne faudra
pas oublié d’enlever les propriétés
On commence par tester si le nom de l’objet créé diffère de « Text », ce qui indi- physiques de collision, sinon les mor-
quera que ce n’est pas le seul texte présent. Ensuite, on sélectionne l’objet Text ceaux rebondiront sur un sol trans-
que l’on veut remplacer et on le supprime. Finalement, on sélectionne notre nou- parent ! Le code de gestion de cette
veau texte et on le renomme. option est le suivant :

w w w.linux-pratique.com  Linux Pratique n°77 | 55


geek
Réaliser des titres animés pour OpenShot à l'aide de Blender

• le nombre de particules de l’explosion,


#ground management
if ground==’1’: • l’affichage ou non du sol.
bpy.data.objects[‘Ground’].hide_render = False
bpy.data.objects[‘Ground’].hide = False Nous ajoutons le code suivant dans notre fichier à l’endroit
bpy.ops.object.select_all(action=’DESELECT’) où vous voulez voir apparaître ces nouvelles options :
#selecting Text
bpy.context.scene.objects.active = bpy.data.objects[‘Ground’] </param>
bpy.context.scene.objects.active.select = True <param name=»particle_number» type=»spinner» title=»Particle
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

#if bpy.data.objects[‘Ground’].modifiers.keys()[0] != ‘Collision’: Number» description=»»>


if bpy.data.objects[‘Ground’].modifiers.items() == []: <min>10</min>
print(«collision = empty») <max>1000</max>
bpy.ops.object.modifier_add(type=»COLLISION») <default>100</default>
else: </param>
print(«OK») <param name=»ground_on_off» type=»dropdown» title=»Display
else: Ground» description=»»>
bpy.ops.object.select_all(action=’DESELECT’) <values>
#selecting Text <value name=»On» num=»1»/>
bpy.context.scene.objects.active = bpy.data.objects[‘Ground’]
bpy.context.scene.objects.active.select = True <value name=»Off» num=»0»/>
bpy.ops.object.modifier_remove(modifier=»Collision») </values>
bpy.data.objects[‘Ground’].hide = True <default>1</default>
bpy.data.objects[‘Ground’].hide_render = True </param>

Le propriété hide_render permet de rendre invisible un Le premier contrôle est de type spinner (sélection rotative)
objet de la scène lors du rendu, et hide de le cacher dans et dropdown (menu prédéfini). La définition de la variable
la fenêtre 3D de Blender. Pour tester cette option, il ne name est importante, car elle sera utilisée dans le script de
vous reste plus qu’à ajouter en début de script une variable modification de l’animation. Chaque paramètre présent sur
ground que vous fixerez à 0 ou 1 suivant le cas voulu : l’interface sera passé au script pour la modification de l’ani-
mation dans Blender.
ground = ‘1’
Il ne faut pas oublier de créer une image représentant notre
Notre animation et notre script de génération sont main- titre animé, la nommer explode.png et la déposer dans le
tenant prêts, il faut les intégrer dans OpenShot. Le fichier répertoire blender/icons. Ensuite, on modifie l’entête du
Blender complet de l’animation est disponible à l’adresse [8]. fichier XML pour l’adapter à notre nouveau titre :

<?xml version=»1.0» encoding=»UTF-8» standalone=»no»?>


5. Génération des fichiers de <!DOCTYPE openshot-effect>
<effect>
titre animé pour OpenShot <title translatable=»True»>Exploding Text</title>
<description translatable=»True»>Exploding Text</description>
Pour démarrer la création d’un nouveau titre animé pour <icon>explode.png</icon>
OpenShot, on commence par copier les fichiers d’une anima- <category>Video</category>
tion existante. Puis, on réalise les modifications propres à notre <service>explode.blend</service>
animation. C’est la manière la plus simple d’opérer. Dans le On retrouve dans cet entête, le nom de notre titre animé en
répertoire openshot/blender, on crée les fichiers suivants anglais. La propriété translatable=»True» nous indique
par copie : qu’il sera pris en charge lors de la localisation du logiciel.
Je n’ai pas été très inventif sur la partie « description » qui
$ cp fly_by_1.xml explode.xml
$ cp /chemin/mon_fichier_blend_explosion.blend blend/explode.blend sera aussi traduite dans différentes langues. On retrouve
$ cp scripts/fly_by_1.py scripts/explode.py ensuite, l’icône qui représentera notre titre animé, puis le
fichier Blender qui doit être utilisé pour réaliser l’animation.
Ensuite, nous commençons par modifier le fichier XML de
À cet instant, même si le script de modification de l’anima-
l’interface.
tion n’est pas écrit, vous pouvez tester l’interface en lançant
simplement OpenShot. Votre nouveau titre animé devrait
Note apparaître dans la liste.
Si vous n’utilisez pas la version Bazaar (bzr branch
lp:openshot), vous devrez réaliser toutes les modifica-
Note
tions en tant qu’administrateur dans le répertoire /usr/
share/pyshared/openshot/. Faites très attention à l’écriture du fichier XML ! Une simple
erreur dans ce dernier et c’est OpenShot qui ne démarre
5.1 Fichier d’interface en XML plus du tout. Les fichiers XML sont analysés lors de son lan-
cement ; si une erreur survient, OpenShot s’arrête. Encore
Pour cela, il faut commencer par répertorier les spécificités une fois, il est préférable de lancer le programme en mode
de notre titre animé par rapport aux options déjà présentes console pour avoir un retour d’informations explicite.
dans le titre « fly_by_1 » qui nous sert de modèle :

56 | Linux Pratique n°77  w w w.linux-pratique.com


geek

Passons maintenant à une autre grosse partie du travail : On ajoute simplement l’initialisation des deux nouvelles
l’adaptation du fichier de script. variables : particle_number et ground_on_off. Le reste
du code du tableau params est laissé à l’identique. Ensuite,
5.2 Fichier de script Python les paramètres issus de l’interface graphique de génération de
À l’instar du fichier XML, nous allons modifier la copie d’un titre animé sont injectés dans le script et nous appelons notre
script existant. Ce fichier est globalement divisé en 3 parties : fonction de création de texte à l’aide de ces derniers :
Ce document est la propriété exclusive de Jean-François Rouceau (balam.web@gmail.com) - 26 avril 2013 à 01:56

• inclusion et fonctions ; createExplodeTxt(params[«title»],params[«particle_number»],


• initialisation de tous les paramètres du script ; params[«extrude»],params[«bevel_depth»],params[«spacemode»],
• m
 odification des paramètres du fichier Blender par les params[«text_size»],params[«width»], font, params[«ground_on_off»])
paramètres issus d’OpenShot. Les valeurs transmises par l’interface sont accessibles par
On commence par ajouter l’inclusion math : l’intermédiaire du tableau params. On récupère alors toutes
les valeurs nécessaires à notre fonction. Ensuite, il ne reste
from math import pi plus qu’à affecter les matériaux :
Pour simplifier l’organisation du script, on crée une fonction # Change the material settings (color, alpha, etc...)
createExplodeTxt, qui englobe tout le script de généra- material_object = bpy.data.materials[«TextMaterial»]
tion de l’animation détaillé précédemment. Cette fonction material_object.diffuse_color = params[«diffuse_color»]
prend tous les paramètres nécessaires et possède la défi- material_object.specular_color = params[«specular_color»]
nition suivante : material_object.specular_intensity = params[«specular_intensity»]
material_object.alpha = params[«alpha»]
def createExplodeTxt(title,particle_number,extrude,bevel_depth,
spacemode,textsize,width,font,ground): Le code complet du script est disponible à l’adresse [9]. Voilà,
«»» Create an animated exploding text «»» vous avez terminé votre premier titre animé dans OpenShot à
l’aide de Blender. Si tout se passe bien, vous obtenez la figure 1
Le corps de la fonction est celui du s