installation de paquets automatique pour yum, pacman et apt quand une commande échoue

Salut,

Qui n’a jamais perdu son précieux temps à parcourir google à la recherche de tel ou tel lib manquante ? Tout cela est en grande partie terminé.

je me suis intéressé à ces utilitaires automatiques que sont auto-apt, autodeb, et aussi apt-file ( en travaillant un peu plus ) et aucun ne m’a vraiment satisfait. Et surtout, je cherchait une solution plus universelle ( pouvant fonctionner sous plusieurs distribs ) sans avoir à considérer le gestionnaires de fenêtres. J’ai donc décidé de me lancer dans le code afin de réaliser mon propre script. Il est basé sur autodeb mais fonctionne pour apt et yum pour le moment. Le coeur du concept repose sur strace qui va lister les librairies manquantes lors du lancement du script et de la commande/arguments.
Ceci a été testé sous Centos, archlinux i686 et Debian Lenny.

Mon script s’exécute en root et en CLI, et permet donc d’installer ou de se faire proposer les paquets manquants lors du lancement d’une commande.
Quelques exemples testés :

./auto-deps-installer-0.0.1.bash ./configure --with-php-config=/usr/local/perso/php-5.2.8/bin/php-config

dans un répertoire d’extension de php va m’installer les paquets/libs manquantes pour réussir le ./configure.

Je vous laisse tester le script pour vous rendre compte de ses possibilités.
Je suis ouvert à toute correction sur mon Anglais qui est loin d’être parfait et aussi à toute idée, feedback…

Le mieux c’est encore de tester :
auto-deps-installer

++
sputnick.

vim :TOhtml et coloration syntaxique sur du code source

Vous connaissez certainement la commande :TOhtml dans vim qui permet de convertir du texte brut en HTML.
Ce qu’on sait déjà, c’est que vim convertit le texte en HTML, mais sur du code, il gère aussi la coloration syntaxique.
Exemples :
( arriere plan noir )
sputnick-area.net/bin-stat.bash.html






#! /usr/bin/env bash
#  Idea from PerfDave on #bash
#  Enhanced by sputnick
#  06.04.2008

oIFS=$IFS
IFS=:
dir=( $PATH )

shopt -s nullglob

for prog in ${dir[*]/%//*}; do
    type=$(file "$prog")
    case $type in
        *ELF*) ((Bi++)) ;;
        *perl*) ((Pe++)) ;;
        *python*) ((Py++)) ;;
        *POSIX*) ((Sh++)) ;;
        *Bourne-Again*|*bash*) ((Ba++)) ;;
        *ruby*) ((Ru++)) ;;
        *ocaml*) ((Oc++)) ;;
        *link*) ((Li++)) ;;
        *) x+=("$type") ;;
    esac
done

tput setaf 2
echo -e "For all stuff in \$PATH variable, we have :$(tput sgr0)
Bash:\t${Ba:-0}
Binary:\t${Bi:-0}
Links:\t${Li:-0}
Ocaml:\t${Oc:-0}
Perl:\t${Pe:-0}
Python:\t${Py:-0}
Ruby:\t${Ru:-0}
Sh:\t${Sh:-0}
Others:\t${#x[@]:-0}"

tput setaf 2
[[ "${x[@]}" ]] && { echo $’\nothers are :
    tput sgr0
    printf %s\n "${x[@]}"
}
IFS=$oIFS