Bonjour,
j’ai une mise à jour de zoneminder qui ne passe pas.
Le script de préinstall effectue une vérification sur des symlinks et retourne une erreur.
J’ai volontairement modifié ma config de fichiers sur ma machine avec des symlinks, et je sais ce que je fais.
Je voudrais supprimer ce test dans le fichier de préinstall.
Mais ou se trouve t il ?
Je ne maîtrise pas trop la structure d’un paquet .deb …
Pour extraire un paquet :
[code]$ aptitude download paquet
dpkg-deb --extract paquet.deb repertoire
dpkg-deb --control paquet.deb repertoire/DEBIAN[/code]
Modifier les fichiers que tu veux (le script preinst doit être dans repertoire/DEBIAN si je ne m’abuse), puis reconstruire et installer le paquet :
[code]$ dpkg-deb --build repertoire
dpkg -i repertoire.deb[/code]
Note : à ma connaissance il faut faire l’extraction en root pour pouvoir conserver les bons droits sur les fichiers extraits, sinon ça met le bazar (c’est du tar.gz donc ça conserve l’utilisateur et les droits de tes fichiers lors de l’installation du paquet). Il y a peut-être une technique pour éviter ça mais je ne la connais pas.
OK merci.
Pour conserver les droits, j’utilise fakeroot.
Je viens de tester ta suggestion, effectivement c’est bien pratique cette petite commande. Merci pour l’info !
Saluts à tous deux …
Tout comme le sujet …
Ceci m’intéresse aussi …
[code]loreleil@machine1:~$ apt-cache policy fakeroot
fakeroot:
Installé : (aucun)
Candidat : 1.14.4-1
loreleil@machine1:~$
[/code]
pourrais tu m’en dire un peu plus sur fakeroot ?
Merci …
-edit-
fakeroot … c’est spécifique à la compilation non …
-edit-1
Merci syam … Explications, claires et précises !!!
Grosso modo, fakeroot fait croire à ses processus enfants (par défaut il ouvre un nouveau shell) qu’ils sont root et peuvent donc définir toutes sortes de droits sur les fichiers, ce qui résout élégamment le problème de droits que j’évoquais plus haut. Bien sûr ce n’est que virtuel, un processus enfant de fakeroot ne pourra en réalité rien faire de plus que ce que l’utilisateur a réellement le droit, mais pour ce qui nous intéresse (la construction d’archives .tar.gz avec des fichiers appartenant à root) c’est pile-poil ce qu’il faut.
Voir la page man :
delafond.org/traducmanfr/deb … oot.1.html
Edit :
Non, c’est plutôt pour la construction de paquets (même si la compilation entraîne généralement la construction d’un paquet). En l’occurrence, piratebab ne compile rien dans le cas présent, il ne fait que modifier le contenu d’un paquet existant.
Enfin, j’essaie.
Le download ne charge qu’un bit
[quote]Get:1 ftp.us.debian.org/debian/ wheezy/main zoneminder armel 1.24.4-1+b2 [1,720 kB]
Fetched 1 B in 0s (1 B/s) [/quote]
alors qu’un install charge bien le package.
C’est pas parce qu’il est déjà dans le cache d’apt (de mémoire, /var/cache/apt) ?
Re,
Dans le même esprit, je crois !!! … … Reconstruction d’un paquet !
Je savais bien que fakeroot me disait quelque chose, suis donc allé fouiner sur une autre de mes bécanes (install bien plus ancienne) pour y déterrer “mes petits papiers” …
# aptitude install fakeroot dpkg-repack
Reconstruction du paquet. (ici j’ai utilisé apt-show-versions, pour cette exemple)
[code]root@machine1:~# cd /home/loreleil
root@machine1:/home/loreleil# fakeroot dpkg-repack apt-show-versions
dpkg-repack: fakeroot run without its -u flag may corrupt some file permissions.
dpkg-deb: building package apt-show-versions' in
./apt-show-versions_0.16_all.deb’.
root@machine1:/home/loreleil#[/code]
[code]root@machine1:/home/loreleil# ls -l
total 48
-rw-r–r-- 1 root root 33812 2 oct. 18:28 apt-show-versions_0.16_all.deb
(…)
drwxr-xr-x 9 loreleil loreleil 4096 2 oct. 13:38 Mes_petits_papiers
root@machine1:/home/loreleil# [/code]
Ici, je ré-install sur la même machine, mais on peut très bien copier le paquet régénéré sur une autre bécane.
(par exemple un paquet qui n’est plus maintenu, mais installé sur une de nos bécanes, ce qui me laisse à pensé que je peut faire de même pour torbutton …
)
root@machine1:/home/loreleil# dpkg -i apt-show-versions_0.16_all.deb
(Lecture de la base de données... 104381 fichiers et répertoires déjà installés.)
Préparation du remplacement de apt-show-versions 0.16 (en utilisant apt-show-versions_0.16_all.deb) ...
Dépaquetage de la mise à jour de apt-show-versions ...
Paramétrage de apt-show-versions (0.16) ...
** initializing cache. This may take a while **
Traitement des actions différées (« triggers ») pour « man-db »...
root@machine1:/home/loreleil#
Un peu d’eau au moulin …
-edit-
je vais coller ça dans T&A … utile, probable …
Décidément ce sujet est une vraie mine d’or !
Edit : peut-être préciser ça dans ton T&A, ça peut être vachement pratique pour (par exemple) configurer un serveur pre-prod et déployer la config sur plein de serveurs identiques, surtout si tu couples ça à un dépôt personnalisé sur le serveur pre-prod.
Avec plaisir syam …
Je vais y citer ton post et ce fil … …
le T&A est actualisé …
reste à actualiser le wiki
J’ai fait la modif, la nouvelle version de zoneminder est installée, mais ne fonctionne pas (caméra qui n’est plus reconnue).
Petit details, j’ai utilisé la commande dpkg-deb -X pour voir la liste des fichiers extraits.