Створіть депозитарій деб з кількома версіями одного пакета


16

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

Можливість зберігання декількох версій одного пакету для мене важлива, тому я запитую, яке програмне забезпечення може це зробити.

Ось фрагмент FAQ про репро, який показує, що він не може цього зробити:

3.1) Can I have two versions of a package in the same distribution?
-------------------------------------------------------------------
Sorry, this is not possible right now, as reprepro heavily optimizes
at only having one version of a package in a suite-type-component-architecture
quadruple.
You can have different versions in different architectures and/or components
within the same suite. (Even different versions of a architecture all package
in different architectures of the same suite). But within the same
architecture and the same component of a distribution it is not possible.

Відповіді:


11

Наскільки я розумію, mini-dinstall вимагає файлів .changes debian при додаванні пакетів. Оскільки у мене були лише файли .deb, я виявив, що влучно підтримується також декілька версій.

Інший більш легкий варіант - фрахт, який представляє собою набір сценаріїв оболонок для підтримки сховища debian. Я зараз (2017) використовую вантажі вже три роки для підтримки невеликого, але активно оновленого сховища, з хорошими результатами. Однією з ключових особливостей була можливість зберігати кілька версій пакета.

Редагувати: оновлено посилання на нове вантажне репо, оскільки попереднє не оновлювалось з 2014 року.


1
Downvoter: дбайливо розробити?
богракс

1
Зауважте, що freightвін роздвоєний і зараз підтримується на сайті github.com/freight-team/freight - оригінальна версія не оновлювалася з 2014 року.
Вольфганг

@WolfgangThanks, оновив посилання у відповіді!
богракс

9

Рішення полягає у використанні міні-dinstall для управління репортажем. Він не видаляє попередню версію пакета зі сховища.


2
Це, мабуть, відповідає дійсності лише в тому випадку, якщо в mini-dinstall.conf встановлено "Keep_old = 1". За замовчуванням (відповідно до сторінки "man" та недавнього досвіду) є видалення старих версій. Тестовано з версією 0.6.29ubuntu1.
pendor

2

Я чув хороші речі про альтернативну фрахт:

https://github.com/rcrowley/freight

HTH, містиг


Не впевнений, чому цю відповідь було оскаржено, якщо тільки не через її недостатню деталізацію. Вантаж справді виглядає життєздатною альтернативою репресу, який я маю намір випробувати, оскільки у мене є така ж потреба, як і в ОП
killthrush

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

1
@bohrax: Схоже, freightвін був роздвоєним і тепер підтримується на сайті github.com/freight-team/freight .
Вольфганг

-1

Якщо ви готові написати файл пакунків самостійно (наприклад, за допомогою спеціального сценарію), ви можете помістити туди кілька версій одного пакета, і apt-get дозволить встановити конкретну версію з синтаксисом

apt-get install packagename=version

Ви можете отримати всю інформацію, необхідну для написання цього пакету

dpkg-deb --info package.deb

і

md5sum package.deb

apt-get upgrade також вибере найвищий номер версії (як мінімум, у моєму обмеженому тестуванні).


Дякую за відповідь, але я вважаю за краще використовувати деяку систему, яка буде генерувати файл пакунків.
bessarabov

Це не дає відповіді на питання про створення сховища пакетів з кількома версіями одного пакета. Це відповідь на інше питання.
gertvdijk

-2

Як повідомляє програмне забезпечення, старіші очищаються, коли надходить новий. Зазвичай це робиться за допомогою декількох репостів. Як і у Ubuntu та Debian є кілька репостів для стабільних і нестабільних або Natty, Oneiric,…, вам потрібно буде мати кілька репостів.

Зазвичай менеджери пакунків вибирають найновішу версію пакету, тому користувачам було б важко також вибрати.


1
Створення декількох репостів не вирішує мою проблему. Мені потрібно кілька версій одного пакета, щоб бути в одному репо. Для тих, хто цікавиться, навіщо мені це потрібно, тут тема з моїм поясненням: answer.launchpad.net/launchpad/+question/171452
bessarabov

Я побоююся, що вам доведеться дивитися на свою проблему з іншого кута, оскільки звичайні репони Debian не підтримують декілька версій.
Мартін Удінг

2
Ви не праві. Будь ласка, перегляньте регулярні debian repo ftp.us.debian.org/debian/pool/main/p/perl і переконайтесь, що є кілька версій одного пакету для одного архіву.
bessarabov
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.