Humus numericus

Aller au contenu | Aller au menu | Aller à la recherche

R, Spip et autres

Linux, Debian, etc.

Fil des billets - Fil des commentaires

vendredi 7 juillet 2006

Petite astuce pour le sélecteur de fichiers de Gnome

Je ne sais pas si vous êtes du même avis, mais j'ai personnellement du mal avec l'actuel sélecteur de fichier de Gnome, qui sert entre autres pour toutes les fonctions relatives au file system de Firefox. Ce qui est le plus gênant est surtout l'impossibilité à première vue de pouvoir rentrer directement le nom du fichier au clavier, par auto-complétion ou par copier-coller.

Et ben en fait c'est possible. Il suffit de faire un petit Control + L et un champ texte s'ouvre devans vos petit yeux émerveillés, champ dans lequel vous pouvez saisir le nom du fichier, avec en prime une autocomplétion digne de la ligne de commande. Si c'est pas du bonheur...

lundi 19 juin 2006

Installation du client Cisco VPN avec un noyau 2.6.16

Je viens de me rendre compte que mon client VPN Cisco ne fonctionnait plus au boulot depuis mon passage au noyau linux 2.6.16.18. Après un peu de Googling, voici les deux opérations à effectuer pour que ça tourne :

Problème de compilation

Pour régler l'erreur apparaissant à la compilation du module, il faut éditer le fichier linuxcniapi.c et remplacer toutes les occurrences de skb->stamp en skb->tstamp.

Problème à l'initialisation

Une fois le module compilé et chargé, je n'arrivais plus à lancer le VPN et me retrouvais avec le message d'erreur suivant :

privsep: unable to drop privileges: group set failed.

La solution est assez simple : un petit chmod 4111 /opt/cisco-vpnclient/bin/cvpnd et ça roule.

Je préfèrerais utiliser un client libre comme vpnc, mais il ne fonctionne pas avec notre super installation de la mort qui tue du boulot. Bref.

mardi 18 avril 2006

Hébergeurs alternatifs

L'hébergement de sites web et d'autres services liés à l'Internet (mails, domaines, listes...) constitue un marché plutôt ouvert sur lequel se trouvent des offres très différentes, d'autant plus si l'on considère que les frontières ne sont pas franchement un obstacle (héberger un site aux Etats-unis ou en Inde est presque aussi simple que le faire en Poitou-Charentes). On peut donc trouver :

  • de très nombreuses offres commerciales très difficiles à départager en termes de fonctionnalités, prix, support, espaces de stockage ou volume de trafic ;
  • des hébergeurs gratuits, mais souvent au prix de fonctionnalités limitées (pas de noms de domaines) ou de contraintes insupportables (pub) ;
  • des hébergeurs spécialisés, notamment ouverts seulement à des associations à but non lucratifs.

On trouve également un certain nombre d'hébergeurs "alternatifs", qui se situent plus ou moins en dehors des circuits commerciaux classiques et qui gagnent souvent à être connus. Voici un rapide descriptif de trois d'entre eux (la liste n'est certainement pas exhaustive), que je connais plutôt bien puisque je les utilise pas plus tard qu'actuellement.

Ouvaton

Ouvaton est un hébergeur coopératif. Ceci signifie qu'il fonctionne avec des AG et ce genre de choses, et qu'à l'inscription vous aurez à souscrire une ou plusieurs parts sociales de la coopérative. Ouvaton me semble avant tout intéressant pour des sites de petite taille et avec un trafic peu important, faute de quoi l'hébergement peut vite devenir onéreux. Le principe de tarification est celui de "briques de base", qui correspondent chacune à 20Mo d'espace disque et à 600Mo de trafic mensuel pour un coût annuel de 12 euros par an. Pour ce prix-là vous avez de la gestion de domaines et de mails, du PHP, une base MySQL, et des listes de discussion rudimentaires. D'expérience, les problèmes techniques sont assez rares (sauf quand RedBus tombe en rade, bien sûr), et le support plutôt réactif. L'implication possible dans la vie de la structure se fait surtout à travers les AG ou la participation à des sites de documentation et d'échanges.

En deux mots, Ouvaton me semble intéressant pour un site de petite taille ne nécessitant qu'une ou deux briques d'hébergement. Au-delà, on peut trouver des offres plus intéressantes.

L'autre net

L'autre net est un hébergeur autogéré. Il s'agit à la base d'une association, qui essaie d'appliquer le principe de l'autogestion pour son fonctionnement : en gros, deux listes de discussions servent de "lieux de vie" et un système de vote permet de trancher les choix importants. En pratique, le maintien d'une activité démocratique soutenue n'est pas évident et le système repose essentiellement sur les épaules de quelques bénévoles, notamment les administrateurs des serveurs. L'offre de l'autre net est intéressante puisque pour 23 euros par an, vous avez droit à 500Mo d'espace de stockage, pas de limite en termes de trafic (si ça reste raisonnable), une gestion des noms de domaines et des mails, des listes de discussion avec Mailman, du PHP, une base MySQL. Le fonctionnement des serveurs reposant entièrement sur une poignée de bénévoles, il peut arriver que des difficultés techniques ne soient pas résolues dans la minute, ou que certaines opérations délicates (comme la migration de Debian Woody vers Sarge) entraînent des perturbations, mais depuis que j'utilise leurs services (ce site, mon mail, plusieurs listes), je n'ai vraiment pas à me plaindre de quoi que ce soit. Et puis si j'avais à me plaindre, je n'aurais qu'à mettre la main à la pâte, car la participation de tous est vraiment encouragée.

L'autre net est donc un hébergeur intéressant, sans doute plus engagé qu'Ouvaton sur pas mal d'aspects, et qui propose des services très intéressants à un prix défiant toute concurrence. Je le recommande donc vivement, sauf si vous voulez monter un site de e-business avec une disponibilité de 99,99%. Mais dans ce cas, vous ne seriez pas en train de lire ce billet.

Hcoop

Enfin, dernière piste, Hcoop est un hébergeur situé aux Etats-Unis et qui fonctionne de manière assez proche de celle de L'autre net. Il s'agit par contre d'un service orienté vers les utilisateurs expérimentés (maîtrise de l'anglais, connaissance de la ligne de commande sous Linux et de la configuration de base d'Apache obligatoires). Il s'agit en fait d'un regroupement de personnes qui se partagent les frais pour la location de deux serveurs dédiés pour un montant d'environ 200 dollars par mois. Le coût total est divisé par le nombre d'adhérents, qui tourne actuellement autour de 60, ce qui fait environ 3 dollars par mois et par adhérent (le paiement se fait par Paypal). Les services proposés sont très riches du moment qu'on sait les utiliser, et les quotas sont assez flous du moment que personne ne nuit trop au fonctionnement de l'ensemble. En gros, pour ce prix là vous avez autour de 1Go d'espace, un trafic important, un accès SSH direct au serveur, de l'hébergement de domaines, de mails, de listes de discussion avec Mailman, mais aussi du CGI (mais pas de FastCGI), ce qui vous permet de faire tourner du Python, Perl, Ruby, PHP... Mais la force de Hcoop est que tout cela est à la fois très souple et très sécurisé. Comme vous avez un accès direct à un serveur sous Debian Testing, vous pouvez très bien vous installer une base MySQL, Postgres ou SQLite, un dépôt Subversion, voire vous recompiler votre propre Apache, etc. Mais tout cela est également très bien conçu dès le départ et très bien encadré. Il semble également y avoir une vie démocratique interne avec des listes de discussion, un bureau élu, un wiki, un système de votes, etc. Le fait que le serveur soit aux Etats-Unis ne pose pas de problèmes en termes de temps d'accès d'après ce que j'ai pu constater.

Je recommanderais donc Hcoop à des utilisateurs avertis souhaitant avoir une grande souplesse d'utilisation pour un prix au final plutôt modique, surtout compte tenu des taux de change actuels.

samedi 11 mars 2006

Hébergement pour Ruby on Rails

Comme je m'intéresse de plus en plus à Ruby et Ruby on Rails, d'autant que j'ai l'occasion de m'y mettre au boulot, je me suis demandé quels pouvaient être les hébergeurs intéressants pour un hébergement de sites web en général et d'applis RoR en particulier.

Il y'a pas mal d'infos là-dessus sur le wiki de RoR, avec toute une liste d'hébergeurs disponibles. Une liste un peu plus synthétique se trouve sur Rails Hosting, avec en plus un avis personnel : les hébergements les plus sérieux se trouveraient sur TextDrive (l'hébergeur officiellement soutenu par RoR, mais un peu cher), Site5 et Dreamhost. A noter que le seul hébergeur français à proposer RoR est Typhon, qui propose d'ailleurs une offre de découverte de Rails.

En m'y penchant d'un peu plus près, j'ai trouvé que l'offre de Dreamhost était assez stupéfiante : 20 Go d'espace (avec 160 Mo de plus chaque semaine), 1 To de trafic (avec 8 Go de plus chaque semaine), domaines, mails, listes de diffusions illimités, un nom de domaine gratuit pendant toute la durée de l'hébergement, bases MySql illimitées, PHP4, PHP5, Ruby, CGI, FastCGI, accès FTP, SFTP, WebDAV, accès direct sur le serveur par SSH, dépôts CVS et Subversion... le tout pour environ 9.95$ par mois (selon le mode de paiement).

Sachant qu'il y a 97 jours d'essais pendant lesquels on peut changer d'avis et se faire rembourser intégralement, j'ai donc pris un compte pour tester, et ça a l'air de marcher plutôt bien. C'est assez bluffant de pouvoir avoir un accès SSH direct avec un compte sur le serveur tout en sachant qu'on dispose de 20 Go de stockage...

Au niveau du tarif, si le montant annuel peut paraître un peu élevé de prime abord (120 dollars par an, soit environ 100 euros), il faut noter qu'il y a des codes promotions très intéressants disponibles pour une première inscription. Le principe est que pour tout code promotion utilisé, une partie va au nouvel abonné, une autre à celui qui a créé le code. J'en ai créé un qui vous permet de bénéficier de 75$ de promotion pour tous les plans annuels (ce qui fait que je touche 22$ que je pourrai soustraire du prix de mon hébergement) et le maximum possible pour tous les autres plans. Pour être tout à fait honnête, il est possible de bénéficier de réductions plus importantes assez facilement en Googlant un peu.

Si vous souhaitez bénéficier de cette réduc, il vous suffit d'utiliser le code *** (plus d'actualité, cf. ci-dessous).

Mise à jour : je viens de résilier mon abonnement à Dreamhost à l'instant. Non que je sois mécontent de leurs services, mais j'ai trouvé un hébergeur coopératif intéressant et correspondant davantage à mon état d'esprit (je n'étais qu'à moitié à l'aise avec cette histoire de codes promos). A priori le remboursement des sommes engagées si l'on résilie dans les 97 jours semble fonctionner... Du coup, le code promo en question n'est plus valable !

mercredi 15 février 2006

Utiliser le browser SWT sous Eclipse 3.1.1 avec Debian

J'utilise depuis peu une version recompilée pour testing du paquet unstable d'Eclipse 3.1.1. Tout fonctionne bien a priori, mais je viens de rencontrer une difficulté après l'installation des RDT (Ruby Development Tools) pour utiliser la vue ri : j'obtiens un message d'erreur me signalant un crash de SWT.

En fait, cette erreur est due à l'impossibilité pour Eclipse et SWT d'utiliser le widget Browser du fait d'une dépendance non-satisfaite, en l'occurrence il a besoin de la librairie libgtkembedmoz.so qu'il ne retrouve pas. Les instructions pour faire tourner tout ça sont dans la FAQ d'Eclipse, mais en fait sous Debian le problème vient du fait que SWT cherche la librairie manquante sous Firefox alors qu'elle n'est présente que sous Mozilla. Et modifier la variable MOZILLA_FIVE_HOME, comme indiqué dans la faq, ne fontionne pas car celle-ci est initialisée dans le script de démarrage d'Eclipse.

La solution la plus simple est donc de modifier le script de démarrage en question, en l'occurrence le fichier /usr/bin/eclipse en transformant le passage suivant :

# Set path for the Mozilla SWT binding
if [ -d /usr/lib/firefox ]; then
    export MOZILLA_FIVE_HOME=/usr/lib/firefox
elif [ -d /usr/lib/mozilla-firefox ]; then
    export MOZILLA_FIVE_HOME=/usr/lib/mozilla-firefox
elif [ -d /usr/lib/mozilla ]; then
    export MOZILLA_FIVE_HOME=/usr/lib/mozilla
fi

en ceci :

# Set path for the Mozilla SWT binding
#if [ -d /usr/lib/firefox ]; then
#    export MOZILLA_FIVE_HOME=/usr/lib/firefox
#elif [ -d /usr/lib/mozilla-firefox ]; then
#    export MOZILLA_FIVE_HOME=/usr/lib/mozilla-firefox
if [ -d /usr/lib/mozilla ]; then
    export MOZILLA_FIVE_HOME=/usr/lib/mozilla
fi

Note : je viens de mettre à jour en version 3.1.2, et le problème est fixé dans le /usr/bin/eclipse de la distribution.

lundi 6 février 2006

Mettre en place un antivirus pour Linux à la maison

A priori, le fait d'utiliser un système Linux met déjà son utilisateur à l'abri de la plupart des virus circulant sur le réseau et qui ciblent des systèmes plus répandus et moins fiables (suivez mon regard). Mais cela ne dispense pas d'utiliser un antivirus, surtout quand il en existe de très bons libres et gratuits comme ClamAV.

Voici la méthode que j'utilise pour filtrer mes mails à la maison. Elle utilise un ptit script Perl trouvé sur le web, et n'est certainement pas adéquate pour un gros serveur gérant des dizaines de comptes mails. Elle suppose que vous ayiez déjà un MTA (type postfix ou exim) qui tourne sur votre machine.

La première chose à faire est d'installer clamav en tant que démon. Sous Debian, comme toujours, c'est très simple, en une commande on installe tout ça ainsi que le service de mise à jour automatique de la base de virus :

# apt-get install clamav-freshclam clamav-daemon

La seconde chose est de faire passer tous les mails à travers l'antivirus. Ceci se fait à l'aide de la commande clamdscan. La solution la plus simple que j'ai trouvée consiste en un petit script Perl nommé clamfilter.pl. Le seul inconvénient est qu'il n'utilise pas le démon, mais le client clamav qui lui lance un processus à chaque mail scanné et prend beaucoup plus de ressources système. Le script étant du domaine public (vive le libre !), j'ai donc modifié une dizaine de caractères pour lui faire utiliser clamdscan plutôt que clamscan. Le résultat est le suivant :

#!/usr/bin/perl -w
#
# ClamFilter 1.0
# by Matt Hahnfeld (http://www.everysoft.com/)
# Requires perl, clamscan, procmail, and this script.
#
# This script is public domain.
#

use strict;
use File::Temp 'tempfile';

&main();
exit 0;

sub main {
  # Set up a temporary file for the original message
  my ($tmpfh, $tmpfn) = tempfile( UNLINK => 1 );
  -w $tmpfn or die 'Could not open temp file!';

  # Pass 1: Write out the temporary file
  while (<STDIN>) {
    print $tmpfh $_;
  }
  seek($tmpfh, 0, 0);

  # Pass 2: Scan the message
  open CLAMSCAN, "/bin/cat $tmpfn | /usr/bin/clamdscan --stdout - 2>/dev/null |" or die 'Could not open clamscan!';
  my $clamstatus = qq|X-Virus-Found: yes
X-Virus-Status:
 
 Virus Scan Status:
 
|;
  while (<CLAMSCAN>) {
    $clamstatus .= ' ' . $_;
  }
  close CLAMSCAN;
  $clamstatus .= qq| 
 

|;

  # Pass 3: Print out the message
  my $bodyflag = 0;
  while (<$tmpfh>) {
    if (! $bodyflag and $_ eq "
") {
      if ($?) {
	print $clamstatus;
      }
      else {
	print "
";
      }
      $bodyflag = 1;
    }
    else {
      print;
    }
  }
}

L'installation de ce script est très simple : copiez le contenu dans un fichier /usr/local/bin/clamfilter.pl, rendez le exécutable avec un petit chmod +x clamfilter.pl et ajoutez la ligne suivante dans votre fichier .procmailrc :

:0fw
| /usr/local/bin/clamfilter.pl

Et voilà ! Normalement tous vos mails devraient être scannés avant leur distribution. S'ils contiennent un virus détecté, le script rajoute un flag X-virus-found: yes dans les en-têtes (pratique pour créer des filtres automatiques dans votre lecteur de mail préféré) et ajoute quelques lignes d'information au début du message.

Vous pouvez tester le bon fonctionnement de votre installation d'abord en vérifiant qu'un mail normal passe sans problème, et ensuite en testant avec le fichier de test d'antivirus eicar.

mardi 13 décembre 2005

MPD (Music Player Daemon)

Il existe de nombreux logiciels de lecture audio sous Linux, dont certains sont très avancés et zolis comme Amarok, par exemple. Mais il y en a un qui se distingue du lot, il s'agit de MPD, alias Music player daemon.

MPD n'est pas un lecteur audio à proprement parler. Il s'agit d'un démon qui fonctionne en tant que service sur votre machine. Vous lui indiquez le répertoire où vous stockez vos mp3 et autres ogg et il indexe tout ça ainsi que les tags inclus dans les fichiers. Ensuite, vous utilisez un client (il en existe plusieurs) qui va aller se connecter au serveur, récupérer la liste des morceaux disponibles, vous permettre de créer des listes de lecture, puis lancer la lecture des morceaux par MPD.

Ça peut sembler un peu tordu comme fonctionnement, mais en fait c'est particulièrement malin et ça a de nombreux avantages :

  • ça laisse le choix du client : les clients disponibles sont extrêmement variés. Ça va du client en ligne de commande à l'interface Web en passant par le client graphique en GTK. On a donc le choix, et ce qui est bien c'est qu'on peut en utiliser plusieurs différents si on le souhaite : les listes de morceaux et autres sont stockées par le serveur. On peut ainsi lancer la lecture d'un morceau en ligne de commande et l'arrêter avec le client pour KDE. Personnellement, ma préférence va pour ncmpc, un client texte en ncurses simple et pratique.
  • c'est léger : d'une part vous n'êtes pas obligé de lancer un serveur X pour écouter de la musique si vous utilisez un client texte. D'autre part, une fois la liste de lecture choisie et la lecture lancée, vous pouvez très bien fermer votre client, ça n'arrêtera pas la musique.
  • c'est robuste : si votre client plante, ou même si votre serveur X plante, pas de problème, votre démon continue à tourner et à jouer les morceaux indiqués. Un truc marrant, c'est que si vous arrêtez le système avec MPD en train de jouer quelque chose, celui-ci reprend automatiquement et exactement au même endroit lorsque vous rallumez votre machine !
  • ça fonctionne à distance : vous pouvez très bien utiliser un client texte ou graphique pour vous connecter à distance à un MPD tournant sur une autre machine.

Enfin, une bonne nouvelle n'arrivant jamais seule, il existe un client qui marche très bien et qui permet d'interfacer MPD à audioscrobbler (désormais last.fm) et qui envoie donc les informations sur les morceaux joués à leur serveur automatiquement. Ce client s'appelle mpdscribble, et il y a un paquet Debian qui va bien, comme d'hab.

lundi 14 novembre 2005

Oneliner en Ruby

Après avoir essayé (de manière plus ou moins approfondie) plusieurs langages de script comme Perl ou Python, et après avoir longuement hésité, je crois que mon choix va finalement se porter sur Ruby. Celui-ci me semble en effet combiner à la fois la puissance et la concision de Perl avec la clarté d'un langage purement objet.

Voici donc un exemple de oneliner en Ruby, en l'occurrence qui permet de renommer en minuscules tous les fichiers d'un répertoire :

 ruby -e 'ARGV.each {|file| File.rename(file, file.downcase)}' *

Plutôt simple, non ? En plus, il y a moyen de rendre cela beaucoup plus souple et puissant en utilisant des regexps, du type :

 ruby -e 'ARGV.each {|file| File.rename(file, file.gsub(/toto/, "titi")}' *

mardi 2 août 2005

Avidemux

Ayé ! J'ai enfin trouvé le logiciel qu'il me fallait pour bidouiller un peu de vidéo sous mon Linux. Je ne parle pas de montage ou d'effets spéciaux de transition en fondu au noir, mais plutôt de compression, conversion, redimensionnement, rotation, etc. etc. Et en plus ce petit bijou fonctionne avec une interface graphique, ce qui est quand même bien pratique quand on n'a pas trop envie d'apprendre par coeur les options des lignes de commande de mplayer et de transcode.

Le logicel en question porte le doux nom d'Avidemux, et il permet l'import depuis de nombreux formats, l'édition de la vidéo avec suppression de passages, puis sa conversion via des tas de codecs dont les plus répandus, DivX4, Xvid, Ogg, Mp3, etc. etc. Et la conversion peut se faire via tout plein de filtres qui permettent le redimensionnement, la rotation (super pratique quand vous avez tourné votre vidéo avec l'appareil numérique à la verticale) et des tas de machins que je sais même pas ce que ça fait. Pour la conversion, vous pouvez le faire en deux passes, indiquer la taille désirée ou le bitrate, etc.

Bref, c'est super complet, pratique et facile d'installation. Pour les heureux debianeux qui ont installé les sources.list de Christian Marillat :

apt-get install avidemux

lundi 6 juin 2005

Sarge est sortie !

Ça y'est ! Après trois ans de travail de la part de centaines de bénévoles, la Debian Sarge est officiellement sortie aujourd'hui. C'est beau, tiens.

http://www.debian.org/News/2005/20050606

vendredi 13 mai 2005

Conversion en lot de fichiers WMA en fichiers OGG

Il m'arrive régulièrement de recevoir une série de fichiers audio au format WMA de Windows Media. Mplayer sait les lire, certes, mais quoi de mieux qu'un format audio libre et ouvert comme Ogg Vorbis pour assurer la pérennité de ses musiques préférées ?

Heureusement, grâce à mplayer toujours et à une astuce vue sur linuxfr, voici un petit script shell qui vous permet de convertir en lot tous les fichiers wma d'un répertoire en ogg. Notez que vous pouvez facilement l'utiliser pour effectuer une conversion en mp3, en utilisant lame plutôt que oggenc (mais le format mp3 n'est pas libre) :

#!/bin/sh

for WMA in `ls *.wma`; do
    OGG=`basename $WMA .wma`.ogg;
    TMP=${TMPDIR:-/tmp}/wma2ogg.$$
    mplayer -ao pcm:file=$TMP $WMA;
    trap "rm $TMP* 2>/dev/null" 0
    nice -n 15 oggenc -m 128 $TMP -o $OGG
done

Seul petit hic, ce script peut ne pas fonctionner si les noms de vos fichiers contiennent des espaces. Vous pouvez donc utiliser la commande suivante pour transformer tous les espaces des noms de fichiers de votre répertoire en underscores :

find . -type f -name "* *" -print0 | \
perl -n0e '$old = $_; s/ /_/g; rename $old, $_'

De même, ce script utilise les options de la dernière version de mplayer. Si vous rencontrez des problèmes, vous pouvez essayer la syntaxe suivante :

mplayer -ao pcm -aofile $TMP $WMA;

Editer ou monter une vidéo déjà existante sous Linux

Je suis très loins d'être un spécialiste, mais il existe plusieurs logiciels sous Linux qui permettent de faire du montage et autres éditions/modifications de vidéos. Les plus connus sont sans doute Kino et Cinelerra. Ces deux logiciels prennent en entrée des vidéos au format DV, ce qui est très bien lorsqu'on a une caméra numérique. Mais quand on n'en a pas et qu'on veut juste retoucher une vidéo déjà existante en MPEG4 ou autre ? Ben il faut convertir le fichier (avi, mpeg, etc.) au format DV. J'avais cherché un moyen pendant un moment sans succès, mais une solution a récemment été donnée suite à un journal de Ploum sur linuxfr.

Cette solution utilise mencoder et tient en une ligne :

 mencoder -vf scale=720:576 -ovc libdv -oac pcm input.avi -o output.avi

- page 2 de 3 -