Как легко редактировать файл управления в пакете deb

есть ли способ легко редактировать файл управления в пакете deb. Не важно, на какую систему (Linux, Mac ОС X и т. д.) Может быть, кто-то знает хороший скрипт, чтобы сделать его автоматизированным?

26
задан Sathya
03.02.2023 10:08 Количество просмотров материала 2504
Распечатать страницу

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)

10
отвечен syockit 2023-02-04 17:56

скрипт 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, в противном случае владение файлом сбрасывается до текущего пользователя.

2
отвечен Tobu 2023-02-04 20:13

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх