Le TwiBlog

The one with Twidi

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

jeudi 8 novembre 2007

SliTaz GNU/Linux : mini distribution linux (25mo) francophone type live CD (ou clé USB) incluant Firefox

Lu sur DLFP :

SliTaz GNU/Linux est une mini distribution francophone d'environ 25 Mo, distribuée sous forme de LiveCD, elle fonctionne entièrement en mémoire vive (RAM), ce qui permet d'avoir un système rapide avec des applications réactives ...

Plus d'infos sur le lien ci-dessus ou directement sur le site (en français) de SliTaz

dimanche 2 septembre 2007

Récupérer la liste des modules perls à installer

Réinstallant une machine, j'ai eu besoin de connaître tous les modules perl à réinstaller.

Quelques find, grep et sed suffisent :

find ./ \( -name '*.pm' -or -name '*.pl' -or -name '*.cgi' \) -exec grep -io '\(^\|\s\|;\)use\s\(\w\+::\)*\w\+' {} \; | grep -v 'use \(Exporter\|Carp\|constant\|lib\|vars\|base\|POSIX\|strict\)$' | sed "s/^[[:space:]]*use[[:space:]]*//i" | sort | uniq

De là vous faut retirer vos propres modules.

dimanche 8 juillet 2007

Marquer des mails comme lus avec procmail

(Attention ce billet ne concerne que les mails stockés dans des boîtes de type Maildir et non pas Mailbox)

A partir du moment où on a une règle de fitrage dans son fichier .procmailrc qui gère les spams, on peut vouloir que les mails déplacés par cette règle dans le dossier .Junk/ soient mraqués comme non lus.

Imaginons que votre règle soit actuellement :

:0
* ^X-Spam-Flag:.*yes
.Junk/

Le déplacement de mail se fait alors dans .Junk/new/

L'idée est de remplacer ce déplacement par un déplacement .Junk/cur/, mais celà n'est pas suffisant pour que le mail soit marqué comme lu. Il faut également rajouter le flag ":2,S" (:2 par défaut (voir explication sur Wikipedia et S pour "Seen").
Pour celà, on récupère le nom du fichier (en se basant sur $LASTFOLDER qui contient le chemin complet du mail en cours de traitement), et on effectue le déplacement/renommage en même temps.

Dans le cas où on veut effectuer ce marquage pour plusieurs règles, il peut être intéressant de factoriser.

On va donc mettre dans un fichier externe (par exemple ~/.procmailrc.moveandmarkasread) la règle "déplacer et marquer comme lu" :

:0c
$foldername

:0
* LASTFOLDER ?? /\/^/+$
{ tail=$MATCH }

TRAP="mv $LASTFOLDER $foldername/cur/$tail:2,S"

HOST

Pour plus de facilité, on va déclarer en haut de notre fichier .procmailrc une variable pour le chemin de ce fichier (on considère que $HOME est déjà défini)

MOVEANDMARKASREAD=$HOME/.procmailrc.moveandmarkasread

Comme on aura pu le voir dans le fichier en question, il faut définir une variable foldername qui contient votre dossier dans lequel le message devrait être déplacé. Dans notre exemple il s'agit de .Junk/ (ne pas oublier le / final !)

On va ensuite inclure ce fichier externe pour appliquer la règle, grâce à la commande INCLUDERC

Cela donne au final la règle suivante (qui remplace celle d'origine) :

:0
* ^X-Spam-Flag:.*yes
{
  foldername=.Junk/
  INCLUDERC=$MOVEANDMARKASREAD
}

lundi 2 juillet 2007

ssh sur un autre port : quelles options pour scp et rsync

Si jamais votre serveur ssh écoute sur un autre port que son classique port 22, il faudra l'indiquer aux autres programmes utilisant ssh, comme scp et rsync

Voici les options à utiliser :

ssh : -p PORT

scp : -P PORT (notez le P majuscule)

rsync : -e 'ssh -p PORT'

Comment reprendre une copie scp interrompue (comme un wget --continue) : rsync --partial

Imaginez que vous soyez en train de récupérer un fichier via scp

Typiquement:

scp user@host:/path/to/the/file .

Et là, à 95%, c'est le drame. Pour une raison inconnue le réseau tombe et la connexion ssh utilisée par scp se coupe.

Comme tout le monde, vous cherchez dans le man scp l'option qui, comme pour wget, permet de reprendre un téléchargement là ou il en était. Mais non, rien, pas de --continue ou autre option équivalente. A priori c'est reparti pour le téléchargement du fichier en entier.

Et non ! C'est là que rsync nous sauve la vie, grâce à son option --partial

Voici la commande :

rsync --partial user@host:/path/to/the/file .

(Commande à relancer plusieurs fois si nécessaire)

mercredi 6 juin 2007

Ubuntu / Kubuntu : problèmes d'extensions avec le firefox intégré : firebug et sylish

A chaque fois que je me remet à utiliser le firefox intégré à ubuntu (ou kubuntu dans mon cas), je me retrouve avec une ou deux extensions qui ne marchent pas.

Actuellement il s'agit de stylish et du très connu firebug.

Bref, n'ayant pas envie de chercher trois ans la solution, j'ai choisi simplement d'installer la version officielle de Mozilla Firefox.

1) Commencer par télécharger Firefox

2) Le décompresser dans un répertoire quelconque (par exemple /home/moi/bin, ce qui va créer un répertoire /home/moi/bin/firefox)

3) Dire au système d'utiliser cette version :

sudo mv /usr/bin/firefox /usr/bin/firefox.orig
sudo ln -s /home/moi/bin/firefox/firefox /usr/bin/firefox

(Notez bien le firefox/firefox, qui est donc l'exécutable firefox dans le répertoire du même nom)

4) Empêcher les mises à jour automatiques d'écraser ce nouveau lien symbolique... on va simplement interdire de mettre à jour le firefox intégré à ubuntu (le notre se mettra à jour tout seul). Pour cela on va utiliser la technique que j'ai décrit dans mon article debian / ubuntu / apt / dpkg : Comment empêcher la mise à jour d'un paquet :

sudo echo "firefox hold" | dpkg --set-selections

Et voilà, firefox est pleinement fonctionnel !

samedi 26 mai 2007

Utiliser "ssh-copy-id" vers une machine où ssh tourne ailleurs que sur le port 22

ssh-copy-id est un script qui permet de copier sa clé publique sur une machine distante, et ainsi pouvoir se connecter à cette machine en ssh avec sa clé et non le mot de passe (et ainsi ne plus avoir besoin de s'identifier à chaque fois, grâce à ssh-add ou pam-ssh)

En tant que script, il permet d'éviter la copie à la main du fichier nécessaire.

Mais en tant que script, il n'est pas prévu énormément d'option, et notamment pas la possibilité de spécifier le port sur lequel tourne ssh sur la machine distante.

En jetant un oeil au script j'ai néanmoins trouver comment faire :

ssh-copy-id -i CLE_PUBLIQUE "-p PORT SERVEUR"

Remplacer

  • CLE_publique par le fichier de votre clé publique, par exemple ~/.ssh/id_rsa.pub
  • PORT par le port sur lequel ssh tourne sur la machine distante
  • SERVEUR l'ip ou le nom de la machine distante

Dans l'idéal on n'aurait pas à saisir l'option -i (fichier de la clé publique) mais c'est impératif si on veut pouvoir utiliser la bidouille "-p PORT SERVEUR"

Connexion linux/ubuntu avec passphrase ssh (pam-ssh)

Un petit billet pour expliquer comment se logguer dans sa session ubuntu avec sa passphrase ssh au lieu de son mot de passe classique.

L'avantage principal est notamment de valier votre passphrase ssh et ainsi pouvoir vous logguer sur tout compte ssh autorisé sans saisir votre passphrase à nouveau, ni lancer un ssh-add.

Dans le meilleur des cas vous économisez une saisie de mot de passe : on le fait au début une fois pour toute.

Voici les étapes à suivre :

1) Installer pam-ssh :

sudo aptitude install libpam-ssh

2) Créer une clé ssh si vous n'en avez pas déjà une (je pense que si vous lisez ce topic, vous l'avez déjà)

ssh-keygen

3) Modifier la séquence de validation du login.

Ci-dessous, remplacez $EDITOR par votre éditeur texte favori, ou faîtes un

export EDITOR=votre_editeur_favori

Il faut donc modifier deux fichiers lié à pam :

sudo $EDITOR /etc/pam.d/common-auth

Avant la première ligne commençant par "auth", ajouter

@include pam-ssh-auth

Puis :

sudo $EDITOR /etc/pam.d/common-password

Avant la première ligne commençant par "password", ajouter

@include pam-ssh-session

Vous pourrez toujours vous logguer avec votre mot de passe, dans quel cas il vous faudra saisir ultérieurement votre passphrase ssh en cas de besoin.

Note : si vous vérouillez votre session, pour revenir, tapez également votre clé ssh.

lundi 21 mai 2007

Passage (temporaire ou non) de Kubuntu à Ubuntu (les deux en Feisty)

Et bien oui des fois des envies prennent sans qu'on s'y attende...

J'ai donc décidé de retester Gnome via Ubuntu, après l'avoir quitté il y a quelques temps déjà pour Kde via Kubuntu.

En vrac :

D'abord les "moins" :

1) nautilus à pas de système d'onglet, ca craint (et je parle pas de la possibilité de konqueror de partager la fenetre)

2) pour les notifications evolution (mail) et gaim (messagerie instantanée), faut se battre :

  • il faut le paquet "mail-notification-evolution" pour evolution (et le configurer dossier par dossier dont on veut etre notifié)
  • il faut le paquet "gaim-libnotify" pour gaim, et le configurer

bon avec ça on a des notifications sympathiques, toutes sur le meme thème. pas évidant

3) le orange, c'est MOCHE, personnellement j'ai mis le theme "glider". Mais quoi qu'il en soit, la personnalisation est extrèmement moins poussée que pour KDE

4) pas possibile dans la "tray barre" (appelée "zone de notification" dans gnome") de choisir de masquer tel ou tel icone

5) il manque un "centre de configuration" à la kde... toujours passer par le menu, c'est lourd (oui je sais il y a gnome-control-center, mais il n'est pas proposé dans le menu ubuntu)

6) les bureaux :

  • il faut installer brightside pour passer d'un bureau à l'autre en amenant la souris au bord de l'écran
  • avec ctrl-alt-droite/gauche, quand on est "au bout", on revient pas au premier.. j'hallucine...

7) un petit manque de personnalisation d'evolution par rapport à kontact (je garde le tout-intégré-gnome pour utiliser beagle plus tard)

8) contrairement au gestionnaire de session de kde, celui de gnome ne considère par firefox comme une appli qu'il peut relancer... dommage, il faut le spécifier à la main

Ensuite les "plus" :

1) la "deskbar", c'est top, une sorte de katapult en mieux/différent (j'ai encore le malheureux reflexe du alt-space)

2) beryl ca marche tout seul (inutile et désagréable à l'utilisation, mais beau et simple à faire marcher, faut par contre installer des paquets en plus pour la configuration)

3) le majhong est plus beau que celui de kde (bon ok, c'est un peu inutile comme remarque)

Bon, on verra à l'utilisation, je n'ai pas viré mon kubuntu, je suis juste sur une partition séparée (celle sur laquelle trainait le windows installé avec mon portable, utilisé trois ou quatre fois depuis l'achat il y a 14 mois). Il est possible que je reste sous ubuntu un certain temps, meme si je sais qu'au final il me manquera toujours la possibilité qu'a KDE de tout personnaliser au maximum.

lundi 23 avril 2007

Kubuntu : problème lors du passage de Edgy à Feisty (le "Kubuntu upgrade tool" ne s'ouvre pas)

En utilisant la procédure recommandée pour passer mon Kubuntu de Edgy au tout nouveau Feisty, j'ai eu un problème, que j'évoque ici afin de donner la solution.

Il est donc recommandé d'utiliser Adept Manager, de faire un "Fetch update", et que de là, un assistant va s'ouvrir. Jusque là tout va bien.

Cet assistant se termine par un clic sur un bouton "finish" à partir duquel est normalement censé s'ouvrir le "Kubuntu upgrade tool". Sauf que celui ne s'ouvrait pas.

Pour que cet outil de mise à jour s'ouvre, il faut deux conditions :

- TOUS les paquets doivent être à jour (j'avais un problème ave mon opera qui demandait une version de libc que je n'avais pas, solution : apt-get remove opera)

- TOUS les dépôts contenus dans /etc/apt/sources.list doivent être bon (ils doivent répondre et ne pas avoir de problème de clé), si un ne répond pas, il suffit de le commenter (en rajoutant un # devant)

Une fois ces petits problèmes résolus, l'upgrade se passe bien (téléchargement de 1004Mo en cours pour moi)

Mysql 5 (5.036, 5.038 et suivant) : l'installation échoue en cas de noyau 2.4

Lors du passage de mysql-server-5.032 à mysql-server-5.038-1, la procédure d'installation (en fait un apt-get upgrade) s'est bloquée à ce niveau :

Setting up mysql-server-5.0 (5.0.38-1) ...
Stopping MySQL database server: mysqld.

Après moulte recherche, il s'avère que c'était un problème de version de noyau. En effet, depuis la version 5.036, le serveur mysql a besoin d'un noyau 2.6, or j'étais en 2.4 depuis des lustres.

MySQL Bugs: #27714: mysql_install_db fails with kernel 2.4

samedi 28 octobre 2006

Firefox 2 : touches acceskeys, restauration des sessions et touche backspace

Je ne vais pas faire un billet sur Firefox 2 récemment sorti, tout le monde l'a fait.

Non, je vais faire un billet un peu plus pratique comportant 3 points qui me posaient problème mais que j'ai résolu (grâce à un certain google).

Ces trois points nécessitent des modifications via about:config, et le redémarrage du navigateur pour que les changements prennent effet.

Touches acceskeys

En HTML il est possible d'attribuer un raccourci clavier à un bouton, champ de saisie... Ce raccourci était d'fini par une lettre, associée à la touche ALT.

Avec Firefox 2, ce n'est plus la touche ALT seule, mais ALT et SHIFT, qu'il faut presser en même temps que la lettre pour obtenir le même effet !

Il est cependant possible de rétablir le comportement original :

  1. allez à l'adresse about:config
  2. tapez ui.key.contentAccess dans le filtre
  3. double-cliquez sur la ligne
  4. remplacez 5 par 4

Restauration des sessions

Edit : Il suffit de choisir, "Afficher les derniers onglets et fenêtres utilisés" pour "Au démarrage de Firefox" dans l'onglet "Général" des options

Pour ceux que ça intéresse quand même, je disais :

Une des nouvelles fonctionnalités de Firefox 2 est d'implémenter un système de restauration des sessions, utile notament en cas de crash.

Je n'ai trouvé aucune option à ce sujet, et cette fonctionnalité est désactivée par défaut. Voici comment la mettre en place, pour se passer de l'ancienne extension "sessionsaver" (ou autre)

# allez à l'adresse about:config # taper sessionstore dans le filtre # entrez (ou modifiez si elles existent) les valeurs suivantes :

* browser.sessionstore.enabled, de type booléen, à "true" * browser.sessionstore.resume_from_crash, de type booléen, à "true"

Et si vous souhaitez que la session soit restaurée même en cas de fermeture volontaire vu navigateur : * modifiez browser.startup.page en remplaçant 1 par 3

Touche backspace

Sous linux, la touche backspace fonctionnait auparavant comme sous windows : retour à la page précédente. Cela a été modifié (sous linux uniquement) pour une histoire d'homogénéité. Comme pour les accesskeys, cela ne me convient pas, et voici donc comment retrouver le fonctionnement de la version 1.x :

  1. allez à l'adresse about:config
  2. tapez browser.backspace_action dans le filtre
  3. changez la valeur de 1 à 0

jeudi 3 août 2006

Vim 7 pour Ubuntu (Dapper)

Utilisateur intensif de vim depuis que je l'ai découvert il y a plusieurs mois, j'ai entendu parlé à de nombreuses reprises de la version 7.

Vim7 n'étant pas actuellement disponible sous Ubuntu Dapper que j'utilise (en fait Kubuntu), j'ai cherché et... trouvé !

Il suffit d'inclure la ligne suivante dans son fichier /etc/apt/sources.list :

deb http://www.freshnet.org/debian/dapper /

Le tout suivi d'un petit sudo apt-get update && sudo apt-get upgrade

Liens :

mercredi 24 mai 2006

Faire tourner IE (Internet Explorer) sous Wine, suite : IEs4Linux

Il ya plus d'un an j'indiquais sur ce même blog une solution permettant de faire fonctionner Internet explorer sous Wine (sous linux, donc).

Un peu plus tard, j'abandonnais cette solution pour une autre, plus performante.

Encore une fois, je change, et cette fois c'est vers "IEs 4 Linux" que je m'oriente.

Il peut installer plusieurs IE, au choix, la version 6, 5.5 et/ou la 5. Le tout avec Flash 8.

Pratique, il fonctionne avec les dernières versions de wine, plus besoin de le figer comme je l'expliquais il y a quelques mois.

Et l'installation est on ne peut plus simple. On choisi juste les versions désirées.

Une fois l'installation terminée, le script nous indique qu'il nous suffit ensuite de taper par exemple "ie6" pour que ce dernier se lance, assez rapidement à mon goût.

IEs 4 Linux - Internet Explorers for Linux

lundi 27 mars 2006

Un portable, plusieurs réseaux, sous Linux (debian / ubuntu)

J'utilise chez moi et au travail le même pc portable (que je trimballe, mais c'est pas lourd, ca fera l'objet d'un autre billet).

Or bien sur les réseaux sont différents

  • à la maison, wifi protégé en dhcp
  • au boulot, reseau ethernet sans dhcp
  • au boulot toujours, quand le reseau marche pas, le wifi du voisin, dhcp, non protégé

Le soucis : a chaque fois jouer avec les ifup, ifdown, changer le resolv.conf (car le dhcp ecrase le fichier, et le reseau sans dhcp a besoin qu'on spécifie les dns)

L'envie : une simple commande très courte à taper à chaque fois que j'ai besoin de changer de reseau.

La solution : deux paquets (debian) à installer : ifscheme et resolvconf

ifsheme se charge de gérer des profils réseaux. Quant à resolvconf, il se charge de gérer, comme son nom l'indique, le fichier resolv.conf

Configuration :

Auparavant, j'avais une zone du type "iface eth0 inet static" et une "iface ath0 inet dhcp" (ath0 c'est mon interface wifi), avec des lignes commentées, que je modifiais pour chaque changement. En effet, je trouvais ça plus rapide que d'utiliser les outils de gnome/kde pour gérer les profils réseaux. Et j'avais un fichier "resolv.conf.taf" que je copiais à la place de resolv.conf dès que j'arrivais au boulot.

Maintenant, voici ce que j'ai dans mon fichier /etc/network/interfaces (je saute le début du fichier concernant l0, et je remplace les infos (ip, cle...) par des lettres) :

mapping eth0
        script ifscheme-mapping
  
iface eth0-taf inet static
        address 192.168.xxx.yy
        netmask 255.255.255.0
        gateway 192.168.xxx.1
        dns-nameservers aa.bb.cc.dd ee.ff.gg.hh

mapping ath0
        script ifscheme-mapping
 
iface ath0-taf inet dhcp
  
iface ath0-home inet dhcp
        wireless-essid MONESSID
        wireless-key MACLEWEP

On le voit, pour eth0, je ne gère que le scheme (profil) "taf", alors que pour ath0 (wifi), je gère "taf" et "home". Les profils sont gérés par carte, en spécifiant interface-scheme, donc ath0-taf et ath0-home sont deux profils totalement séparés.

On remarquera la ligne dns-nameservers pour eth0-taf, où l'in indique les dns. Cette ligne est inutile pour les profils wifis car ils sont en dhcp.

Pour utiliser ces profils, il suffit d'utiliser en premier lieu la commande ifscheme nom-du-scheme, suivi du ifup de l'interface voulue.

Par exemple : ifscheme home; ifup ath0

C'est déjà très bien. Mais pour moi, cela faisait trop à taper.

Je me suis donc créé un petit script, que j'ai appelé "n" (pour network) et que j'ai placé dans mon répertoire ~/bin (répertoire placé dans le path grace à une configuration de mon bashrc).

Voici ce script "n"

#!/bin/sh

case "$1" in
        taf)
                sudo ifdown ath0
                sudo ifscheme taf
                sudo ifup eth0
        ;;

        taf2)
                sudo ifdown eth0
                sudo ifscheme taf
                sudo ifup ath0
        ;;

        home)
                sudo ifdown eth0
                sudo ifscheme home
                sudo ifup ath0
        ;;

        *)
        echo "Usage: n {taf|taf2|home}"
        exit 1
        ;;
esac

L'utilisation est alors ultra simple

  • n taf quand j'arrive au boulot
  • n taf2 quand je préfère utiliser la connexion wifi du boulot
  • n home quand j'arrive chez moi

C'est très simple et rapide.

Bien sûr, il existe d'autres solutions, notamment la reconnaissance et configuration/choix automatique du réseau (hotplug et consors), le choix du profil par interface graphique...

Je vous met ici ce qui m'a mis sur la piste de resolvconf et ifscheme, et qui propose tout un tas d'autres solutions : Banc d'essai : Un portable, plusieurs reseaux (probleme classique)

PS : pour faire marcher resolvconf, j'ai du effectuer une action lue dans la doc : remplacer le fichier /etc/resolv.conf par un lien symbolique vers /etc/resolvconf/run/resolv.conf