Deb dosyasındaki kontrol dosyası nasıl kolayca düzenlenir


7

Deb dosyasını kolayca kontrol dosyasını düzenlemek için bir yol var mı. Hangi sistemde (Linux, Mac OS X vb.) Önemli değil. Belki birileri otomatik hale getirmek için iyi bir senaryo biliyordur?

Yanıtlar:


10

Şuna bir göz atın: http://ubuntuforums.org/showthread.php?t=636724 Sadece iş parçacığının silinmesi durumunda, kodun bir kopyasını da burada gönderirim:

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"

viİstediğiniz düzenleyicide değiştirin . Bir kabuk betiği (yani debcontrol.sh) olarak kaydedin , çalıştırılabilir ( chmod +x) yapın ve deb'i ilk parametre ( ./debcontrol.sh xxxxx.deb) olarak kullanın


3

Ubuntu forumlarındaki betiğin çalışması için birkaç değişiklik yapılması gerekiyor. Diğer gönderiye yaptığım düzenleme onaylanmadığından, güncellenmiş sürümüm burada.

#!/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"

Bir kabuk betiği olarak kaydedin, çalıştırılabilir ( chmod +x videbcontrol) yapın ve şöyle çalıştırın:

fakeroot videbcontrol package.deb

Kullanımı önemlidir fakeroot, aksi takdirde dosya sahipliği geçerli kullanıcıya sıfırlanır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.