Saya ingin membuat paket deb baru untuk menginstal serangkaian file. Jika memungkinkan, saya ingin membuka folder yang berisi file-file ini sebagai bagian dari instalasi ke lokasi folder yang dikenal. Gagal itu, beberapa pengetahuan cara mengemas folder dan file sumber akan sangat berguna.
Pertanyaannya adalah - apakah ini mungkin dan jika demikian - bagaimana?
Mari kita beri contoh:
~/mypluginfolder/
berisi file x
,, y
subfolder yang dipanggil abc
dan di dalamnya ada file lain yang dipanggil z
.
Saya ingin tar folder ini: tar -cvf myfiles.tar ~/mypluginfolder
Saya kira paket debian saya akan terlihat seperti
myfiles.tar.gz
myfiles+ppafoss_0.1-1/
myfiles.tar
DEBIAN
changelog, compat, control, install, rules source
Apakah mungkin untuk entah bagaimana myfiles.tar
membuka ke lokasi folder yang diketahui misalnya
/usr/share/rhythmbox/plugins/
Dengan demikian hasil akhirnya adalah:
/usr/share/rhythmbox/plugins/mypluginfolder
/usr/share/rhythmbox/plugins/mypluginfolder\x
/usr/share/rhythmbox/plugins/mypluginfolder\y
/usr/share/rhythmbox/plugins/mypluginfolder\abc\z
Jika - menganggap launchpad membutuhkan sumber, saran dicari di mana saya harus meletakkan folder sumber dan file ke dalam struktur paket deb.
Ini pada akhirnya akan menjadi serangkaian paket PPA launchpad individual.
Apa yang saya sukai (tetapi mungkin tidak dapat mencapai ...) adalah untuk menjaga kemasan saya ke minimum - membuat serangkaian paket dari template dan menyesuaikan minimum (changelog dll + file tar / file & struktur folder) .
sumber
Jawaban:
Di bawah, saya mengasumsikan bahwa sumbernya terbuka (mis. Skrip Python) yang karenanya tidak terikat dengan arsitektur apa pun (mis. Amd64 atau i386), karenanya "semua". Jika Anda memiliki beberapa sumber C, Anda perlu menggunakannya
Architecture: amd64 i386
dalamcontrol
file sumber Anda .membuat paket yang siap untuk Launchpad
Launchpad hanya menerima paket sumber, jadi buat
rules
yang memasang file di tempat yang benar. Untuk kenyamanan, saya akan menggunakan debhelper . Direktori dengan file Anda akan terlihat seperti:Sebuah
debian/copyright
file yang mungkin juga berguna untuk menginformasikan pengguna tentang lisensi terkait dengan paket. Saya tidak berpikir Anda memerlukanpostinst
skrip karena Anda hanya perlu mengekstrak beberapa file.compat
harus mengandung tingkat kesesuaian debhelper, katakan "8". (lihat halaman manual debhelper untuk lebih jelasnya)The
changelog
file dapat diedit dengandch
perintah, tersedia daridevscripts
paket. Therules
(menggunakan debhelper) harus berisi:Jadikan itu dapat dieksekusi menggunakan
chmod 755 debian/rules
. Paket sumber dapat dibangun menggunakandebuild -S
. Pastikan berada di direktori bernama<package-name>-<version>
. Informasi lebih lanjut tentangoverride_
perilaku dandh
perintah dapat ditemukan di halaman manualnya .The Debian Pengelola Baru Guide sangat berharga bagi saya untuk memahami ini, itu membaca direkomendasikan. Contoh kemasan dapat ditemukan di https://github.com/Bumblebee-Project/bumblebee-ppa .
membuat paket dari pohon file yang ada
dpkg-deb -b
dapat digunakan untuk membuat tarbal dari pohon file yang ada. Pertama, mulailah dengan membuat direktori yang harus dinamai setelah paket Anda. Saya akan menganggap Anda ingin memberi namamyplugin
, dan memasukkannya ke dalam/usr/share/rhythmbox/plugins/mypluginfolder
. Selain itu, buatDEBIAN
direktori (huruf besar!) Untuk menyimpan informasi paket:Salin file Anda:
Selanjutnya, Anda akan memerlukan file kontrol yang disebut
myplugin/DEBIAN/control
yang menggambarkan paket. Isi dari file tersebut diletakkan di bawah ini:Sekarang, Anda dapat memverifikasi isi paket Anda secara opsional. Perintah selanjutnya berisi daftar entri file dan direktori
myplugin
:Jika Anda puas, buat paket di direktori saat ini:
File baru akan muncul, beri nama seperti
<package>_<version>_<architecture>.deb
yang ada dalam contoh inimyplugin_1.0-1_all.deb
. Anda dapat menggunakanless
program ini untuk mengintip file. Sebagai contohless myplugin_1.0-1_all.deb
,.sumber