Bonjour!
Pour ceux ayant testé yaourt, le logiciel qui sert à gérer pacman, les gestionnaire de paquets d’archlinux, vous avez du apprécier son utilité, surtout lorsque l’on cherche un paquet.
Voici un script faisant un peu la même chose. Entrez en argument les noms de paquets que vous recherchez, puis entrez le(s) numéro(s) de ceux qui vous intéresse.
Vos idées sont les bienvenus pour l’améliorer!
Pour l’utiliser, copiez le code ci dessous dans un fichier, nommé yaptitude. Rendez-le éxécutable avec chmod +x yaptitude
, puis lancez-le avec ./yaptitude
Sympas du coup tu m’a motivé à changer ma fonction apt-search :
[quote]function apt-search (){
RED=$’\033[31m’
VERT=$’\033[0;33;32m’
CYAN=$’\033[0;33;36m’
NML=$’\033[1;0m’
apt-cache search $@ | grep -v ‘^lib’ | sort | sed -e “s/^(.) - (.)$/${VERT}\1 ${CYAN}\2${NML}/g”
}[/quote]
Peut être que tu devrait utiliser le sort ?
tiens? tu utilises un script semblable?
Oui c’est une idée d’utiliser sort. Il faut que je regarde, car je ne suis pas sur que ça classe les résulstats par cohérence, et c’est ce que j’aimerais faire si possible.
Pas vraiment du script c’est une fonction shell déclarée dans mon .zshrc (dans un fichier sourcé par lui pour être précis).
Parce qu’au début j’utilisais un alias et que ni zsh ni bash ne savent faire de substitution complexes dans un alias (alors que tcsh oui). Du coup je l’ai mis en fonction.
Analyse de pertinence c’est pas terrible à faire en shell et le tris alphabétique me suffit amplement.
Mais ton script me donne une idée. Je vais voir pour me faire un petit script.
[code]#!/bin/sh
RED=$’\033[31m’
VERT=$’\033[0;33;32m’
CYAN=$’\033[0;33;36m’
NML=$’\033[1;0m’
FILE=’/tmp/$$.list’
apt-cache search $@ | grep -v ‘^lib’ | sort > $FILE
#sed -e “s/^(.) - (.)$/${VERT}\1 ${CYAN}\2${NML}/g” $FILE
cat $FILE
if [ wc -l < $FILE
-eq 1 ]; then
echo "Voulais-vous l’installer ? [y/n]"
read REP
if [ $REP = ‘y’ ]; then
echo "Installation de $(sed -e ‘s/^([^ ]) .$/\1/’ $FILE)"
aptitude install $(sed -e ‘s/^([^ ]) .$/\1/’ $FILE)
fi
elif $(grep -q "^$@ " $FILE) ; then
PKG=$(grep "^$@ " $FILE | sed -e ‘s/^([^ ]) .$/\1/’)
echo "Voulais-vous installer $PKG ? [y/n]"
read REP
if [ “$REP” = ‘y’ ]; then
echo "Installation de $PKG"
aptitude install $PKG
fi
fi
rm $FILE[/code]
Je maitrise pas bien la couleur avec le bourn shell il suffit de décommenter la première ligne sed.
L’idée c’est que le logiciel choisisse pour toi le paquet que tu as des chances de vouloir installer. Ça pourrait être intégré à ton script pour faire des propositions au départ.
C’est une idée sympa! faut que je réfléchisse à la façon dont je pourrais mettre ça. Car en vérité, comment prévoir si l’utilisateur fais une recherche, parce qu’il ne sais pas quel paquet installer, ou si il sait très bien lequel il veut ajouter, dans ce cas, ta fonction serait pratique!
Bon, je n’ai pas trop de temps aujourd’hui, je vasi y réfléchir et je m’y mets demain.
Merci!
Voici on propose à l’utilisateur l’unique paquet ou le paquet qui a exactement ce nom là mais il peut toutjours taper des chiffre pour choisir le paquet qu’il veut :
[code]#!/bin/sh
#yapt-get
#Petit script simplifiant l’utilisation d’apt
#à la façon de yaourt pour pacman dans archlinux
LIST=/tmp/yapt-get_research
ROUGE="\033[31m"
VERT="\033[0;33;32m"
NORMAL="\033[1;0m"
CYAN="\033[0;33;36m"
usage_ () {
echo "Usage :"
echo " yapt-get <nom d’un autre paquet> <…>"
echo " yapt-get -update : mise à jour de la base de données"
echo " yapt-get -upgrade : mise à jour du système “
echo " yapt-get -source <nom du/des paquets> : téléchargement des sources”
}
install_ () {
for i in $@; do
PACKAGE=$(sed -n ${i}p $LIST | awk ‘{print $1}’)
echo " *** Installation de “$ROUGE” $PACKAGE “$NORMAL” *** \n "
su --shell=/bin/bash --command "apt-get install $PACKAGE"
done
}
searching_ () {
echo “Choix\tNom - Description (séparer par des espaces)“
echo “--------------------------------------------------------------“
apt-cache search $1 > $LIST
sed = $LIST | sed ‘N;s/\n/\t/’ | awk -F”\t” ‘{print "’$VERT’”$1 “\t” “’$CYAN’”$2”’$NORMAL’"}'
read CHOICE
install_ $CHOICE
}
#Pour commencer, on regarde le nombre d’arguments entrés. Ensuite
#on effectue la recherche pour chacuns d’eux.
if [ “$#” = 0 ]; then
usage_
fi
case $1 in
"-update" )
su --shell=/bin/bash --command “apt-get update”
;;
"-upgrade" )
su --shell=/bin/bash --command “apt-get upgrade”
;;
"-source" )
apt-get source $(echo $@ | cut -d" " -f2-)
;;
* )
for i in $@; do
searching_ $i
done
esac
exit 0[/code]
J’en ai profiter pour enlevé un sed dans la fonctioninstalling_
Super!
Je viens de rajouter un test, pus être sûr que le choix entré est bel et bien un chiffre :
[code]#!/bin/sh
#yapt-get
#Petit script simplifiant l’utilisation d’apt
#à la façon de yaourt pour pacman dans archlinux
LIST=/tmp/yapt-get_research
ROUGE="\033[31m"
VERT="\033[0;33;32m"
NORMAL="\033[1;0m"
CYAN="\033[0;33;36m"
usage_ () {
echo "Usage :"
echo " yapt-get <nom d’un autre paquet> <…>"
echo " yapt-get -update : mise à jour de la base de données"
echo " yapt-get -upgrade : mise à jour du système “
echo " yapt-get -source <nom du/des paquets> : téléchargement des sources”
}
install_ () {
for i in $@; do
PACKAGE=$(sed -n ${i}p $LIST | awk ‘{print $1}’)
echo " *** Installation de “$ROUGE” $PACKAGE “$NORMAL” *** \n "
su --shell=/bin/bash --command "apt-get install $PACKAGE"
done
}
searching_ () {
echo “Choix\tNom - Description (séparer par des espaces)“
echo “--------------------------------------------------------------“
apt-cache search $1 > $LIST
sed = $LIST | sed ‘N;s/\n/\t/’ | awk -F”\t” ‘{print "’$VERT’”$1 “\t” “’$CYAN’”$2”’$NORMAL’"}'
read CHOICE
[ $CHOICE -gt 0 ]
if [ “$?” = 0 ]; then
install_ $CHOICE
fi
}
#Pour commencer, on regarde le nombre d’arguments entrés. Ensuite
#on effectue la recherche pour chacuns d’eux.
if [ “$#” = 0 ]; then
usage_
fi
case $1 in
"-update" )
su --shell=/bin/bash --command “apt-get update”
;;
"-upgrade" )
su --shell=/bin/bash --command “apt-get upgrade”
;;
"-source" )
apt-get source $(echo $@ | cut -d" " -f2-)
;;
* )
for i in $@; do
searching_ $i
done
esac
exit 0
[/code]
:arrow_right:
[code]PACKAGE=$(awk 'NR == '${i}'{print $1}' $LIST)[/code]
:wink:
Salut,
D’après ce que je comprends on effectue la recherche sur les noms mais pas sur les descriptions. On est donc encore loin de synaptic (qui ne me sert qu’à cela)
Ne pas prendre cela comme une critique, ou alors constructive :smile
Tu te trompe c’est justement pour ça que j’utilise apt-cache :
~% apt-cache search vim | wc -l
53
~% aptitude search vim | wc -l
27
~% apt-cache search vim | grep -v vim
apvlv - PDF viewer with Vim-like behaviour
bicyclerepair - A refactoring tool for python
cernlib-base - CERNLIB data analysis suite - common files
colordiff - tool to colorize 'diff' output
cream - VIM macros that make the VIM easier to use for beginners
editmoin - edit MoinMoin wiki pages with your favourite editor
elvis-tiny - Tiny vi compatible editor for the base system
exuberant-ctags - build tag file indexes of source code definitions
fim - a scriptable frame buffer and ascii art image viewer
global - Source code search and browse tools
gramadoir - Irish language grammar checker (integration scripts)
kdesdk-scripts - scripts and data files for KDE 4 development
linuxdoc-tools - convert LinuxDoc SGML source into other formats
liblatex-table-perl - Perl extension for the automatic generation of LaTeX tables
libtext-findindent-perl - module to heuristically determine indentation style
netrik - text mode WWW browser with vi like keybindings
notmuch - thread-based email index, search and tagging
nvi-doc - 4.4BSD re-implementation of vi - documentation files
nvi - 4.4BSD re-implementation of vi
ocaml-tools - tools for OCaml developers
openshot - Create and edit videos and movies
pms - Practical Music Search, an MPD client
shorlfilter - Text filter to shorten long URLs using online redirection database
tmux - terminal multiplexer
txt2regex - A Regular Expression "wizard", all written with bash2 builtins
uzbl - Lightweight Webkit browser following the UNIX philosophy
bleachbit - delete unnecessary files from the system
sisu - documents - structuring, publishing in multiple formats and search
zope-externaleditor - Zope External Editor
zopeedit - Helper Application for Zope External Editor
Re,
Alors je suis très content de m’être trompé et dès que vous êtes au point j’adopte (T&A et le wiki aussi )
Je met à jour le script du haut. J’ai mis dans l’en-tête des idées, sachant que certains sont peut-être un peu irréalistes.
Des idées de fonctions à ajouter au script? Il faut peut-être aussi améliorer la gestion des erreurs. Il faut que je le teste un peu dans tous les sens pour voir où ça cloche.
Merci,
[quote=“thuban”]Je met à jour le script du haut. J’ai mis dans l’en-tête des idées, sachant que certains sont peut-être un peu irréalistes.
Des idées de fonctions à ajouter au script? Il faut peut-être aussi améliorer la gestion des erreurs. Il faut que je le teste un peu dans tous les sens pour voir où ça cloche.[/quote]
c’est bien la seule partie à laquelle je puisse participer
[quote=“ggoodluck47”]Merci,
[quote=“thuban”]Je met à jour le script du haut. J’ai mis dans l’en-tête des idées, sachant que certains sont peut-être un peu irréalistes.
Des idées de fonctions à ajouter au script? Il faut peut-être aussi améliorer la gestion des erreurs. Il faut que je le teste un peu dans tous les sens pour voir où ça cloche.[/quote]
c’est bien la seule partie à laquelle je puisse participer [/quote]
C’est la plus importante!
Re,
Premier essai :
1 - Dommage de ne pas pouvoir choisir entre apt-get et aptitude
2 - Pour moi qui suis un adepte de sudo cela fait tout drole de donner le MDP root
3 - M’a permis de découvrir une faute d’orthographe dans mon sources.list
[quote=“ggoodluck47”]Re,
Premier essai :
1 - Dommage de ne pas pouvoir choisir entre apt-get et aptitude
2 - Pour moi qui suis un adepte de sudo cela fait tout drole de donner le MDP root
3 - M’a permis de découvrir une faute d’orthographe dans mon sources.list [/quote]
1 - Il faudrait créer un fichier de configuratin de yapt, qu’en pensez-vous?
2 - J’ai préféré utiliser une autre méthode que le sudo, afin de donner le mot de passe que pour 1 seule commande, et assurer un plus grande sécurité. À discuter je pense, si sudo est installé, purquoi ne pas l’utiliser?
3 - Comment?
Re,
1 - Mettre en constante au début apt-get ou aptitude (faut pas exagérer)
2 - Avec toutes les options de sécurité de sudo (que j’utilise) cela ne doit pas être facile
3 - Sans doute une faiblesse de “smxi” qui ne me faisait pas ressortir cette erreur dans mon sources.list : un fix.main qui n’a pas lieu d’être
mini mise à jour aujourd’hui.
Mise à jour du script :
- Ajout de nouvelles options
- Correction de fautes d’orthographes
Bref, pas grand chose. D’autres idées de votre part?