Bagaimana cara membuat paket meta yang secara otomatis menginstal paket lain?


Jawaban:


47

Paket meta seperti ini dapat dibuat dengan alat yang disebut equivs yang akan membuat paket dengan informasi ketergantungan saja.

Pertama, buat direktori:

mkdir my-metapackage
cd my-metapackage/

Sekarang jalankan program:

equivs-control ns-control

Ini akan membuat file bernama ns-control, buka file ini dengan editor teks Anda. File kontrol yang Anda hasilkan harus dimodifikasi Dependsatau Recommendsgaris - garisnya bergantung pada paket yang ingin Anda instal:

Section: misc
Priority: optional
Standards-Version: 3.9.1

Package: my-metapackage
Version: 1.0   
Depends: openssh-server, gedit
Description: This package installes an ssh server and a text editor
 The Long description of this package ends with a newline!

(Sebagai contoh, Anda harus memasukkan lebih banyak informasi)

Dan akhirnya, bangun paket dengan menjalankan

equivs-build ns-control

Paket Anda terletak di my-metapackage/my-metapackage_1.0_all.deb.

Jika Anda juga ingin membuat paket sumber, --fullopsi dapat diteruskan ke equivs-build, misalnya equivs-build --full ns-control. Ini akan menggunakan debuild & juga membuat file .dsc & .tar.gz.

Untuk membuat file .changes sumber yang dapat Anda unggah ke PPA, ekstrak & buat paket sumbernya dengan

dpkg-source -x my-metapackage_1.0.dsc
cd my-metapackage-1.0
debuild -S

Jika Maintainer yang Anda atur di ns-control cocok dengan kunci GPG Anda, itu harus membangun & menandatangani file my-metapackage_1.0_source.changes untuk Anda transfer ke PPA Anda


Terimakasih banyak. Saya kemungkinan besar akan menguji ini nanti, tetapi sejauh ini, instruksinya berhasil. :)
Thomas Ward

2
Ini bekerja dengan sempurna!
Stefano Palazzo

Terima kasih atas jawabannya, ajmitch, tetapi hanya karena alasan, saya akan menunjukkan bahwa jika Anda memiliki ~/.devscriptsfile dan secara khusus mendefinisikan kunci GPG yang berbeda untuk digunakan dalam file devscripts, itu akan MENGATASI proses dpkg / debuild dan memilikinya gunakan kunci GPG spesifik yang ditentukan .devscripts. Sama seperti poin penting untuk kalimat terakhir dalam jawaban Anda
Thomas Ward

Saya perhatikan bahwa meletakkan paket-paket di bawah Depends:membuat instalasi menjadi baik jika dan hanya jika ada paket; itu tidak menginstal mereka jika mereka tidak ada di mesin saya. Untuk menginstalnya, saya menggunakan Providessebagai gantinya dan itu berfungsi seperti pesona. Lihat kode saya (baru saja mengubahnya): github.com/palladius/debian-packages/blob/master/…
Riccardo
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.