есть ли способ легко редактировать файл управления в пакете deb. Не важно, на какую систему (Linux, Mac ОС X и т. д.) Может быть, кто-то знает хороший скрипт, чтобы сделать его автоматизированным?
Как легко редактировать файл управления в пакете deb
2 ответа
зацени вот это: http://ubuntuforums.org/showthread.php?t=636724 На всякий случай что нить не удаляется, я выложу копию кода здесь:
DEBFILE=""
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"
изменить vi
для любого редактора. Сохраните его как скрипт оболочки (т. е. debcontrol.sh
), сделайте его исполняемым (chmod +x
), и использовать deb в качестве первого параметра (./debcontrol.sh xxxxx.deb
)
скрипт Ubuntu форум требуется несколько изменений для запуска. Поскольку мое редактирование другого сообщения не было одобрено, вот моя обновленная версия.
#!/bin/bash
DEBFILE=""
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"
Сохранить как скрипт оболочки, сделать его исполняемым (chmod +x videbcontrol
), и запустите его так:
fakeroot videbcontrol package.deb
важно использовать fakeroot
, в противном случае владение файлом сбрасывается до текущего пользователя.
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]