Boost adalah contoh kompleks, mari kita lihat yang lebih sederhana dulu.
Secara tepat, paket source openssl menyediakan 5 paket biner:
libssl1.0.0
berisi pustaka dinamis OpenSSL, versi 1.0.0. Itulah yang harus dijalankan oleh program yang terhubung dengan perpustakaan ini. Nama paket berisi nomor versi karena Anda mungkin memiliki versi lain dari perpustakaan diinstal pada saat yang sama, jika Anda memiliki program lain yang ditautkan dengan versi lain yang tidak kompatibel dengan biner dengan 1.0.0.
openssl
berisi alat baris perintah yang menggunakan pustaka OpenSSL. Sekalipun Anda memiliki beberapa versi pustaka, Anda tidak memerlukan beberapa versi alat ini: hanya ada satu /usr/bin/openssl
dan alat terkait, data, dan dokumentasi.
libssl-dev
berisi file-file yang Anda butuhkan jika Anda ingin mengkompilasi sebuah program yang terhubung dengan OpenSSL. Ada file header C ( *.h
), perpustakaan untuk menautkan ( *.a
, *.so
), dan beberapa file berbagai macam.
libssl-doc
berisi dokumentasi untuk perpustakaan OpenSSL. Anda hanya perlu paket ini jika Anda akan menulis program yang menggunakan pustaka.
libssl1.0.0-dbg
berisi simbol debugging. Ini hanya berguna untuk orang-orang yang men-debug pustaka OpenSSL atau program yang menggunakannya. Jawaban andrewsomething memiliki informasi lebih lanjut tentang -dbg
paket - paket ini .
Selain itu, tepatnya berisi versi perpustakaan yang lebih lama libssl0.9.8
,, karena ada program yang masih tertaut dengan versi yang lebih lama.
Paket lain yang mungkin Anda lihat adalah binding untuk bahasa selain C. OpenSSL tidak dikirimkan bersama (ada binding ke OpenSSL untuk bahasa lain, tetapi mereka tidak berasal dari sumber yang sama). Contohnya adalah sqlite3 , yang dikirimkan dengan binding TCL .
Alasan utama untuk memecah paket seperti ini adalah bahwa paket yang berbeda memiliki audiens target yang berbeda. Sebuah sistem di mana tidak ada yang pernah mengkompilasi apa pun hanya membutuhkan lib
paket inti , dan mungkin alat-alat baris perintah; mereka akan diinstal secara otomatis dari dependensi jika diperlukan. Jika seseorang ingin mengkompilasi program yang menggunakan pustaka, mereka membutuhkan -dev
paket. Jika seseorang ingin menulis sebuah program yang menggunakan perpustakaan, mereka memerlukan -doc
paket itu.
Jadi bagaimana dengan Boost? Ini mengikuti struktur yang sama, tetapi karena Boost adalah perpustakaan besar, itu dipecah menjadi banyak paket yang lebih kecil: libboost-*1.46.1
dan libboost-*1.46-dev
. Secara tepat, hanya ada satu versi Boost, 1,46 , tetapi oneiric memiliki keduanya 1,42 dan 1,46 . Ada juga metapackage boost-defaults yang menarik dalam paket versi sebagai ketergantungan.
Melihat libhangul , selain paket perpustakaan dinamis libhangul1
dan paket pengembangan libhangul-dev
, ada paket libhangul-data
. Paket ini berisi data tambahan yang diperlukan oleh perpustakaan. Bahkan jika Anda memiliki beberapa versi perpustakaan, mereka dapat berbagi -data
paket. Juga, paket ini adalah arsitektur-independen. Perangkat lunak yang berisi sejumlah besar data arsitektur-independen dipecah menjadi paket arsitektur-bergantung dan arsitektur-independen, untuk menghemat ruang di situs distribusi. Sufiks lain dengan makna yang serupa adalah -common
.
Aturan pengemasan Ubuntu dan Debian sangat mirip, sehingga materi tentang pembuatan paket Debian juga berlaku untuk Ubuntu. Bahkan, Anda dapat memiliki paket sumber yang sama untuk Debian dan Ubuntu; satu-satunya hal yang membuat paket Debian dan Ubuntu berbeda adalah mengkompilasinya terhadap versi pustaka yang berbeda, dan itu tidak lebih dari perbedaan antara rilis Ubuntu yang berbeda. Siapkan dokumentasi pengembang Debian , khususnya Manual Kebijakan Debian dan Referensi Pengembang ; lihat Panduan Maintainer Baru untuk pengantar. Abaikan bagian tentang bekerja dengan proyek Debian dan sebagainya, cukup baca bagian tentang membuat paket.dh_make
adalah cara yang baik untuk memulai dengan paket deb (Anda ingin memilih "Perpustakaan").