View previous topic :: View next topic |
Author |
Message |
romale n00b
![n00b n00b](/images/ranks/rank_rect_0.gif)
Joined: 29 Nov 2002 Posts: 19
|
Posted: Tue Jun 21, 2005 1:44 pm Post subject: [Emerge] Mise à jour des paquets |
|
|
Sur toutes les machines sur lesquelles j'ai installé Gentoo, j'ai remarqué à plusieurs reprises que la commande emerge -up world n'affichait pas tous les paquets à mettre à jour, certains paquets étant "oubliés" par emerge. En revanche, si l'on fait un emerge -up <paquet>, emerge affiche bien une mise à jour. Pour pallier à ce problème, j'ai écrit un petit script qui affiche la liste complète des paquets à mettre à jour. N'hésitez pas à l'utiliser pour me donner votre avis.
Code: | #!/bin/sh
#
# emergeupdate
# Copyright (c) 2005 Alexandre ROMAN <roman.alex_no_spam@online.fr>
# Publié sous licence GPL
#
# Auteur: Alexandre ROMAN <roman.alex_no_spam_@online.fr>
# Version: 20050621
#
# Affiche la liste des paquets à mettre à jour sous Gentoo Linux.
# Le paquet gentoolkit (contenant la commande equery) est requis.
#
# "equery list" affiche la liste des paquets installés
for i in `equery -q -C list|grep -v "installed packages"`; do
ebuild=`emerge -up ">=$i"|grep ebuild`
# si un paquet à mettre à jour existe, la variable ebuild est de la forme:
# [ebuild U ] app-cdr/cdrtools-2.01-r3 [2.01-r2]
# autrement, la variable ebuild est une chaîne de longueur nulle
if [ "$ebuild" ]; then
# une mise à jour existe: on affiche le nom du paquet
pkg=`echo $ebuild|gawk '{print $4}'`
echo $pkg
fi;
done; |
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
titix Guru
![Guru Guru](/images/ranks/rank_rect_3.gif)
![](images/avatars/166957347040afab5c651c9.png)
Joined: 01 Nov 2003 Posts: 343 Location: Paris, France
|
Posted: Tue Jun 21, 2005 1:46 pm Post subject: |
|
|
emerge -uD world _________________ titix
« La route est longue... mais la voie est libre ! » |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
kernelsensei Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/21126704545e4a5f9ae5c9.jpg)
Joined: 22 Feb 2004 Posts: 5619 Location: Woustviller/Moselle/FRANCE (49.07°N;7.02°E)
|
Posted: Tue Jun 21, 2005 1:51 pm Post subject: |
|
|
euh ouais, d'accord avec titix, -D ne faisait pas l'affaire ?
Code: | --deep (-D)
When used in conjunction with --update, this flag forces emerge
to consider the entire dependency tree of packages, instead of
checking only the immediate dependencies of the packages. As an
example, this catches updates in libraries that are not directly
listed in the dependencies of a package.
|
_________________ $ ruby -e'puts " .:@BFegiklnorst".unpack("x4ax7aaX6ax5aX15ax4aax6aaX7ax2aX5aX8 \
axaX3ax8aX4ax6aX3aX6ax3ax3aX9ax4ax2aX9axaX6ax3aX2ax4ax3aX4aXaX12ax10aaX7a").join'
Last edited by kernelsensei on Tue Jun 21, 2005 1:52 pm; edited 1 time in total |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
scout Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/12983883544208161274b34.png)
Joined: 08 Mar 2003 Posts: 1991 Location: France, Paris en Semaine / Metz le W-E
|
Posted: Tue Jun 21, 2005 1:52 pm Post subject: |
|
|
bah c'est pas grave, au moins t'a vu en profondeur comment portage marchait,
et sinon encore mieux, emerge -uDN world pour les paquets qui ont des use modifiés _________________ http://petition.eurolinux.org/ - Petition against ePatents
L'essence de la finesse |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
romale n00b
![n00b n00b](/images/ranks/rank_rect_0.gif)
Joined: 29 Nov 2002 Posts: 19
|
Posted: Tue Jun 21, 2005 1:57 pm Post subject: |
|
|
Effectivement, autant pour moi. Je connaissais pas l'existence de ce paramètre -D. Je viens de le tester et apparemment il semble que cela corresponde à la liste complète des paquets à mettre à jour. Reste à voir si la liste est équivalente à la sortie de mon script : je ferai quelques tests pour vérifier cela.
Merci ! |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
boozo Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/83658268945e337605eec8.gif)
Joined: 01 Jul 2004 Posts: 3193
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
romale n00b
![n00b n00b](/images/ranks/rank_rect_0.gif)
Joined: 29 Nov 2002 Posts: 19
|
Posted: Tue Jun 21, 2005 2:15 pm Post subject: |
|
|
Après un premier test sur une machine, la commande emerge -upvDN world n'affiche pas le paquet net-firewall/shorewall, alors que celui-ci est bien à mettre à jour. Mon script n'est finalement pas tout à fait inutile ! Qu'est-ce que cela donne sur vos machines ? |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
romale n00b
![n00b n00b](/images/ranks/rank_rect_0.gif)
Joined: 29 Nov 2002 Posts: 19
|
Posted: Tue Jun 21, 2005 3:18 pm Post subject: |
|
|
Après avoir pris en compte les diverses remarques (concernant l'option -D et surtout les perfs qui étaient affreuses ), voici une nouvelle version du script qui affiche la liste des paquets à mettre à jour.
Code: | #!/bin/sh
#
# emergeupdate
# Copyright (c) 2005 Alexandre ROMAN <roman.alex@online.fr>
# Publié sous licence GPL
#
# Auteur: Alexandre ROMAN <roman.alex@online.fr>
# Version: 20050621-r1
#
# Affiche la liste des paquets à mettre à jour sous Gentoo Linux.
# Le paquet gentoolkit (contenant la commande equery) est requis.
#
packages=""
# "equery list" affiche la liste des paquets installés
for i in `equery -q -C list|grep -v "installed packages"`; do
packages="${packages} >=$i";
done;
# affichage du nom des paquets à mettre à jour
for i in `emerge -upDN ${packages}|grep "ebuild"|gawk '{print $4}'`; do
echo ${i};
done; |
La sortie de cette commande sur ma machine donne :
Code: | perl-core/Test-Harness-2.42
perl-core/Test-Simple-0.54
dev-perl/Net-Daemon-0.38
dev-perl/PlRPC-0.2016-r1
dev-perl/DBI-1.46
dev-perl/DBD-Pg-1.22
app-admin/webmin-1.200
net-mail/mailbase-0.00-r9
net-print/cups-1.1.23-r1 |
Pour faire une mise à jour à partir de ces paquets, voici comment faire :
Code: | for i in `emergeupdate`; do emerge "=$i"; done |
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
TTK Guru
![Guru Guru](/images/ranks/rank_rect_3.gif)
![](images/avatars/68340322240bee9bd1933d.png)
Joined: 02 Mar 2004 Posts: 523
|
Posted: Tue Jun 21, 2005 4:13 pm Post subject: |
|
|
Je chipote mais si tu fais ça, et que le premier ebuild provoque par dépendance l'emerge de tous les autres, ton for va quand même les re-emerger .. Pas optimal.
Edit: ajoute un petit sort -u qque part pour éliminer d'éventuels doublons. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
DidgeriDude Guru
![Guru Guru](/images/ranks/rank_rect_3.gif)
![](images/avatars/1502764408420ffa765d63f.gif)
Joined: 30 Jan 2005 Posts: 349
|
Posted: Tue Jun 21, 2005 6:04 pm Post subject: |
|
|
Je viens tout juste de faire un emerge sync, histoire d'être à jour !
Je me fais un emerge -uDpN world, et il me sort 3 packages à mettre à jour. Bien !
Là, je me dis : teste un peu le script présent ici...
Et bing : 46 packages à mettre à jour !
Est-ce que quelqu'un pourrait me dire pourquoi une telle différence ?
Cela viendrait-il d'entrées manquantes dans mon fichier world ? Si oui, pourquoi ?
@romale : ton script ne renvoit rien de bien explicatif dans le cas d'un package masqué, nécessaire dans une dépendance... Un petit test dans un coin ? Sinon, bonne idée ce script. Merci.
@TTK : on peut aussi mettre emerge -u dans la boucle for pour éviter le problème. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
zdra Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/2069368038410c136a83bf6.jpg)
Joined: 30 Nov 2003 Posts: 1693 Location: Bruxelles, Belgique
|
Posted: Tue Jun 21, 2005 6:40 pm Post subject: |
|
|
Et quoi personne ne pense à ma doc ? :'(
Tout y est dit sur la question ![Wink ;)](images/smiles/icon_wink.gif) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
DidgeriDude Guru
![Guru Guru](/images/ranks/rank_rect_3.gif)
![](images/avatars/1502764408420ffa765d63f.gif)
Joined: 30 Jan 2005 Posts: 349
|
Posted: Tue Jun 21, 2005 6:50 pm Post subject: |
|
|
@zdra : Patapé patapé...
@romale : on peut ajouter un paramètre à ton script :
et rajouter cette ligne à la fin :
Code: | emerge -uvDN $1 $packages |
même si, dans ce cas, l'affichage de la liste n'est plus nécessaire...
Et donc dans ce cas, on pourrait avoir :
Code: | # Copyright (c) 2005 Alexandre ROMAN <roman.alex@online.fr>
# Publié sous licence GPL
#
# Auteur: Alexandre ROMAN <roman.alex@online.fr>
# Version: 20050621-r1
#
# Affiche la liste des paquets à mettre à jour sous Gentoo Linux.
# Le paquet gentoolkit (contenant la commande equery) est requis.
#
packages=""
# "equery list" affiche la liste des paquets installés
for i in $(equery -q -C list | grep -v "installed packages")
do
packages=$packages" >=$i"
done
# Affiche le nom des paquets à mettre à jour ou les emerge, suivant le paramètre
emerge -uvDN $1 $packages |
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Leander256 l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
![](images/avatars/12696515763f31ef9a46a07.jpg)
Joined: 05 Jul 2003 Posts: 910 Location: Singapour
|
Posted: Tue Jun 21, 2005 8:12 pm Post subject: |
|
|
romale wrote: | Après un premier test sur une machine, la commande emerge -upvDN world n'affiche pas le paquet net-firewall/shorewall, alors que celui-ci est bien à mettre à jour. Mon script n'est finalement pas tout à fait inutile ! Qu'est-ce que cela donne sur vos machines ? |
Je pense que c'est l'option -N qui fait la différence, à mon avis emerge ne cherche que les paquets dont les USE flags ont été modifiés, et partant de là leurs dépendances. Alors que tu t'attends à ce qu'il regarde tous les USE flags changés sur toutes les dépendances de tous les nouveaux paquets (dont ceux qui ne sont pas concernés par le changement de USE flags). |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
TTK Guru
![Guru Guru](/images/ranks/rank_rect_3.gif)
![](images/avatars/68340322240bee9bd1933d.png)
Joined: 02 Mar 2004 Posts: 523
|
Posted: Tue Jun 21, 2005 8:53 pm Post subject: |
|
|
zdra wrote: | Et quoi personne ne pense à ma doc ? :'(
|
Damned .. je connais pas glsa-update !
Et j'avais pas pensé au --newuse dans mes updates, je m'en servais que quand je modifiais un de mes flags !
Merci les gars, encore plein de trucs sympas a tester. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
boozo Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/83658268945e337605eec8.gif)
Joined: 01 Jul 2004 Posts: 3193
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
TTK Guru
![Guru Guru](/images/ranks/rank_rect_3.gif)
![](images/avatars/68340322240bee9bd1933d.png)
Joined: 02 Mar 2004 Posts: 523
|
Posted: Tue Jun 21, 2005 9:17 pm Post subject: |
|
|
'tain, je suis affecté par 3 GLSA ..
Trop forts les gentooistes. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
|