Pb avec live build : gzip: stdin: not in gzip format

Bonjour,

Sous squeeze j’ai toujours réussi à fabriquer mes clés / live cd sans trop de difficultés mais cette fois, sous wheezy, je me heurte à un pb que je n’arrive pas à résoudre malgré les logs.

Voici ma config du fichier /etc/live/build.conf :

et voici mon log où ça bloque :

On voit bien qu’à la fin, ça déconne mais malgré la construction de la clé en mode --debug --verbose ça ne parle pas du tout :confused:

une idée ?

Ce qui compte c’est la fin

[quote=“guiguitarux”]Reading state information… Done
[2014-03-27 06:15:29] lb chroot_linux-image
–2014-03-27 06:15:29-- ftp2.fr.debian.org/debian/
Résolution de ftp2.fr.debian.org (ftp2.fr.debian.org)… 194.2.0.36, 2a01:c910:0:1::c202:24
Connexion vers ftp2.fr.debian.org (ftp2.fr.debian.org)|194.2.0.36|:80…connecté.
requête HTTP transmise, en attente de la réponse…200 OK
Longueur: non spécifié [text/html]
Sauvegarde en : «STDOUT»

[ <=> ] 4 585 --.-K/s ds 0,04s

2014-03-27 06:15:29 (119 KB/s) - envoi sur stdout [4585]

gzip: stdin: not in gzip format
P: Begin unmounting filesystems…
P: Saving caches…
Reading package lists… Done
Building dependency tree
Reading state information… Done[/quote]
C’est le script lb chroot_linux-image qui s’arrête faute de se dérouler comme attendu. En regardant un peu dans /usr/lib/live/build/chroot_linux-image ligne 77 :

wget ${WGET_OPTIONS} ${_CONTENT} -O - | gunzip -c >> cache/contents.chroot/contents.${LB_PARENT_DISTRIBUTION}.${LB_ARCHITECTURES}

En gros, le script tente de télécharger puis extraire un des fichiers Contents depuis le miroir, en l’occurence Contents-amd64.gz depuis http://ftp2.fr.debian.org/debian/dists/wheezy/ mais il semble qu’il obtient un fichier text/html à la place et s’arrête donc. Pourquoi le serveur retourne un fichier html, mystère. Peut-être des options de wget résiduelles.
Pour avoir des meilleurs résultats avec live-build, il est recommandé de partir d’une pré-configuration disponible via git ou autre. Voir le manuel en ligne http://live.debian.net/manual/3.x/html/live-manual.fr.html#321

wha la bête ! :041

ok je vais plancher sur tout ce que tu viens de me répondre.

Merci beaucoup

j’ai enfin pris le temps de regarder et j’ai trouvé… y avais plusieurs problèmes à résoudre :

sachant que gunzip -c semblait être à l’origine du problème, j’ai cherché à le remplacer par un équivalent: zcat, je me suis mis à la recherche de cet utilitaire de décompression. Comme je ne l’ai pas trouvé avec apt-cache search, j’ai employé apt-file. Mais j’ai dû apporter une modification à mon miroir de dépots local car apt-file ne trouvait pas son bonheur; j’ai simplement créé des liens symboliques sur les fichiers Contents.gz de http://[depotlocal]/debian/dists/wheezy/ vers http://[depotlocal]/debian/dists/wheezy/main (puis contrib et non-free) soit un niveau plus loin dans l’arborescence du dépot. Ce problème réglé j’ai pu trouver le paquet correspondant à l’utilitaire zcat : zutils

log après install de zcat :

apt-get install zutils

de là je remplace à la ligne 77 gunzip -c par zcat du fichier chroot_linux-image :

root@GNU-LINUX:/usr/lib/live/build# nano +77 chroot_linux-image

puis je relance la création de mon image :

root@GNU-LINUX:/machin# lb build
[2014-04-02 21:52:54] lb build
[2014-04-02 21:52:54] lb bootstrap
P: Setting up cleanup function
[2014-04-02 21:52:54] lb bootstrap_cache restore
P: Restoring bootstrap stage from cache…
[2014-04-02 21:52:54] lb bootstrap_cdebootstrap
[2014-04-02 21:52:55] lb bootstrap_debootstrap
P: Begin bootstrapping system…
[2014-04-02 21:52:55] lb testroot
W: skipping bootstrap, already done
[2014-04-02 21:52:55] lb bootstrap_archive-keys
Err localhost wheezy Release.gpg
Temporary failure resolving ‘localhost’
Reading package lists… Done
W: Failed to fetch localhost/debian/dists/wheezy/Release.gpg Temporary failure resolving ‘localhost’

W: Some index files failed to download. They have been ignored, or old ones used instead.
[2014-04-02 21:52:55] lb bootstrap_cache save
P: Saving bootstrap stage to cache…
W: skipping bootstrap_cache.save, already done
P: Begin unmounting filesystems…
P: Saving caches…
Reading package lists… Done
Building dependency tree… Done
[2014-04-02 21:52:55] lb chroot
P: Setting up cleanup function
[2014-04-02 21:52:55] lb chroot_cache restore
[2014-04-02 21:52:56] lb chroot_devpts install
[2014-04-02 21:52:56] lb testroot
P: Begin mounting /dev/pts…
[2014-04-02 21:52:56] lb chroot_proc install
[2014-04-02 21:52:56] lb testroot
P: Begin mounting /proc…
[2014-04-02 21:52:56] lb chroot_selinuxfs install
[2014-04-02 21:52:56] lb testroot
[2014-04-02 21:52:56] lb chroot_sysfs install
[2014-04-02 21:52:56] lb testroot
P: Begin mounting /sys…
[2014-04-02 21:52:56] lb chroot_debianchroot install
P: Configuring file /etc/debian_chroot
W: skipping chroot_debianchroot, already done
[2014-04-02 21:52:56] lb chroot_dpkg install
P: Configuring file /sbin/start-stop-daemon
W: skipping chroot_dpkg, already done
[2014-04-02 21:52:56] lb chroot_tmpfs install
[2014-04-02 21:52:56] lb chroot_sysv-rc install
P: Configuring file /usr/sbin/policy-rc.d
W: skipping chroot_sysv-rc, already done
[2014-04-02 21:52:57] lb chroot_upstart install
[2014-04-02 21:52:57] lb chroot_hosts install
P: Configuring file /etc/hosts
W: skipping chroot_hosts, already done
[2014-04-02 21:52:57] lb chroot_resolv install
P: Configuring file /etc/resolv.conf
W: skipping chroot_resolv, already done
[2014-04-02 21:52:57] lb chroot_hostname install
W: skipping chroot_hostname, already done
[2014-04-02 21:52:57] lb chroot_apt install
P: Configuring file /etc/apt/apt.conf
W: skipping chroot_apt, already done
[2014-04-02 21:52:57] lb chroot_archives chroot install
P: Configuring file /etc/apt/sources.list
W: skipping chroot_archives, already done
[2014-04-02 21:52:57] lb chroot_linux-image
–2014-04-02 21:52:57-- localhost/debian/
Résolution de localhost (localhost)… 127.0.0.1, ::1
Connexion vers localhost (localhost)|127.0.0.1|:80…connecté.
requête HTTP transmise, en attente de la réponse…200 OK
Longueur: 1287 (1,3K) [text/html]
Sauvegarde en : «STDOUT»

100%[==============================================================================================================================>] 1 287 --.-K/s ds 0s

2014-04-02 21:52:57 (62,5 MB/s) - envoi vers sortie standard [1287/1287]

/dists/wheezy/main/Contents-amd64.gz: Schéma manquant.
[2014-04-02 21:52:57] lb chroot_preseed
P: Begin executing local preseeds…
[2014-04-02 21:52:57] lb chroot_package-lists install
P: Begin queueing installation of package lists (install pass)…
[2014-04-02 21:52:57] lb chroot_install-packages install
P: Begin installing packages (install pass)…
Reading package lists… Done
Building dependency tree… Done
E: Unable to locate package linux-image-amd64
P: Begin unmounting filesystems…
P: Saving caches…
Reading package lists… Done
Building dependency tree… Done
Del libgnutls26 2.12.20-8+deb7u1 [618 kB]
Del tzdata 2014a-0wheezy1 [445 kB]

zut, ça n’abouti pas.

suite à quoi j’ai remplacé toujours dans le même fichier le mot squeeze par wheezy et là, la construction d’une image a réussi.

Merci pour m’avoir mis sur la piste jcsm33 :041

Ça fait plaisir de voir quelqu’un de content mais je pense que ma piste n’était pas celle-là.
La question était : pourquoi wget obtient un fichier Contents-amd64.gz de type [text/html] et de taille quelques kilo octets au lieu d’un fichier de type [application/x-gzip] et de taille plusieurs dizaines de méga octets ?
Le fait de passer sur un serveur local (alors qu’avant c’était un miroir debian), de modifier le code de live-build inutilement (à mon avis) et de finalement avoir le même résultat ou presque

Tout ceci contribue à masquer une erreur par une autre.
Quelques remarques :
Il est vrai que gunzip -c fait sans doute la même chose que zcat.
apt-file search /bin/gunzip aurait bien fonctionné.
Je ne comprends pas ce passage

De quel fichier s’agit-il ?
Bref, tant mieux si “ça marche” mais de mon point de vue, des zones floues persistent (sans parler des liens symboliques).

EDIT
Le suspect n’est pas le bon

j’accepte toutes tes remarques car je ne suis pas codeur et je n’ai pas le temps de m’y pencher davantage, néanmoins j’ai trouvé une solution; …et si je laisse sur le forum la façon dont j’ai pu résoudre mon problème c’est justement parce que je ne tiens pas à “alerter” l’équipe de développeur en charge de maintenir ces fichiers; La raison, tu l’as clairement mis sur table, c’est parce que j’ignore réellement ce qu’il aurait fallu faire pour rendre le travail propre. Chacun son niveau…

J’aurais tellement aimé comprendre et le problème, et la solution. Tant pis.

je viens d’installer les toutes dernières versions des paquets live via git comme l’indique la doc. Je suis vachement déçu car désormais il faudra une connexion internet pour créer une config… Donc en gros, si t’as pas Internet impossible d’aboutir à ce que tu veux. Jusqu’à squeeze je pouvais de A à Z créer mon live-cd sans perturbation et sans prendre de précaution qui font perdre beaucoup de temps (CF firewall, filtrages en tout genre bref…). Comme d’hab ce sont les plus riches et ceux qui ont le plus de temps qui “auront droit”. c’est dégueulasse.

C’est la méthode recommandée mais si un miroir local existe et est bien configuré, l’ajout de l’option appropriée pour utiliser le local suffit.

Effectivement, ça peut fonctionner, je viens d’y arriver. J’ai fait pointer les serveurs recherchés pour créer un build vers une ip fixe locale ( modif à faire dans /etc/hosts ) et ça passe royal. y a des choses qui m’échappent mais peu importe la solution, le principal c’est d’y arriver.