Exile on Keyboard St. - Blog sur Linux et Debian

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

samedi 5 novembre 2016

A quel paquet appartient un binaire sous Linux ?

Sous Linux, lorsque le nom d'un binaire ou d'un utilitaire est identique avec celui du paquet, comme gimp, vlc ou emacs, les choses sont simples.

Pour installer vlc, il suffit d'utiliser la commande:

sudo apt-get install vlc

Imaginons maintenant que vous ayez besoin de savoir quel paquet installer pour disposer de la commande sha1sum.

Ce cas de figure se présente notamment pour établir la liste des dépendances d'un logiciel. Quel paquet dois-je installer pour pouvoir utiliser la commande sha1sum ?

sudo dpkg -S /usr/bin/sha1sum
coreutils: /usr/bin/sha1sum

La commande dpkg avec le flag -S me donne la réponse. Il s'agit du paquet coreutils qui contient de multiples utilitaires GNU. Attention, cette commande cherche la commande /usr/bin/sha1sum dans les paquets installés sur le système uniquement. Elle est donc à utiliser sur un système disposant déjà de la commande sha1sum.

J'aurai pu aussi utiliser:

sudo dpkg -S sha1sum
manpages-fr-extra: /usr/share/man/fr/man1/sha1sum.1.gz
coreutils: /usr/share/man/man1/sha1sum.1.gz
coreutils: /usr/bin/sha1sum

Si maintenant je souhaite obtenir la liste de tous les fichiers installés par le paquet coreutils:

dpkg -L coreutils
/.
/bin
/bin/cat
/bin/chgrp
/bin/chmod
/bin/chown
/bin/cp
/bin/date
/bin/dd
/bin/df
/bin/dir
/bin/echo
/bin/false
/bin/ln
/bin/ls
/bin/mkdir
/bin/mknod
/bin/mv
/bin/pwd
/bin/readlink
/bin/rm
/bin/rmdir
/bin/vdir
/bin/sleep
/bin/stty
/bin/sync
/bin/touch
/bin/true
/bin/uname
/bin/mktemp
/usr
/usr/share
/usr/share/doc
/usr/share/doc/coreutils
/usr/share/doc/coreutils/AUTHORS
/usr/share/doc/coreutils/README.Debian
....
/usr/bin/printf
/usr/bin/ptx
/usr/bin/runcon
/usr/bin/seq
/usr/bin/sha1sum
/usr/bin/sha224sum
/usr/bin/sha256sum
/usr/bin/sha384sum
/usr/bin/sha512sum
/usr/bin/shred
/usr/bin/shuf
/usr/bin/sort
/usr/bin/split
/usr/bin/stat
/usr/bin/sum
/usr/bin/tac
/usr/bin/tail
/usr/bin/tee
/usr/bin/test
/usr/bin/timeout
/usr/bin/tr
/usr/bin/truncate
/usr/bin/tsort
/usr/bin/tty
/usr/bin/unexpand
/usr/bin/uniq
/usr/bin/unlink
/usr/bin/wc
/usr/bin/whoami
/usr/bin/yes
/usr/bin/arch
/usr/lib
/usr/lib/coreutils
/usr/lib/coreutils/libstdbuf.so
/usr/sbin
/usr/sbin/chroot
/usr/share/man/man1/[.1.gz
/usr/share/man/man1/md5sum.textutils.1.gz
/usr/bin/touch
/usr/bin/md5sum.textutils

Ensuite la question qui se pose est: comment savoir qu'il faut installer le paquet coreutils pour avoir accès à la commande sha1sum si ce paquet n'est pas installé sur mon système ?

Pour cela, il faut utiliser la commande apt-file qui contrairement à dpkg va élargir sa recherche aux paquets non installés.

Dans un premier temps on met à jour les index utilisés par cette commande:

sudo apt-file update

Les index ont été mis à jour:

 ls -l /var/cache/apt/apt-file/
total 46052
-rw-r--r-- 1 root root 21606550 déc.  29  2015 ftp.fr.debian.org_debian_dists_wheezy_main_Contents-amd64.gz
-rw-r--r-- 1 root root    28816 déc.  29  2015 ftp.fr.debian.org_debian_dists_wheezy-updates_main_Contents-amd64.gz
-rw-r--r-- 1 root root  3863361 nov.   7 08:59 http.debian.net_debian_dists_wheezy-backports_main_Contents-amd64.gz
-rw-r--r-- 1 root root 21611934 nov.   7 08:59 httpredir.debian.org_debian_dists_wheezy_main_Contents-amd64.gz
-rw-r--r-- 1 root root    31249 nov.   7 08:59 httpredir.debian.org_debian_dists_wheezy-updates_main_Contents-amd64.gz

Et pour chercher qui fournit le binaire d'emacs:

apt-file search /usr/bin/emacs23
emacs23: /usr/bin/emacs23
emacs23: /usr/bin/emacs23-x
emacs23-lucid: /usr/bin/emacs23
emacs23-lucid: /usr/bin/emacs23-lucid
emacs23-nox: /usr/bin/emacs23
emacs23-nox: /usr/bin/emacs23-nox

mercredi 3 août 2016

Poussivité de l'ouverture des fichiers sous Gnome avec Nautilus

S'il y a bien quelque chose qui m'agace avec Gnome, c'est sa lenteur pour effectuer certaines opérations.

Sur Debian Wheezy, quand j'ouvre un fichier depuis l'explorateur de fichier nautilus, bien que l'éditeur choisi (gedit, emacs ou autre) ouvre le fichier instantanément, il y a toujours pendant quelques secondes le lanceur de Gnome qui reste ouvert idiotement dans la barre des tâches sous le nom "Ouverture de ..." comme on peut le voir sur la copie d'écran suivante:

Capture_du_2016-07-27_10_06_16.png

On a l'impression d'être sur une machine d'il y a 10 ans, c'est assez pénible !

Il faudrait tester si le problème se produit aussi sur Debian Jessie.

De plus si je double clique sur une image, bien que celle-ci soit ouverte le focus reste dans Nautilus !

Et après, j'entends dire que Xfce c'est dépassé et que à part Gnome, point de salut ...

samedi 16 janvier 2016

Configurer la librairie readline pour un bash sur mesure

Bash utilise une librairie nommée readline pour parser l'entrée utilisateur.

Cette librairie readline développée par la projet GNU est paramétrable à l'envie via un fichier spécifié par la variable d'environnement INPUTRC. En l'absence de cette variable, c'est le fichier ~/.inputrc qui est lu.

Par exemple, pour supprimer le bip énervant lorsque l'on appuie sur la touche TAB, il suffit d'ajouter dans le fichier ~/.inputrc:

set bell-style none

Si on veut maintenant que la complétion sur les noms de fichiers soit insensible à la casse, il faut ajouter:

set completion-ignore-case on

Si ensuite on souhaite que la complétion fasse plus que proposer les choix possibles mais sélectionne d'emblée la première possibilité et que chaque appui sur TAB prenne en compte le choix possible suivant, il faut utiliser la complétion à la "mode vim":

TAB: menu-complete
set show-all-if-ambiguous on

On peut également changer les valeurs de editingmode et de keymap pour ne plus avoir les raccourcis de emacs par défaut (Ctrl-R, Ctrl-S, Ctrl-A, Ctrl-E ...) mais ceux de vi à la place.

Pour une liste exhaustive des options du fichier de configuration de readline, on pourra consulter la man page correspondante.