Association Marmottux

jeudi 27 mars 2008

dpkg

Depuis quelques jours, je ne pouvais plus exécuter mon dist-upgrade quotidien ;-( Boooouuuuhhh !

J'étais tombé sur le bug #471650 :

libdjvulibre21 should conflict/replace libdjvulibre15, because it contains the same files.

A la suite de apt-get dist-upgrade la commande conseillait de apt-get -f install. Et concrètement ça donnait ça :

# apt-get -f install
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Correction des dépendances... Fait
Les paquets supplémentaires suivants seront installés :
libdjvulibre21
Les NOUVEAUX paquets suivants seront installés :
libdjvulibre21
0 mis à jour, 1 nouvellement installés, 0 à enlever et 106 non mis à jour.
3 partiellement installés ou enlevés.
Il est nécessaire de prendre 0o/778ko dans les archives.
Après cette opération, 2220ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer O/n ?
(Lecture de la base de données... 124118 fichiers et répertoires déjà installés.)
Dépaquetage de libdjvulibre21 (à partir de .../libdjvulibre21_3.5.20-5_i386.deb) ...
dpkg: error processing /var/cache/apt/archives/libdjvulibre21_3.5.20-5_i386.deb (--unpack):
tentative de remplacement de « /usr/share/djvu/osi/cs/messages.xml », qui appartient aussi au paquet libdjvulibre15
dpkg-deb: sous-processus paste tué par le signal (Relais brisé (pipe))
Des erreurs ont été rencontrées pendant l'exécution :
/var/cache/apt/archives/libdjvulibre21_3.5.20-5_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Alors que faire ? Rtfm ou man dpkg aurait répondu Herr Doctor !

Mais la solution est pour une fois plus triviale :

# dpkg -P libdjvulibre15
(Lecture de la base de données... 124150 fichiers et répertoires déjà installés.)
Suppression de libdjvulibre15 ...
Purge des fichiers de configuration de libdjvulibre15 ...

puis

# apt-get -f install
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Correction des dépendances... Fait
Les paquets supplémentaires suivants seront installés :
 libdjvulibre21
Les NOUVEAUX paquets suivants seront installés :
 libdjvulibre21
0 mis à jour, 1 nouvellement installés, 0 à enlever et 106 non mis à jour.
3 partiellement installés ou enlevés.
Il est nécessaire de prendre 0o/778ko dans les archives.
Après cette opération, 2220ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer O/n ?
(Lecture de la base de données... 124118 fichiers et répertoires déjà installés.)
Dépaquetage de libdjvulibre21 (à partir de .../libdjvulibre21_3.5.20-5_i386.deb) ...
Paramétrage de libilmbase6 (1.0.1-2) ...
Paramétrage de libdjvulibre21 (3.5.20-5) ...
Paramétrage de libopenexr6 (1.6.1-2) ...
Paramétrage de libmagick10 (7:6.3.7.9.dfsg1-2+b1) ...

C'est fini Done

lundi 11 février 2008

Hibernate sur le bureau

Je dispose d'une machine sous Linux 2.6.18.1 avec Debian sid, j'utilise régulièrement la commande hibernate pour la mettre en veille depuis que la fermeture du capot ne fonctionne plus (un flashage de bios un peu hâtif ;-( ). Je souhaite créer un bouton sur mon bureau pour exécuter cette action.

Théoriquement c'est ultra simple !

  • Clique droit >> créer un nouveau >> lien vers une application
  • renseigner la commande /usr/sbin/hibernate
  • peaufiner avec le nom et une icône "kivabien"

Mais ça marche pas !

J'ai cherché un peu, beaucoup du côté de sudo, pas mal dans les group d'utilisateurs ...

LA solution est triviale :

  • "options avancées" dans l'onglet "commande" >> Exécuter en tant qu'utilisateur différent

Exécuter en tant qu'utilisateur différent

Done !

mardi 4 septembre 2007

Apprendre à compiler un noyau en coupant le son

Tais toi [1]!

Le grandiose knetwork-manager émet un "bip" dès qu'il perd ou retrouve le réseau.

Mais c'est agaçant, surtout quand il y a des gens autour !

RTFM et STFW plus tard on trouve des solutions évidentes :

Compile PC Speaker support as module

D'ac ! mécomenkonfé ??

"Compile PC Speaker support as module" ça veut dire reconstruit un noyau linux de manière à ce que le haut parleur de la machine (celui qui fait des bips) soit activé par un module spécifique. Et un module ça peut s'arrêter (Chouette c'est ce que je veux faire).

On progresse, on stfw de nouveau et on obtient des "pas trivial"

device drivers -> input device support -> misc -> pc speaker support

Alors pour ne pas oublier[2], plongeons dans les délices de la ligne de commande ;-)

Ouvrir une konsole (applications > exécuter une commande > "konsole")
su -l root
"lebonmotdepassede Administrator"
cd /usr/src/linux-2.6.18.1/
make menuconfig
descendre sur Device drivers et "entrée"
descendre sur Input device support et "entrée"
descendre sur Miscellaneous devices et "entrée"
descendre sur PC Speaker support et "m"[3]
choisir exit avec les flèches de direction puis entrée plusieurs fois
enregistrer

Après on passe au lourd :

make && make modules && make modules_install && make install && update-grub

Et enfin on peut lui couper le sifflet :

rmmod pcspkr

Ouf !

Notes

[1] Bon je sais c'est de la copie, mais l'auteur est d'accord !

[2] chez moi Linux 2.6.18.1, sous debian

[3] pour module

mercredi 13 juin 2007

Installation de debian en 1h00 (avec une connexion un peu rapide)

Le principal en quelques commande :)
Il en manque pas mal, laissez moi des commentaires

Lire la suite

dimanche 3 décembre 2006

Proposition de TP

Comment connecter via bluetooth une imprimante multifonction tout en gardant l'ensemble des fonctionnalités (scanner, copie,...).

En bonus : comment reproduire sous Mac OS 10.4

vendredi 3 novembre 2006

Hibernate pour un Dell latitude 120L

Je dispose depuis quelques temps d'un portable Dell Latitude 120L. Ce portable d'entrée de game fonctionne bien sous Debian grace aux efforts combinés d'Alex et de ssh. J'aimerai pouvoir refermer le couvercle pour l'hiberner (le mettre en veille prolongée pour nos amis windaubiens). Facile me direz-vous : en tout cas voici le récit de cette expérience !

  • Une première visite du coté du centre de configuration pour activer le support de l'Acpi... soyons fous, cochons tout

acpi_config

  • Toujours dans le même coin, configurons l'action de fermeture du couvercle

fermeture du capot

  • Allez, voila hop c'est ...

...trop facile pour être vrai !

  • Y faudrait quand même que le programme d'hibernation existe:

Vite une console
su
************
apt-get update && apt-get install hibernate

Lire la suite

mardi 10 octobre 2006

Sauvegarder un flux audio

Ben c'est tout pareil sous pareil sous windaube que sous linux !

Exemple du real streamé :

mplayer rtsp://urlquivabien.nomdelaressource.rm -dumpstream -dumpfile nomdufichier.rm

Done

Merci alex et mplayer (la page de manuel spécifique est )

vendredi 29 septembre 2006

Sauvegarde et synchronisation de fichiers sous linux : Fullsync et galternatives

Fullsync est un logiciel de synchronisation entre 2 ordinateurs (ou un ordi et un clé USB), en réseau, avec samba ou par ftp...

FullSync est multi-plateforme. Il tourne sur tout ordinateur équipé d’une machine virtuelle Java. Il est libre et il est efficace !

Bon, sous Debian (unstable), j'ai eu quelques problèmes à l'installer à cause d'un conflit entre diverses versions de java installées sur mon ordi.
Je m'en suis tiré en installant le paquet "galternatives" :

# apt-get install galternatives

Vous trouvez ensuite galternatives dans "menu K -> Système -> Configurateur d'alternatives.
Vous allez dans le répertoire "java" et vous choississez le java qui doit se lancer par défaut (à droite).
Perso j'ai choisi le java sun en version 1.5 voir ci-dessous.

Une fois l'install effectué, en root, à partir du source FullSyncInstaller.jar trouvé ici :
http://prdownloads.sourceforge.net/fullsync/FullSyncInstaller.jar?download et lancé avec la commande :

# java -jar /home/user/rep-fullsysnc/FullSyncInstaller.jar (à adapter à votre cas).

NB : si il y a un problème de lancement du mode graphique en root, on doit taper la commande :

# xhost root ou # xhost +

a faire suivre d'un

# xhost -

lorsque on quitte la cession root.

ou encore lancer avec sudo pour avoir les droits root

$ sudo java -jar /home/user/rep-fullsysnc/FullSyncInstaller.jar

Lancement de Fullsync :

Pour lancer le logiciel, soit le faire dans une console en root pour des questions de droit et taper :

# /usr/local/FullSync/bin/./fullsync.sh

Ou en simple utilisateur avec des droits root en tapant :

$ sudo /usr/local/FullSync/bin/./fullsync.sh

Problèmes possibles : Si quand on lance fullsync.sh on se retrouve avec un message d’erreur du genre :

FULLSYNC_HOME = /usr/local/FullSync
Error : JAVA_HOME is not defined correctly.
We cannot execute java

En fait c’est le chemin de l’installation de java qu'il ne connait pas. Il faut donc le préciser dans le fichier fullsync.sh (avec nano par exemple). En dessous de la ligne :

# ! /bin/sh

rajouter une ligne du type :

JAVA_HOME=/usr/local/java/jre1.5.0_06

correspondant à l’endroit ou vous avez installé le paquet java.

Nota : perso j'ai installé les paquets :

  • sun-java5-bin - Sun Java(TM) Runtime Environment (JRE) 5.0
  • sun-java5-fonts - Lucida TrueType fonts (from the Sun JRE)
  • sun-java5-jre - Sun Java(TM) Runtime Environment (JRE) 5.0
  • sun-java5-plugin

et quelques autres qui m'étaient proposé par "apt-get install".

Voilà, en éspérant que vous perdrez moins de temps que moi...
Parce qu'à part ça c'est un super logiciel !

dimanche 12 mars 2006

ngrep

Ngrep est un outil de surveillance de paquets réseau, assez étonnant.
Ou l'on se rend compte que de simple "geek", on passe potentiellement facilement au coté "obscur"..

apt-get install ngrep


Exemples:

ngrep -d eth0 marmottux port 80

...détecte les paquets contenant "marmottux" et qui transitent par eth0, sur le port 80

ngrep -d eth0 -i 'USER|PASS' tcp port 80

...va mettre à jour les mots de passe et utilisateurs qui transitent par eth0/port 80.. et c'est bluffant d'efficacité.
Faut juste choper le coup d'oeil dans les paquets..

Pour plus d'infos:

jeudi 26 janvier 2006

Programmer ses backups Dotclear grâce à un script bash et CRON

Pour tout savoir lire Prendre un café

mercredi 11 janvier 2006

Convertir un fichier .WMA en MP3

Je viens de me confronter à cette situation;
J'ai récupéré pour un ami une jolie chanson sur un site web. Malheureusement, le fichier est au format WMA.
Cela m'embetait de lui passer un fichier dans cet état-la, j'ai donc cherché sur le web un moyen de le convertir en Mp3, format plus confortable à lire quelque soit l'OS ou le player.

Les premières pistes que j'ai obtenues traitaient de commandes du genre:

# mplayer -ao pcm -aofile good_sound.wav bad_sound.wma

puis conversion en mp3 après, avec les librairies LAME:

# lame -h goo_sound.wav mp3_sound.mp3

C'était sans compter l'ancienneté de mes sources web, l'évolution des arguments, de la syntaxe, de ma config audio... La bazar quoi.

La solution, je l'ai trouvée en un script PERL trouvé ici. C'est une solution que j'ai retrouvée sur plusieurs sites et listes de discussions, que j'appréhendais un petit peu (PERL? beuh cékoica..).

En fait c'est super simple, voici la démarche:

  • 1) Disposer des paquets suivants:
# apt-get install mplayer lame lame-extras liblame0
  • 2) Créer un fichier nommé wma2mp3.pl avec ça dedans:
#!/usr/bin/perl -w
use strict;

foreach my $file (@ARGV) {
next if ($file !~ /\.wma$/i);
my $base = $file; $base =~ s/\.wma$//i;
#utilisation de mplayer pour encoder le .wma en .wav
system "mplayer \"$file\" -ao pcm:file=\"$base.wav\"";
#utilisation de lame pour encoder .wav en .mp3
system "lame -h \"$base.wav\" \"$base.mp3\"";
unlink("$base.wav");
#affichage du message de fin
print "$base.wma converti en mp3.\n";
}
  • 3) Lancer cette ligne de commande, dans le répertoire contenant le script ainsi que le fichier à convertir:
$ perl wma2mp3.pl chanson.wma
  • 4) Ca mouline tout seul un petit moment, et c'est DONE :)

vendredi 4 novembre 2005

Linux et le matos...

Les commandes de gestion de l'espace mémoire

romain@citron:~$ free

(affiche l'utilisation de la mémoire RAM et du swap)

Les commandes de gestion de l'espace disque

  • df (disk free, gestion des volumes montés du disque dur) :
romain@citron:~$ df -h
Option : df -h

(affiche la taille en valeurs "humaines")

  • du (disk usage)
romain@citron:~$ du
   du -a

(affiche la taille des fichiers à partir du répertoire courant)

   du -a | sort -n

(trie les fichiers par taille dans l'ordre croissant)

  • sync

(vide les tampons disques)

  • eject

(ouvre le tiroir du lecteur de CDROM)

Les commandes de gestion des processus

  • top

(affiche l'utilisation des ressources par les processus en temps réel)

  • ps

(process search)

romain@citron:~$ ps

Options :

   romain@citron:~ ps -l

(affichage long des processus de l'utilisateur )

   romain@citron:~ ps -e

(affiche les processus en cours)

   romain@citron:~ ps -ef

(affiche les processus en cours en détail)

   romain@citron:~ ps -efl

(affichage long et en détail des processus en cours)

   romain@citron:~ ps -ef | grep user
   romain@citron:~ ps -aux
   romain@citron:~ ps -aefx
   romain@citron:~ ps -aef | grep "vi"
   romain@citron:~ ps -aux | wc -l
  • kill (envoie un signal à un processus, SIGHUP, SIGTERM)
   romain@citron:~ kill PID

(demande la fermeture propre du processus)

   romain@citron:~ kill -9 1432

(ferme autoritairement le processus, ce qui peut provoquer des pertes de données et/ou la création de fichier d'erreur)

  • killall
   romain@citron:~ killall telnet

(pour supprimer les processus proliférant ("spawning process" comme telnetd, lpd) qui se reproduisent à chaque nouvelle requête)

  • time (mesure le temps pour exécuter une commande)
   romain@citron:~ time commande
   romain@citron:~ time ls
   romain@citron:~ time du -a
  • sleep (endormissement du processus d'un certain nombre de seconde)
   romain@citron:~ sleep 5 ; ls
  • nice (fixe un niveau de priorité pour une tâche, de +19 (le moins prioritaire) à -20)
   romain@citron:~ nice -6 commande
  • fg (foreground, faire revenir une tâche en avant plan. Un processus en avant plan s'exécute plus rapidement)
   romain@citron:~ fg PID
  • bg

(background, lance en tâche de fond un processus suspendu après CRTL + Z)

  • jobs (affiche les processus en tâche de fond)
   romain@citron:~ jobs

(affiche le numéro de tâche des processus)

   romain@citron:~ jobs -l

(affiche le PID des processus)

Merci à MemoLux