Existe-t-il un moyen d'éditer facilement le fichier de contrôle dans le paquetage deb. Peu importe le système (Linux, Mac OS X etc.) Peut-être que quelqu'un connaît un bon script pour l'automatiser ?
Réponses
Trop de publicités?A vérifier : http://ubuntuforums.org/showthread.php?t=636724 Juste au cas où ce fil de discussion serait supprimé, je posterai une copie du code ici aussi :
DEBFILE="$1"
TMPDIR=`mktemp -d /tmp/deb.XXXXXXXXXX` || exit 1
OUTPUT=`basename "$DEBFILE" .deb`.modfied.deb
if [[ -e "$OUTPUT" ]]; then
echo "$OUTPUT exists."
rm -r "$TMPDIR"
exit 1
fi
dpkg-deb -x "$DEBFILE" "$TMPDIR"
dpkg-deb --control "$DEBFILE" "$TMPDIR"/DEBIAN
if [[ ! -e "$TMPDIR"/DEBIAN/control ]]; then
echo DEBIAN/control not found.
rm -r "$TMPDIR"
exit 1
fi
CONTROL="$TMPDIR"/DEBIAN/control
MOD=`stat -c "%y" "$CONTROL"`
vi "$CONTROL"
if [[ "$MOD" == `stat -c "%y" "$CONTROL"` ]]; then
echo Not modfied.
else
echo Building new deb...
dpkg -b "$TMPDIR" "$OUTPUT"
fi
rm -r "$TMPDIR"
Changer vi
à l'éditeur de son choix. Sauvegardez-le en tant que Shell Shell (c.-à-d. debcontrol.sh
), le rendre exécutable ( chmod +x
), et utiliser le deb comme premier paramètre ( ./debcontrol.sh xxxxx.deb
)
Le script de la rubrique Forums Ubuntu a besoin de quelques modifications pour fonctionner. Puisque ma modification de l'autre message n'a pas été approuvée, voici ma version mise à jour.
#!/bin/bash
DEBFILE="$1"
TMPDIR=`mktemp -d /tmp/deb.XXXXXXXXXX` || exit 1
OUTPUT=`basename "$DEBFILE" .deb`.modified.deb
if [[ -e "$OUTPUT" ]]; then
echo "$OUTPUT exists."
rm -r "$TMPDIR"
exit 1
fi
dpkg-deb -x "$DEBFILE" "$TMPDIR"
dpkg-deb --control "$DEBFILE" "$TMPDIR"/DEBIAN
if [[ ! -e "$TMPDIR"/DEBIAN/control ]]; then
echo DEBIAN/control not found.
rm -r "$TMPDIR"
exit 1
fi
CONTROL="$TMPDIR"/DEBIAN/control
MOD=`stat -c "%y" "$CONTROL"`
sensible-editor "$CONTROL"
if [[ "$MOD" == `stat -c "%y" "$CONTROL"` ]]; then
echo Not modified.
else
echo Building new deb...
dpkg -b "$TMPDIR" "$OUTPUT"
fi
rm -r "$TMPDIR"
Enregistrez-le en tant que Shell Shell, rendez-le exécutable ( chmod +x videbcontrol
), et l'exécuter comme suit :
fakeroot videbcontrol package.deb
Il est important d'utiliser fakeroot
sinon la propriété du fichier est réinitialisée au profit de l'utilisateur actuel.