Mes premières impressions sous Arch Linux

\"ArchJ\’ai reçu la semaine dernière mon nouveau matériel professionnel à savoir un Dell Latitude E6510 avec station d\’accueil et un écran supplémentaire pour du dual sreen. J\’en profite d\’ailleurs pour souligner qu\’il est possible pour cette gamme de commander une machine sans OS! Bref, après un petit moment d\’hésitation, j\’ai décidé de me lancer dans l\’aventure Arch Linux. Je suis pourtant utilisateur d\’Ubuntu depuis 5 ans environ. Mon serveur et mon ordinateur fixe personnels tournent d\’ailleurs encore avec cette distribution. Je vais tenter dans un premier temps de vous expliquer brièvement les facteurs de ce changement. Puis je tâcherai de faire un bilan de ces 10 premiers jours sous Arch!

De Ubuntu à Arch Linux

Il y a plusieurs raisons qui m\’ont fait choisir Arch Linux comme nouvelle distribution. Premièrement, ça fait un moment que j\’en entend parler et à chaque fois en bien. Ensuite, je suis suffisamment curieux pour oser me lancer! Il y a aussi le fait qu\’Arch Linux est réservé à des utilisateurs avancés et c\’est quelque chose qui me plaît bien (on est totalement maître de son système et ça flatte l’ego :-D). Le principe de rolling release m\’a aussi beaucoup tenté. Enfin -troll inside- les derniers choix faits par Canonical ne m\’ont pas vraiment convaincu ou en tous cas ne répondent pas à mes attentes (plus orienté réseaux sociaux, ajout de logiciels propriétaires dans la logithèque, etc…). Attention, je ne fais pas le procès d\’Ubuntu! Si le libre en est là où il est aujourd\’hui c\’est, je pense, en grande partie grâce à Ubuntu qui a su le démocratiser un peu plus. Quoi qu\’il en soit, pour toutes ces raisons et pour d\’autres encore, j\’ai tenté l\’expérience Arch!

L\’installation

Pour commencer, je suis parti sur l\’installation par le net. L\’iso à télécharger fait ainsi moins de 200Mo et tous les paquets nécessaires sont récupérés durant le processus d\’installation. Chose importante, Arch Linux ne contient rien à la base (Pas d\’interface graphique par exemple). Il vous faudra tout installer et c\’est ça le principal atout de cette distribution selon moi. Quelques précisions pour ceux qui voudraient s\’y essayer :

  • Le mieux est de suivre ce tutoriel en français très bien fait.
  • Ne mettez pas la swap en premier sur le disque (sur sda1). Ça ne lui plaît pas du tout! Pour ma part, j\’ai découpé mon disque de cette manière :
    \"Partitions\"
  • Enfin pour le choix du serveur à utiliser pour récupérer les paquets, choisissez soit celui de archlinux.org (lent mais fonctionnel), soit un en fonction de cette page. Lors de ma première tentative d\’installation, j\’en ai choisi un au hasard et il se trouve qu\’il ne possédait pas la moitié des paquets…

Je ne vais pas détailler le processus d\’installation. Des tutoriels font ça très bien et le wiki d\’ArchLinux est on ne peut plus complet. Ce qui m\’a pris le plus de temps a été la configuration de Xorg, dont l\’ex-fichier xorg.conf est maintenant découpé en plusieurs fichiers dans /etc/X11/xorg.conf.d/. Les deux conseils que je pourrais vous donner c\’est de ne pas tenter tout de suite le dual screen, je veux dire pas avant d\’avoir installé Xorg correctement, et de bien suivre les conseils donnés dans le wiki (ici et ). Une fois que vous aurez installé un gestionnaire de bureau (Gnome par exemple) et si vous avez choisi d\’utiliser les drivers de carte graphique propriétaires pensez qu\’ils sont installés avec des outils qui génèrent les fichiers de configuration du serveur X à votre place (NVIDIA X Server Settings ou Catalyst Control Center). En revanche, ils génèrent encore le xorg.conf mais à priori, il suffit juste de le renommer et de le déplacer au bon endroit :

sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.d/10-monitor.conf

Premières impressions

Voilà 10 jours que j\’utilise quotidiennement Arch Linux et je dois dire que j\’en suis très satisfait. Alors certes, l\’installation est longue (j\’y ai passé une journée) puisqu\’il faut vraiment tout installer mais il faut prendre en compte qu\’Arch Linux ne se réinstalle pas. Le système de rolling release assure d\’avoir toujours une distribution à jour et donc pas de mises à jour de versions importantes. La documentation est très fournie et pour peu qu\’on soit à l\’aise avec la ligne de commande, ça passe tout seul. Une fois que tout est en place c\’est impeccable. On est maître de tout et ça, pour quelqu\’un qui n\’a pas peur de mettre un peu les mains dans le cambouis, c\’est fantastique! Côté gestionnaire de bureau, j\’ai fait le choix de Gnome avec le thème Equinox et le jeu d\’icône Faenza (Merci Nicolargo ;)). Enfin, pour terminer sur le bon côté de la chose, le gestionnaire de paquet, pacman, est vraiment très puissant et les paquets AUR sont une source inépuisable de logiciels.

Seulement voilà! Tout n\’est pas rose sous Arch Linux. Il y a quand même quelques petits inconvénients. Premièrement, c\’est un peu \ »roots\ ». Pour quelqu\’un qui n\’a pas envie de se prendre la tête, ce sera vite décourageant. Une installation d\’Ubuntu prend maintenant une heure maximum. Une installation d\’Arch Linux (j’entends par là le système, l\’ajout d\’interface graphique, les paquets de base et tout et tout…) prend nettement plus de temps, en tous cas la première fois. Mais on apprend beaucoup sur le fonctionnement de son système et ça c\’est inestimable! Deuxièmement, le système de rolling release choisi par Arch Linux a aussi ses inconvénients. Deux exemples issus de mon expérience : la mise à jour vers la toute dernière version de Thunderbird m\’a obligé à fouiller sur le net pour trouver une version de Lightning (agenda) compatible. La version proposée via l\’interface d\’installation de modules de Thunderbird ne l\’était plus… Ensuite une mise à jour \ »buggée\ » d\’Empathy m\’a privé quelques heures de messagerie instantanée. Heureusement, ce sont des choses qui sont très vite corrigées et ne pose finalement pas tant de problèmes que ça. Troisièmement, il y a des automatismes à acquérir. Notamment avec le passage de apt-get à pacman. Ce dernier suivant une logique qui me dépasse quant au nom de ses arguments. Petit comparatif :

[table id=3 /]

Il faut avouer que c\’est spécial… Mais après quelques heures d\’utilisation ça ne pose plus vraiment de problèmes. Enfin, et ce n\’est pas tant la faute d\’Arch Linux que des constructeurs de matériel, il est parfois difficile de trouver les pilotes pour certains périphériques. Je pense en particulier à la webcam incrustée dans l\’écran du E6510 que je n\’ai toujours pas réussi à faire fonctionner… La documentation technique de chez Dell ne m\’a pas permis de déterminer quel pilote installer. Une Ubuntu, par exemple, détectera ce type de matériel et installera les pilotes nécessaires.

Conclusion

Je n\’utilise Arch Linux que depuis 10 jours donc ce n\’est pas encore très facile de se faire un avis mais je suis pour le moment très satisfait. Je n\’exclue pas de passer également mes machines personnelles sous cette distribution. Il y a certes quelques couacs de temps à autre mais c\’est un moindre mal comparé à la satisfaction qu\’apporte un système stable, à jour et dont on est complètement maître. Qui plus est, le système étant \ »vide\ » au départ on installe vraiment que ce dont on a besoin, ce qui rend la distribution très légère et réactive.

PS : Si certains sont tentés de passer sous Arch Linux, n\’hésitez pas à poser vos questions dans les commentaires. J\’en ai eu pas mal moi-même, notamment pour les fichiers de configuration type rc.conf ou pacman.conf, donc je pourrais peut-être y répondre.

Mémo : comment \ »débannir\ » une IP bloquée par fail2ban?

Quand on a son serveur personnel, fail2ban fait partie des indispensables à installer. Ce démon scrute les logs (que ce soient les logs ssh, apache, etc…) à la recherche des tentatives de connexion infructueuses et peut ainsi bannir une IP si nécessaire. Concrètement, dans le cas d\’une tentative de connexion par ssh qui échouerait 3 fois d\’affilés (ces paramètres sont configurables), l\’IP de la machine à l\’origine de ces tentatives aura droit à une belle règle iptable de façon à lui bloquer complètement la connexion via le port 22 pour une durée donnée (5 minutes ou 3000 ans, c\’est vous qui choisissez!). Bref, pour vous donner une idée, sur mon serveur je bloque en moyenne 5 IP par jour. Les tentatives sont faites en général via ssh avec des logins comme \ »root\ » ou \ »login\ » et des mots de passes évidemment faux!

Quoi qu\’il en soit, il peut arriver qu\’une IP vous appartenant soit bloquée. Ça peut arriver par exemple dans le cas où la connexion à ssh via login/password est activée (et pas uniquement par clé publique/privée) et où vous tentez de vous connecter à votre serveur depuis le boulot en vous trompant de login parce que vous en avez à la pelle vu le nombre de machines que vous utilisez. Du coup, vous tentez 3 fois votre mot de passe sans vous apercevoir que votre login n\’est pas bon… et hop! Banni pour un an! (True story!)

Il devient alors pratique, une fois rentré à la maison, de se \ »débannir\ », de bloquer la connexion ssh via login/password et d\’ajouter sa clé publique pour ne plus avoir de soucis. Mais comment se débannir? Comme ceci :

Admettons que vous ayez été banni à partir de tentatives infructueuses de connexion à ssh. Pour lister les IP bannies, il vous faudra lancer dans un premier temps la commande suivante :

$ sudo iptables -L fail2ban-ssh
Chain fail2ban-ssh (1 references)
target     prot opt source               destination
DROP 0 -- 66.249.92.104 anywhere
DROP 0 -- 91.189.90.40 anywhere
DROP 0 -- 207.46.170.123 anywhere
RETURN     all  --  anywhere             anywhere

Bien que la \ »mise en page\ » ne le laisse pas paraitre, il s\’agit ici d\’un tableau dont les en-têtes sont \ »target\ », \ »prot\ », … Il suffit alors de noter à quelle ligne du tableau apparait votre adresse IP. Considérons que vous souhaitez débloquer 91.189.90.40. Cette IP apparait à la ligne 2. Il ne reste plus qu\’à exécuter la commande suivante :

$ sudo iptables -D fail2ban-ssh 2

Votre IP sera bien supprimée des règles iptables, vous autorisant à nouveau à vous connecter en ssh!

Introduction à DocBook sous Linux

Parce qu\’il n\’y a pas que le LaTeX pour écrire de bons documents, je vais vous présenter rapidement les bases de DocBook 5.0. Mais d\’abord, qu\’est-ce que DocBook?

DocBook

DocBook peut se résumer dans un premier temps à un schéma XML définissant un standard de création de documents (concrètement un DTD, un XSD, …). Il offre un grand nombre de balises pour écrire un document. C\’est un \ »format\ » très utilisé pour les documentations de projets open-source par exemple. Par abus de langage, nous parlerons de \ »fichier DocBook\ » durant le reste de cet article pour parler d\’un fichier XML écrit en suivant le schéma DocBook.

Du fait qu\’il soit standardisé, un même fichier DocBook peut servir de base à plein de rendu différents (HTML, PDF, …).

Enfin, à la base de DocBook, il y a le célèbre éditeur d\’ouvrages consacrés à l\’informatique : O\’Reilly (qui a malheureusement mis la clé sous la porte…).

Créer son premier document

Nous allons donc créer notre premier document à base de DocBook. Pour commencer, il faut installer le paquet suivant :

$ sudo apt-get install docbook-xsl-ns

Ce paquet ajoute des fichiers XSL qui sont des feuilles de style pour document XML. Elles permettent, à partir d\’un fichier basé sur DocBook, de lui appliquer un style pour un rendu spécifique. C\’est en quelque sorte le même principe que le CSS appliqué au HTML.

Dans un premier temps, nous allons écrire un fichier XML, essai.xml, basé sur le schéma DocBook.

<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <article version=\"5.0\" xmlns=\"http://docbook.org/ns/docbook\">
   <title>Premier document DocBook</title>
   <articleinfo>
     <author>
       <firstname>John</firstname>
       <surname>Doe</surname>
     </author>
     <copyright>
       <year>2010</year>
       <holder>One More Blog</holder>
     </copyright>
   </articleinfo>
   <sect1>
      <title>Section de premier niveau</title>
      <para>
        Ce texte est dans un paragraphe.
      </para>
      <itemizedlist>
        <listitem>
          premier item d\'une liste;
        </listitem>
        <listitem>
          et le second item.
        </listitem>
      </itemizedlist>
   </sect1>
 </article>

Les noms des balises font que le code est très compréhensible et, du coup, rapide à intégrer. Ce petit morceau de code n\’est qu\’un aperçu minime de ce qu\’il est possible de faire avec DocBook. Bref, nous allons maintenant appliquer à ce fichier un style afin de créer un rendu. En HTML d\’abord, puis en PDF.

$ xsltproc -o essai.html /usr/share/xml/docbook/stylesheet/docbook-xsl-ns/xhtml/docbook.xsl essai.xml

La syntaxe est très simple. On spécifie le nom du fichier en sortie grâce à l\’option -o. On donne ensuite une feuille de style XSL et le fichier XML en entrée. Le résultat est le suivant :

\"Exemple

Un peu comme en LaTeX, tout est géré. Une table des matières est générée en fonction des sections et sous-sections avec les liens qui vont bien. Des id et class sont ajoutés à toutes les balises HTML de façon à éventuellement rajouter une feuille de style, …

Nous allons maintenant, à partir du même code XML, générer une version PDF de ce DocBook. Cependant, cela nécessite l\’installation de quelques outils supplémentaires. Dans un premier temps, nous allons ajouter les feuilles de styles prévue pour le PDF :

$ sudo apt-get install docbook-xsl-doc-pdf

Il nous faut ensuite récupérer l\’utilitaire FOP (Formatting Objects Processor). Il s\’agit d\’un programme écrit en Java qui permet de générer entre autres des fichiers PDF à partir de XML et XSD. Cet utilitaire est présent dans les dépôts d\’Ubuntu – et des autres distributions j\’imagine – mais dans sa version 0.95. Or, est sortie depuis quelques mois une version 1.0 plus aboutie. Nous allons donc récupérer cette version et y ajouter une librairie, Offo, qui gère les découpages de mot (hyphenation ou trait d\’union si fin de ligne) et qui évitera des erreurs lors de la génération du document.

$ wget http://apache.crihan.fr/dist//xmlgraphics/fop/binaries/fop-1.0-bin.tar.gz
$ tar -xvzf fop-1.0-bin.tar.gz
$ cd fop-1.0/
$ wget http://freefr.dl.sourceforge.net/project/offo/offo-hyphenation/1.2/offo-hyphenation-fop-stable_v1.2.zip
$ unzip offo-hyphenation-fop-stable_v1.2.zip
$ cp offo-hyphenation-fop-stable/fop-hyph.jar lib/

Lançons maintenant la création de notre document PDF :

$ ./fop -xml ../essai.xml -xsl /usr/share/xml/docbook/stylesheet/docbook-xsl-ns/fo/docbook.xsl -pdf ../essai.pdf

Là encore c\’est très simple. L\’option -xml doit être suivie du fichier DocBook, l\’option -xsl d\’une feuille de style spécifique au PDF et enfin la dernière option défini le fichier en sortie. Le résultat est très satisfaisant : \"PDF

Ce n\’est là qu\’un tout petit aperçu de ce qu\’il est possible de faire avec DocBook. Comme pour LaTeX, il existe plusieurs classes (ici nous avons testé la classe article) pour différents usages. Je vous laisse fouiller un peu et trouver votre bonheur dans la documentation. Je vous propose quelques sites intéressants qui d\’une part m\’ont aidé à écrire ce premier article sur le sujet et qui d\’autre part proposent de la documentation de qualité pour approfondir tout ça :

Téléchargement en torrent de contenu libre

\"FreeAujourd\’hui, j\’aimerai vous faire découvrir un projet très intéressant : Free Torrent.

Free Torrent est un projet de partage de contenu sous licence libre (logiciels, distributions linux, documents, musiques, vidéos, …) utilisant le protocole Bittorrent. Il commence à y avoir pas mal de torrents et ceux-ci sont très souvent de qualité. Certain reprocheront à Free Torrent de proposer des fichiers souvent accessibles plus rapidement en téléchargement direct depuis le net mais il ne faut pas oublier la notion de partage et c\’est là tout l\’intérêt du projet. Bref, je vous invite à regarder si du contenu vous intéresse. N\’hésitez pas à en abuser et à seeder autant que possible! Enfin, si vous avez du contenu libre de droit qui pourrait intéresser la communauté, vous pouvez bien entendu suivre les instructions pour créer un .torrent et le soumettre.

Quelques exemples de fichier que l\’on peut trouver sur Free Torrent :

Fortune et Kaamelott

La commande fortune permet d\’afficher dans son terminal des citations en tout genre (extraits de livres, théorèmes, citations d\’hommes politiques, etc…). Bien que ce ne soit pas d\’une utilité flagrante, voire même carrément chronophage, une petite citation à chaque ouverture de terminal, par exemple, ajoute un peu de gaîté à une journée de travail pas toujours reluisante.

Pour l\’installer et ajouter des citations françaises :

$ sudo apt-get install fortune fortunes-fr

Ensuite l\’exécution se fait simplement en tapant la commande fortune éventuellement suivie d\’un des thèmes présent dans la liste issue de fortune -f.

Seulement voilà… Les citations incluses dans le paquet ne sont pas toujours fantastiques et parfois même incompréhensibles. Bref, suite à un journal posté sur LinuxFr concernant une fortune sur La Classe Américaine, je me suis lancé dans l\’écriture d\’un fichier contenant des citations de Kaamelott. Pour avoir une bonne base, je suis parti sur celles proposées sur Wikiquote. Après avoir ajoutées les extraits de la page principale et des pages dérivées (Arthur, Léodagan, Perceval, Karadoc, etc…) j\’arrive à un total de 505 entrées ce qui commence à être suffisamment correct pour le partager! Le fichier texte se trouve ici. Une fois que vous l\’aurez enregistrer, ouvrez un terminal et allez dans le répertoire contenant ce fichier texte puis :

$ mv kaamelott.txt kaamelott
$ strfile kaamelott
\"kaamelott.dat\" created
There were 505 strings
Longest string: 2166 bytes
Shortest string: 50 bytes

La comamnde strfile va générer un fichier .dat lisible par fortune. Il suffit ensuite de copier ces deux fichier dans le répertoire approprié :

$sudo cp kaamelott kaamelott.dat /usr/share/games/fortunes/

Le tour est joué! La preuve :

$ fortune kaamelott
Un village assailli de brigands, une femme qui se fait tabasser, une poule qui boîte,
c est pas les opprimés qui manquent ! Et là au moins, j aurais l impression de servir
à quelque chose.
[Lancelot, Livre III, 1 : Le chevalier errant]
$

Enfin, pour avoir une citation au lancement de son terminal il suffit d\’ajouter cette commande dans son fichier ~/.bashrc.

Le manuel de la commande fortune se trouve . Un explication détaillé est également disponible ici.

Si vous avez des suggestions de citations à ajouter, ce sera avec plaisir! Postez les dans les commentaires et je me chargerai du reste. Si vous pouvez en plus fournir le nom et le numéro de l\’épisode, alors là c\’est parfait!

Agrégateur de flux RSS : rssLounge

L\’un des intérêts à avoir son serveur personnel (ou même un hébergement chez un prestataire) c\’est qu\’on a alors un choix important d\’applications web open source pour tout type d\’utilisation et qu\’on peut ainsi se détacher des solutions propriétaires grand public avec lesquelles le contrôle de ses données personnelles est complexe pour ne pas dire impossible. Pour qui a quelques notions de base sur l\’administration d\’un serveur et sait suivre un tutoriel ou lire un README, il devient très facile de propulser un CMS, un blog ou encore un webmail.

Afin de poursuivre mon but de fuir Google, j\’ai souhaité remplacer l\’agrégateur de flux RSS Google Reader que j\’utilisais par une solution open source hébergée sur mon serveur. Malheureusement, ce genre d\’application ne court pas les rues. Mon premier choix s\’est porté sur Gregarius qui semble être l\’agrégateur web open source le plus populaire. Problème : le projet n\’est plus maintenu. Bref, en cherchant un peu, je suis tombé sur rssLounge. Il s\’agit d\’un agrégateur de flux dont le style est bien travaillé et qui utilise PHP/MySQL (et de l\’AJAX pour la navigation). Le traitement des flux est basé sur la bibliothèque Simple Pie, une des plus abouties.

Actuellement dans sa version 1.3, rssLounge propose presque tout ce qu\’on attend d\’un agrégateur :

  • classement des flux par catégorie
  • champ de recherche
  • paramètres d\’affichage \ »non-lu / tous / publié à telle date\ »
  • affichage spécifique pour les flux ne contenant que des images
  • marquage de flux en favoris
  • import/export en OPML (compatible Google Reader)
  • mise à jour des flux par AJAX ou crontab
\"rssLounge\"

Les deux seules fonctionnalités qu\’il lui font vraiment défaut selon moi sont la lecture des médias (vidéo ou audio) et l\’interprétation des balises spéciales permettant d\’afficher du code par exemple mais ceci semble plus lié à une limitation de Simple Pie. Hormis ces deux choses qui imposent parfois d\’ouvrir l\’article dans son site original, cette application est très efficace. Quelques détails supplémentaires : rssLounge peut (doit?) être protégé par un identifiant et un mot de passe mais ne gère pas le multi-compte. Ah! Et j\’oubliais, il est compatible avec les navigateurs basés sur Webkit et Gecko (Firefox, Safari, Opéra, Chrome, …) donc pas IE !!

Vous pouvez le tester sur la page de démo mise en place par l\’auteur de rssLounge.

Erreur WordPress

Lors de l\’installation de ce blog WordPress sur mon serveur sous Ubuntu Server 9.10, j\’ai eu droit dans l\’interface d\’administration à plusieurs messages de ce genre dans les widgets du tableau de bord :

Fatal error: Allowed memory size of 33554432 bytes exhausted

Pour corriger ça, il suffit d\’éditer la ligne suivante du fichier /etc/php5/apache2/php.ini :

memory_limit: 16M

Et la remplacer par :

memory_limit: 64M

Un redémarrage d\’apache2 plus tard et c\’est réglé!