Bonjour,
je viens de faire un script dans un fichier /.scripts/apt-i.sh, que je mets volontier ici pour d’éventuelles corréctions et suggestions, et critiques …
Y sert à quoi ? tout est dans le titre …
Je ne l’ai testé que dans un cas pour l’instant, donc, inutile de vous dire que le lancer serait à vos risques et perils … (selon la phrase consacrée )
[code]#!/bin/bash
Initialise les variables ------------------------------------------------
date="date | tr " " "_"
" # date, sans les espaces
apt="$HOME/Apt/" # nom du repertoire de trace
fic=$date"_" # nom du fichier de trace
ficerr="" # nom du fichier à écraser
com="" # la commande suivant root ou utilisateur
err=“paramètre manquant:le nom du paquet à installer doit être fourni…:vous pouvez spécifier une release”
test l’absence de params ----------------------------------------
if [ “$#” -eq 0 ]; then
echo $err | tr “:” “\n” # affiche le message d’erreur : absence de param
exit 0 # quitte le script
else
fic="$fic$1" # forme le nom du fichier, concatene fic et param
test si le repertoire Apt existe dans home de l’user -------------------
if [ ! -d “$apt” ]; then
echo “$apt n’existe pas. Ce repertoire va être créé"
mkdir $apt # création
echo ls -l $apt
# affichage
fic=”$apt$fic" # forme le chemin absolu vers fic
else
fic="$apt$fic"
fi
--------------------------------------------------------------------------------
l’existence du fichier, trés improbable vu le nom de celui-ci
# if [ -e “$fic” ]; then # fichier déjà existant
# echo fichier existant, verifier … exit
# exit 0
# fi
-------------------------------------------------------------------------
#----- la commande apt-i proprement dite -----------
--------------------------------------------------------------------------
Execute une simulation de apt-get du pkg —
Redirige à la fois en console et dans le fichier $fic la sortie de la simulation
Supprime les fichiers temporaires
Ouvre fic pour aperçu ------
A la fermeture du fichier, invite à l’installation -------
Y procède ou non -----------
-------------------------------------------------------------------------
--------------------------------------------------------------------------
if [ “id -u
” -eq 0 ]; then # si root
com=“apt-get -su install -t $2 $1” # affecte la commande à $com
else # si user simple
com=“sudo apt-get -su install -t $2 $1” # utilise sudo
fi
------------------------------ lance le shell en simulation -----------
echo “$com” > /tmp/-; cat < /tmp/-
| tee /tmp/–; cat /tmp/- /tmp/-- > “$fic”
&& rm /tmp/-* && nano “$fic”
---- Demande confirmation pour installer -----------------------
echo voulez vous installer ce paquet (O/n) ?
read # attente de saisie
case “$REPLY” in # énumère les cas de réponse
Y | y | o | O ) # oui
enregistre une démarquation dans le fichier $fic entre simulation et installation
echo "Installation demandée ######################" >> $fic
echo "Installation demandée ####################"
com=${com/"-su "/""}
echo "$com" > /tmp/-; `cat < /tmp/-`| tee /tmp/--; \
cat /tmp/- /tmp/-- >> "$fic" && rm /tmp/-* && nano "$fic";;
N | n ) echo non installation;; # non
* ) echo pffffffff;; # autres réponses --------
esac
fi
exit 0
-----------------------------------------------------------------------
------------------------------------------------------------------------------
[/code]
le but, c’est de lancer un alias d’apt get en simulant avant, du style de ce que je cherchais à faire dans mon post sur les tubes … ce qui ici pourrait me permettre de faire :
en root - apt-i pkg unstable pour simuler/installer/garder trace de : apt-get install -t unstable pkg. (ça j’ai testé, ça marche).
en user - ben exactement pareil, sudo est en dur dans le script … (pas encore testé).
les alias devraient pas être un souçis, c’est la syntaxe, les opérateurs de bash et tout ça, que je voudrai améliorer, et surement l’algo … aussi …
Merci de jeter un oeil …