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: