Підвищення - складний приклад, розглянемо спочатку більш простий.
В точному, OpenSSL вихідний пакет містить 5 бінарних пакетів:
libssl1.0.0
містить динамічну бібліотеку OpenSSL, версія 1.0.0. Ось що потрібно запускати програми, пов’язані з цією бібліотекою. Ім'я пакета містить номер версії, тому що у вас можуть бути встановлені інші версії бібліотеки одночасно, якщо у вас є інші програми, пов'язані з іншою версією, яка не сумісна з бінарною версією 1.0.0.
openssl
містить інструменти командного рядка, які використовують бібліотеку OpenSSL. Навіть якщо у вас є кілька версій бібліотеки, вам не потрібні кілька версій цих інструментів: є лише один /usr/bin/openssl
та пов'язані з ними інструменти, дані та документація.
libssl-dev
містить файли, які вам потрібні, якщо ви хочете скласти програму, яка посилається на OpenSSL. Є файли заголовків C ( *.h
), бібліотеки для зв’язування ( *.a
, *.so
) та декілька різноманітних файлів.
libssl-doc
містить документацію для бібліотеки OpenSSL. Цей пакет вам потрібен лише в тому випадку, якщо ви збираєтеся писати програми, які використовують бібліотеку.
libssl1.0.0-dbg
містить символи налагодження. Це корисно лише людям, які налагоджують бібліотеку OpenSSL або програми, які її використовують. andrewsomething відповідь має більше інформації про ці -dbg
пакунки.
Крім того, точно містить старішу версію бібліотеки, libssl0.9.8
, оскільки існують програми, які все ще пов'язані зі старішою версією.
Інші пакунки, які ви можете побачити, є прив’язками для інших мов, ніж C. OpenSSL не постачається з жодною (є прив'язки до OpenSSL для інших мов, але вони не надходять з того самого джерела). Приклад - sqlite3 , який постачається з прив’язками TCL .
Основна причина розбиття пакетів на кшталт цього полягає в тому, що різні пакети мають різну цільову аудиторію. Системі, де ніхто ніколи нічого не збирає, потрібен лише основний lib
пакет, а може бути, і інструменти командного рядка; вони будуть встановлені автоматично від залежностей, якщо потрібно. Якщо хтось хоче скласти програму, яка використовує бібліотеку, їм потрібен -dev
пакет. Якщо хтось хоче написати програму, яка використовує бібліотеку, їм потрібен -doc
пакет.
То що робити з Boost? Він має ту саму структуру, але оскільки Boost - це величезна бібліотека, вона розбита на багато менших пакетів: libboost-*1.46.1
і libboost-*1.46-dev
. Точно є лише одна версія Boost, 1,46 , але в oneiric було і 1,42, і 1,46 . Існує також прискорене налаштування метапакетів яке втягується у пакет, що перетворюється, як залежність.
Дивлячись на libhangul , окрім динамічного пакету бібліотеки libhangul1
та пакета для розробки libhangul-dev
, є пакет libhangul-data
. Цей пакет містить додаткові дані, необхідні бібліотеці. Навіть якщо у вас є кілька версій бібліотеки, вони можуть поділитися -data
пакетом. Також пакет не залежить від архітектури. Програмне забезпечення, що містить велику кількість незалежних від архітектури даних, розділено на незалежні від архітектури та незалежні від архітектури пакети, щоб заощадити місце на сайтах розповсюдження. Ще один суфікс з подібним значенням-common
.
Правила упаковки Ubuntu та Debian дуже схожі, тому матеріал про створення пакетів Debian також стосується Ubuntu. Насправді, ви можете мати один і той же вихідний пакет для Debian і Ubuntu; єдине, що робить пакети Debian і Ubuntu різними - це їх компілювання проти різних версій бібліотеки, і це не більше ніж різниця між різними випусками Ubuntu. Мати документації Debian розробник під рукою, особливо Debian Policy Manual і в Довідник розробника ; див . Посібник з нового технічного обслуговування для ознайомлення. Ігноруйте частини про роботу з проектом Debian і так далі, просто прочитайте частини про створення пакету.dh_make
це хороший спосіб розпочати роботу з дебютним пакетом (вам потрібно вибрати "Бібліотека").