[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: copie d'un sytème sur une autre machine



Franck Delage a écrit, mardi 29 avril 2008, à 12:09 :
[...]
> > (tu peux aussi réemballer ceux qui sont en « hold »).
> 
> Hem... ça veut dire quoi , "en hold" ?

Un paquet « figé », dont tu refuses les mises à jour (par exemple, que
tu as recompilé et empaqueté toi-même).

[...]
> > Plutôt « for i in *.deb ; do ... », ou
> > 
> >  ls -1 *.deb | xargs dpkg --install
> > 
> > mais ...
> > 
> > > ça peux marcher, non ?
> > 
> > Pas sûr, ta  boucle les réinstalle un par  un dans l'ordre alphabétique,
> > ce  qui  posera sans  doute  des problèmes  de  dépendances  ; mon  tube
> > travaille par groupe de paquets  via xargs, et n'évitera ce problème que
> > si la liste n'est pas morcelée...
> 
> Morcelée, c'est à dire ?

La longueur  d'une ligne  de commande est  limitée, et xargs  découpe en
conséquence la  liste des arguments ;  par exemple, avec  des nombres de
cinq chiffres séparés par un espace,

 - dans un shell Emacs :

~ $ echo {10000..99999} |xargs echo|awk '{print$1" ... "$NF}'
10000 ... 31245
31246 ... 52491
52492 ... 73737
73738 ... 94983
94984 ... 99999

 - dans un xterm :

~ $ echo {10000..99999} |xargs echo|awk '{print$1" ... "$NF}'
10000 ... 26124
26125 ... 42249
42250 ... 58374
58375 ... 74499
74500 ... 90624
90625 ... 99999

La différence est due à la taille de l'environnement.

Ce n'est pas un problème sur mon jeune pécé

~ $ dpkg --get-selections |awk '
$2=="install"{l+=length($1);n++}
END{print n" paquets, longueur moyenne " l/n " longueur totale " l+n-1}'
689 paquets, longueur moyenne 10,6168 longueur totale 8003

... et sur le vieux portable, ça passe encore

 $ dpkg --get-selections |awk '
$2=="install"{l+=length($1);n++}
END{print n" paquets, longueur moyenne " l/n " longueur totale " l+n-1}'
1569 paquets, longueur moyenne 10,9006 longueur totale 18671


Reste à vérifier que dpkg -i trie ses arguments selon les dépendances...
-- 
Jacques L'helgoualc'h


Reply to: