Saya berlari dpkg-buildpackage
setelah mendapatkan apt-get source nginx
versi backports dari nginx dan memodifikasi debian/rules
untuk memasukkan modul uwsgi. Hasil terakhir dari perintah adalah:
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 <[email protected]>": 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
Mengeluh bahwa karena saya bukan pengelola asli paket, kunci saya tidak cocok.
Apakah ini benar-benar perlu dan jika demikian bagaimana saya bisa membuatnya menggunakan kunci saya untuk melakukan pencocokan gpg?
ls -al
. Gagal membuat mereka karena gagal verifikasi gpg, kan? Berarti dengan perintah baru Anda, itu harus membuatnya? Atau saya salah?Ketika Anda membuat versi berbeda dari sebuah paket (seperti yang Anda lakukan, sejak Anda mengubah aturan build), Anda harus benar-benar menambahkan entri changelog. Dengan begitu, paket Anda akan memiliki nomor versi yang berbeda (sehingga Anda akan segera tahu bahwa itu bukan paket standar dari distribusi), dan Anda akan memiliki jejak dari apa yang Anda ubah.
Edit
debian/changelog
, dan tambahkan entri yang meniru format entri yang ada. Tanggal mulai dari hari ini, dan pilih nomor versilike 0.7.67-3~bpo50+meder1
(Anda menginginkan sesuatu yangdpkg --compare-versions
mengatakan versi Anda lebih baru). Masukkan alamat email Anda sebagai pengelola; dengan cara itu, Anda memiliki indikasi yang jelas bahwa ini adalah paket yang Anda modifikasi, dandpkg-buildpackage
akan meminta frasa sandi GPG Anda.Jika Anda pengguna Emacs, instal
dpkg-dev-el
paket, dan gunakan perintahC-c C-a
danC-c C-c
untuk menambah dan menyelesaikan entri changelog Anda.sumber
Meskipun menandatangani paket tidak diperlukan, dan
-uc -us
opsi dapat digunakan untuk menghindari langkah itu, juga dapat membantu untuk menandatangani paket, terutama jika orang lain akan menggunakannya, atau Anda akan mengirimkannya melalui jalur komunikasi yang tidak aman. Dan itu tidak sulit sama sekali.Untuk menghasilkan tanda tangan yang baik, lihat halaman manual untuk dpkg-buildpackage . Secara default ia menandatangani paket dengan gpg. Dari pesan kesalahan yang dicetaknya, sepertinya Anda belum membuat kunci gpg. Lihat misalnya GnuPrivacyGuardHowto - Dokumentasi Komunitas Ubuntu untuk beberapa instruksi dan latar belakang.
Sebagai @Gilles mencatat, Anda juga harus mengubah nomor versi paket melalui file changelog, dan memberikan alamat email untuk kunci gpg yang akan Anda gunakan. Cara mudah untuk melakukannya adalah dengan menjalankan
dch --local foo
perintah, di mana "foo" adalah kata kunci untuk perubahan. Jika Anda benar-benar tidak ingin melakukan itu, dan perlu menentukan nama / alamat pengelola atau pengunggah yang berbeda, atau kunci spesifik yang akan digunakan saat menandatangani, Anda juga dapat menggunakan-m
,-e
atau-k
opsi saat membuat.Lihat Bagaimana cara membangun kembali paket Debian untuk tips lebih lanjut.
Bagian yang sulit datang ketika seseorang mencoba memutuskan apakah paket yang diberikan ditandatangani oleh seseorang yang mereka percayai. Lihatlah web kepercayaan PGP untuk menangani masalah halus yang terlibat.
sumber