Değiştirdiğim ve yeniden derlediğim bir paketi nasıl düzgün bir şekilde imzalayabilirim?


20

Ben nginx bir backports sürümü aldıktan ve uwsgi modülünü içerecek şekilde değiştirdikten dpkg-buildpackagesonra koştu . Komutun son sonuçları:apt-get source nginxdebian/rules

dpkg-deb: building package `nginx' in `../nginx_0.7.67-3~bpo50+1_i386.deb'.
dpkg-deb: building package `nginx-dbg' in `../nginx-dbg_0.7.67-3~bpo50+1_i386.deb'.
 signfile nginx_0.7.67-3~bpo50+1.dsc
gpg: keyring `/home/shogun/.gnupg/secring.gpg' created
gpg: skipped "Faidon Liambotis <paravoid@debian.org>": secret key not available
gpg: [stdin]: clearsign failed: secret key not available

 dpkg-genchanges  >../nginx_0.7.67-3~bpo50+1_i386.changes
dpkg-genchanges: warning: the current version (0.7.67-3~bpo50+1) is smaller than the previous one (0.7.67-3)
dpkg-genchanges: not including original source code in upload
dpkg-buildpackage: binary and diff upload (original source NOT included)
dpkg-buildpackage: warning: Failed to sign .dsc and .changes file

Paketin orijinal bakıcısı olmadığım için anahtarımın eşleşmediğinden şikayet ediyor.

Bu gerçekten gerekli mi ve eğer öyleyse nasıl gpg eşleştirmesi yapmak için tuşlarımı kullanabilirim?

Yanıtlar:


32

Kendi özel kullanımınız için oluşturduysanız, PGP imzalama Debian paketleri gerekli değildir. Debian "kararsız" dalına yeni paketler yüklediklerinde (resmi) Debian geliştiricileri için sadece ortak kimlik doğrulama yöntemidir.

Hata mesajını önlemek için şunu kullanın:

dpkg-buildpackage -uc -us

(ayrıca dpkg-buildpackage kılavuzuna bakınız)


Sadece üst dizine baktım ve değişiklik tarihlerine göre bu .deb dosyalarını oluşturmadı gibi görünüyor ls -al. GPP'nin başarısız doğrulaması nedeniyle bunları oluşturamadı, değil mi? Yeni emrinizle bir anlam ifade ediyor, onları mı yaratmalı? Yoksa yanılıyor muyum?
meder omuraliev

6

Bir paketin farklı bir sürümünü oluşturduğunuzda (oluşturma kurallarını değiştirdiğinizden beri yaptığınız gibi), gerçekten bir changelog girişi eklemelisiniz. Bu şekilde, paketinizin farklı bir sürüm numarası olacaktır (bu nedenle dağıtımın standart paketi olmadığını hemen anlayacaksınız) ve değiştirdiğiniz şeyin izine sahip olacaksınız.

Düzen debian/changelogve mevcut girdilerinin biçimini taklit eden bir girdi ekleyin. Bugünden itibaren tarih girin ve bir sürüm numarası seçin like 0.7.67-3~bpo50+meder1( dpkg --compare-versionssürümünüzün daha yeni olduğunu söyleyen bir şey istiyorsanız ). E-posta adresinizi koruyucu olarak koyun; bu şekilde, bunun değiştirdiğiniz bir paket olduğunu ve dpkg-buildpackageGPG parolanızı soracağınıza dair açık bir belirtiniz var .

Emacs kullanıcısıysanız, dpkg-dev-elpaketi yükleyin ve changelog girişinizi eklemek ve sonlandırmak için C-c C-ave C-c C-ckomutlarını kullanın.


5

Bir paketi imzalamak gerekli olmasa da ve -uc -usbu adımı önlemek için seçenekler kullanılabilir, ancak özellikle başkaları kullanacaksa veya paketi güvenli olmayan iletişim yollarıyla gönderecekseniz, bir paketi imzalamak da yararlı olabilir. Ve hiç de zor değil.

İyi bir imza oluşturmak için dpkg-buildpackage kılavuz sayfasına bakınız . Varsayılan olarak paketleri gpg ile imzalar. Yazdırdığı hata mesajlarından, henüz bir gpg anahtarı oluşturmadığınız anlaşılıyor. Bazı talimatlar ve arka plan için bkz. GnuPrivacyGuardHowto - Topluluk Ubuntu Belgeleri .

@Gilles'ın belirttiği gibi, paket sürümü numarasını changelog dosyası aracılığıyla değiştirmeli ve kullanacağınız gpg anahtarı için e-posta adresini sağlamalısınız. Bunu yapmanın kolay bir yolu dch --local foo, "foo" nun değişiklik için bir anahtar kelime olduğu komutu çalıştırmaktır . Bunu gerçekten yapmak istemiyorsanız ve farklı bir bakımcı veya yükleyici adı / adresi veya imzalarken kullanılacak belirli bir anahtar belirtmeniz gerekiyorsa -m, bina sırasında , -eveya -kseçeneğini de kullanabilirsiniz .

Daha fazla ipucu için Debian paketlerini yeniden oluşturma konusuna bakın .

Zor kısım, birisi belirli bir paketin güvendiği biri tarafından imzalanıp imzalanmadığına karar vermeye çalışırken gelir. İlgili ince sorunlarla başa çıkmak için PGP güven ağına göz atın.

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.