Чому назви пакунків містять номери версій?


15

Працюючи з Ubuntu та іншими дистрибутивами на базі Debian, я помітив, що пакети в репост програмного забезпечення часто містять основний номер версії.

Наприклад,

  • Apache: apache2
  • Томат: tomcat7
  • PHP: php5
  • Вино: wine1.4
  • MySQL: mysql-server-5.5

Зауважую, однак, що apache1пакету немає, і для інших подібне. Якщо назва пакету змінюється з оновленнями програмного забезпечення, чи не перешкоджає це одна з головних цілей управління пакетами (просте оновлення)?

Якщо завтра з'явиться Apache 3, мені доведеться встановити apache3пакет вручну, якщо я хочу оновити? "

Відповіді:


26

Пакети названі так, як там, де є (або була) потреба полегшити перехід між двома основними версіями пакету, і час, необхідний для цього, очікується довгий. Під час перехідного періоду доступні як нові, так і старі версії з розумінням того, що в майбутній час старіші (і) будуть припинені.

Іноді перехідний період відбувається під час випуску системи, який ви зараз використовуєте. Для деяких пакетів трапляється досить часто, що ви можете розраховувати побачити перехідні версії пакунків у кожному новому випуску системи. Засоби розробки програмного забезпечення часто потрапляють до цієї категорії, оскільки оновлення до нових інструментів за тим самим графіком, що і випуски системи, може бути не практичним. Залежність моєї компанії від конкретних версій GCC, Autoconf та Perl може бути на 5-річному циклі, тоді як моя ОС може бути на трирічному циклі оновлення. Тому мені стає простіше прийняти нові ОС, якщо вони включають мої старіші версії деяких пакетів на додаток до того, що було актуальним на той час, коли нова ОС розроблялася.

Інші часи ці основні зміни версій траплялися давно, в минулому, і тепер усі перебувають на поточній версії. Так є, наприклад, з Apache. Зміни від 1.3 до 2.0 були набагато більшою угодою з точки зору сумісності, ніж будь-яка зміна версії 2.x, тому, коли всі вимкнули 1.3, більше не потрібно було пропонувати декілька версій Apache в межах даного випуску ОС. Але, як тільки ви отримаєте всіх, хто користується apache2пакетом, не дуже хороший аргумент для того, щоб перейменувати його на справедливий apache. Це призведе до зайвих клопотів щодо оновлення. Крім того, там, де раніше існувала потреба в тимчасовому забезпеченні двох паралельних версій, потреба, мабуть, повториться в майбутньому.

Ця практика іменування пакетів зазвичай відбувається лише з бібліотеками або важливими основними пакетами. Що стосується інших периферійних пакетів, то, як очікується, ви просто перейдете до поточного на даний момент.

Бібліотеки частіше трактуються таким чином, ніж додатки, оскільки за своєю природою інші пакети залежать від них. Чим популярніша бібліотека, тим непрактичніше вимагати, щоб кожен інший пакунок залежно від нього був перероблений та повторно пов’язаний з ним, щоб бібліотеку можна було перейти до нової основної версії без цього перехідного періоду.

Часто, коли програма обробляється таким чином, це відбувається тому, що вона містить елемент бібліотеки. Наприклад, Apache - це не просто веб-сервер, він також пропонує API розробки для плагінів. ( mod_fooі таке інше.) Якщо хтось має старе mod_somethingзв’язане з плагіном ABI Apache 1.3 і не оновив його до використання новішого API API, зручно, якщо ваша ОС продовжує пропонувати старий Apache 1.3, поки всі творці плагінів не матимуть шансу оновити свої плагіни.


3

З того, що я бачив, причини цього:

  • Допоможіть міграції в основних випусках пакетів: коли PHP 5 був випущений, можливо, потрібно було встановити PHP 4. Це дозволяє мати вибір між версіями (принаймні, поки застаріла версія не застаріла).

  • Продовжуйте надавати оновлення до старій версії програмного забезпечення (наприклад, після виходу Apache 3, можливо, знадобиться для виправлення Apache 2), не оновлюючи її до нової основної версії.

Наприклад, ядро ​​Linux має (станом на сьогодні) стабільні версії 3.5, 3.4.7, 3.2.24, 2.6.35.13 і т. Д. .... Якщо ви працюєте з 2.6.35 в системі, і ви хочете підтримувати її, на сьогоднішній день, але не оновити це ядро, ви можете встановити відповідний пакет.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.