Deb paketlerini işlemek için birincil komut şudur dpkg-deb
.
Paketi açmak için boş bir dizin oluşturun ve ona geçin, ardından dpkg-deb
kontrol bilgilerini ve paket dosyalarını çıkartmak için çalıştırın . dpkg-deb -b
Paketi yeniden kurmak için kullanın .
mkdir tmp
dpkg-deb -R original.deb tmp
# edit DEBIAN/postinst
dpkg-deb -b tmp fixed.deb
Komut dosyanız kök olarak çalışmadığı sürece, dosyaların izin ve sahip olma işlemlerinin ayıklama aşamasında bozulmayacağını unutmayın. Bundan kaçınmanın bir yolu, betiğinizi altında çalıştırmaktır fakeroot
. Tüm diziyi tek tek fakeroot
değil, altında dpkg-deb
tek tek çalıştırmanız gerektiğine dikkat edin , çünkü bu fakeroot
, onlar gibi oluşturulamayan dosyaların izinlerinin hafızasını tutan işlemdir.
fakeroot sh -c '
mkdir tmp
dpkg-deb -R original.deb tmp
# edit DEBIAN/postinst
dpkg-deb -b tmp fixed.deb
'
İzinlerle uğraşmak yerine, veri arşivini bozulmadan tutabilir ve yalnızca kontrol arşivini değiştirebilirsiniz. dpkg-deb
bunu yapmanın bir yolunu sağlamıyor. Neyse ki, deb paketleri standart bir formatta: ar
arşivler. Böylece ar
kontrol arşivini çıkartmak, dosyalarını ar
değiştirmek ve kontrol arşivini yeni bir sürümle değiştirmek için tekrar kullanabilirsiniz .
mkdir tmp
cd tmp
ar p ../original.deb control.tar.gz | tar -xz
# edit postinst
cp ../original.deb ../fixed.deb
tar czf control.tar.gz *[!z]
ar r ../fixed.deb control.tar.gz
Sen gerektiğini bir ekleme changelog girişi ve değişim sürüm numarasını paketin bir şey değiştirirseniz. Debian paketlerini manipüle etme altyapısı, iki paket aynı isim ve sürüme sahipse aynı paket olduklarını varsayar. Sürüm numarasının sonundaki debian_revision bölümüne bir sonek ekleyin ; Sebepleri ile başlamalıdır eki sıralamak için ~
, örneğin 1.2.3-4.1
olur 1.2.3-4.1~johnjumper1
.
Shell araçlarını kullanmak yerine Emacs kullanabilirsiniz. dpkg-dev-el
Paket (bu bir yerli Debian paketi gibi kendi memba olan) modları düzenlemek için içerdiği .deb
dosya ve Debian Değişiklikleri gösteren düzenleyin. Emacs etkileşimli olarak kullanılabilir veya kodlanabilir.
-e
ait anahtarı fpm kontrol dosyasını değiştirmek için:fpm -e -s deb -t deb ../old.deb
. Bu, kontrol dosyasını editörünüzde açacaktır.