Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Emerge] Mise à jour des paquets
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
romale
n00b
n00b


Joined: 29 Nov 2002
Posts: 19

PostPosted: Tue Jun 21, 2005 1:44 pm    Post subject: [Emerge] Mise à jour des paquets Reply with quote

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
View user's profile Send private message
titix
Guru
Guru


Joined: 01 Nov 2003
Posts: 343
Location: Paris, France

PostPosted: Tue Jun 21, 2005 1:46 pm    Post subject: Reply with quote

emerge -uD world
_________________
titix
« La route est longue... mais la voie est libre ! »
Back to top
View user's profile Send private message
kernelsensei
Bodhisattva
Bodhisattva


Joined: 22 Feb 2004
Posts: 5619
Location: Woustviller/Moselle/FRANCE (49.07°N;7.02°E)

PostPosted: Tue Jun 21, 2005 1:51 pm    Post subject: Reply with quote

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
View user's profile Send private message
scout
Veteran
Veteran


Joined: 08 Mar 2003
Posts: 1991
Location: France, Paris en Semaine / Metz le W-E

PostPosted: Tue Jun 21, 2005 1:52 pm    Post subject: Reply with quote

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
View user's profile Send private message
romale
n00b
n00b


Joined: 29 Nov 2002
Posts: 19

PostPosted: Tue Jun 21, 2005 1:57 pm    Post subject: Reply with quote

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
View user's profile Send private message
boozo
Advocate
Advocate


Joined: 01 Jul 2004
Posts: 3193

PostPosted: Tue Jun 21, 2005 2:13 pm    Post subject: Reply with quote

'alute

pour info ton script fonctionne bien mais... il est très très gourmant en ressources :!:

sinon si tu as "zappé" des package à l'installation, tu peux toujours faire un regenworld
nb.: sauvegarde ton fichier world avant c'est toujours prudent :wink:

:)
_________________
" Un psychotique, c'est quelqu'un qui croit dur comme fer que 2 et 2 font 5, et qui en est pleinement satisfait.
Un névrosé, c'est quelqu'un qui sait pertinemment que 2 et 2 font 4, et ça le rend malade ! "
Back to top
View user's profile Send private message
romale
n00b
n00b


Joined: 29 Nov 2002
Posts: 19

PostPosted: Tue Jun 21, 2005 2:15 pm    Post subject: Reply with quote

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
View user's profile Send private message
romale
n00b
n00b


Joined: 29 Nov 2002
Posts: 19

PostPosted: Tue Jun 21, 2005 3:18 pm    Post subject: Reply with quote

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
View user's profile Send private message
TTK
Guru
Guru


Joined: 02 Mar 2004
Posts: 523

PostPosted: Tue Jun 21, 2005 4:13 pm    Post subject: Reply with quote

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
View user's profile Send private message
DidgeriDude
Guru
Guru


Joined: 30 Jan 2005
Posts: 349

PostPosted: Tue Jun 21, 2005 6:04 pm    Post subject: Reply with quote

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
View user's profile Send private message
zdra
Veteran
Veteran


Joined: 30 Nov 2003
Posts: 1693
Location: Bruxelles, Belgique

PostPosted: Tue Jun 21, 2005 6:40 pm    Post subject: Reply with quote

Et quoi personne ne pense à ma doc ? :'(

Tout y est dit sur la question ;)
Back to top
View user's profile Send private message
DidgeriDude
Guru
Guru


Joined: 30 Jan 2005
Posts: 349

PostPosted: Tue Jun 21, 2005 6:50 pm    Post subject: Reply with quote

@zdra : Patapé patapé...:oops:

@romale : on peut ajouter un paramètre à ton script :
Code:
emergeupdate -p

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
View user's profile Send private message
Leander256
l33t
l33t


Joined: 05 Jul 2003
Posts: 910
Location: Singapour

PostPosted: Tue Jun 21, 2005 8:12 pm    Post subject: Reply with quote

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
View user's profile Send private message
TTK
Guru
Guru


Joined: 02 Mar 2004
Posts: 523

PostPosted: Tue Jun 21, 2005 8:53 pm    Post subject: Reply with quote

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
View user's profile Send private message
boozo
Advocate
Advocate


Joined: 01 Jul 2004
Posts: 3193

PostPosted: Tue Jun 21, 2005 9:10 pm    Post subject: Reply with quote

'alute

@TTK : et qd tu en auras marre des "-d" et "-i" du glsa-check -l 'new' essayes le script d'anigel :wink:
_________________
" Un psychotique, c'est quelqu'un qui croit dur comme fer que 2 et 2 font 5, et qui en est pleinement satisfait.
Un névrosé, c'est quelqu'un qui sait pertinemment que 2 et 2 font 4, et ça le rend malade ! "
Back to top
View user's profile Send private message
TTK
Guru
Guru


Joined: 02 Mar 2004
Posts: 523

PostPosted: Tue Jun 21, 2005 9:17 pm    Post subject: Reply with quote

'tain, je suis affecté par 3 GLSA ..

Trop forts les gentooistes.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum