Разумно ли использовать пакеты Debian (.deb) для распространения нашего программного обеспечения на рабочие серверы?

У нас есть различные программы и сценарии, которые мы создаем, и которые нам нужно развернуть на рабочих серверах Ubuntu после тестирования. Мы рассматриваем возможность упаковки нашего программного обеспечения в виде файлов Debian (.deb) и использования чего-то вроде apt-get или aptitude для установки программного обеспечения.

Это просто, но мне непонятно, как можно откатить или удалить новые версии, которые оказались нежелательными. Очевидный выбор — apt-get remove new-pkg, за которым следует apt-get install old-pkg, но правильный ли это подход?

Существуют ли специальные правила, которым нужно следовать (или чего следует избегать) в postinst, prerm или postrm, чтобы все прошло гладко?

Обратите внимание, что все наше программное обеспечение и серверы являются частными, и у нас есть полный контроль над всем, если это поможет.


person Randall Cook    schedule 02.11.2011    source источник
comment
Все серверы Ubuntu в этой группе служат одной и той же цели или им нужно запускать разные наборы программ?   -  person Matthew Flaschen    schedule 02.11.2011
comment
Одни серверы выполняют одну задачу, другие — другие. Все под нашим контролем. Мы ищем согласованную схему развертывания, которая работает для всего нашего программного обеспечения, независимо от его назначения.   -  person Randall Cook    schedule 02.11.2011


Ответы (2)


В схеме Debian автоматический переход на более раннюю версию обычно не рассматривается. Предпочтительным способом будет новый и более высокий номер версии для фиксированной сборки (даже если «исправлено» означает «все новые функции удалены»).

Если вам абсолютно необходимо откатить обновление, вы можете рассмотреть возможность использования номера эпохи Debian, чтобы объявить новое начало в номерах версий, начиная с версии для отката. Например, предположим, что версия 1.2 пакета сломана, и вам нужно в спешке перейти на версию 1.1, затем вы переустанавливаете версию пакета debian 1.1-5 как 1:1.1-6, что является более высоким номером версии, чем обычный 1.2-1.

Ручной даунгрейд определенно кажется нежелательным, вы наверняка пропустите хотя бы один критический сервер хотя бы при одном даунгрейде.

Для postinst, prerm и postrm обратитесь к Руководству нового сопровождающего Debian.

person thiton    schedule 02.11.2011
comment
Ну, я бы хотел, чтобы был общеизвестный метод отката, но спасибо за ваш вклад. - person Randall Cook; 03.11.2011
comment
Сталкиваться с эпохой для понижения рейтинга — очень плохая идея. После того, как эпоха перешагнула, пути назад уже не будет. Обычное решение — использовать 1.2+really1.1-1. По крайней мере, это только временно. - person tumbleweed; 11.01.2012

И apt-get, и aptitude позволяют указать желаемую установленную версию:

apt-get install <your-package>=<your-version>
aptitude install <your-package>=<your-version>

В любом случае было бы целесообразно использовать это в процессе развертывания, чтобы указать, какая именно версия развертывается на серверах.

Для отката к предыдущей версии достаточно просто указать номер предыдущей версии. Конечно, если имеет смысл решить проблему новой версией, то делайте это, а не откатывайтесь.

person EBCDIC    schedule 22.11.2011