Installation de paquet facile

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

yaptitude.toile-libre.org/

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:

:arrow_right:

: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é :slightly_smiling: 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 :slightly_smiling:

[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 :slightly_smiling:[/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 :slightly_smiling:

3 - M’a permis de découvrir une faute d’orthographe dans mon sources.list :041

[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 :slightly_smiling:

3 - M’a permis de découvrir une faute d’orthographe dans mon sources.list :041[/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 - 8) 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 :slightly_smiling:

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 :slightly_smiling:

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?