Хобрук: Ваш путь к мастерству в программировании

Установка пакета Python с помощью службы Upstart с помощью setuputils

Я пытаюсь создать пакет Python, который при установке также создает службу выскочки. В настоящее время мои варианты включают символическую ссылку на службу из каталога пакета в /etc/init или копирование файла в /etc/init. Любой из них работает нормально, пока я могу отключить/удалить файл при удалении пакета. Я видел еще один связанный вопрос, в котором комментатор сказал, что это не должно быть работой setuputils в первую очередь. Итак, мой вопрос заключается в следующем:

Должен ли setuputils отвечать за создание службы на машине, или, скорее, должен ли этим заниматься внешний менеджер пакетов, такой как dpkg/apt/rpm; если это разумно, есть ли способ как-то запустить скрипт при удалении пакета или заставить setuputils удалить файл из /etc/init без изменения SOURCES.txt в яйце после запуска sdist?

Спасибо!


Ответы:


1

Должен ли setuputils нести ответственность за создание службы на машине, или, скорее, это должен делать внешний менеджер пакетов, такой как dpkg/apt/rpm

Почти наверняка последнее.

distutils/setuptools не предназначен для таких вещей.

Есть некоторая информация о конфигурации, которой достаточно для установки пакетов сайта, общих данных, исполняемых файлов и, возможно, нескольких других вещей способами, которые имеют смысл на ваших платформах. Но этого недостаточно, чтобы справиться с такими вещами, как установка сценариев инициализации.

Эти инструменты предназначены для работы не только с немного отличающимися дистрибутивами Linux, похожими на Ubuntu начала 2010-х годов, но и с широким спектром различных платформ. В не-Ubuntu-подобных дистрибутивах (и до lucid Ubuntu) нет Upstart, но есть init в стиле SysV. На некоторых других *nix нет даже init в стиле SysV, но есть init в стиле BSD. В OS X, хотя init в стиле SysV существует, он сильно устарел, и вместо него используется launchd. В Windows нет ничего даже отдаленно похожего, но есть совершенно разные способы настройки «служб» и «запускаемых при запуске» программ и связанных с ними концепций.

Вдобавок ко всему, на многих платформах менеджер пакетов хочет иметь возможность владеть всеми сценариями запуска, и вы не хотите нарушать это ожидание от имени пользователя/системного администратора, если он специально не попросит об этом.

Итак, вам нужен пакет для каждой платформы. Если вы просто создадите пакет PyPI и .deb для Ubuntu Precise или чего-то еще, что вы используете, если какой-нибудь пользователь Fedora, Mac или Ubuntu Natty завидует, они либо сделают это сами, либо попросят вас.

19.12.2013
Новые материалы

Решения DBA Metrix
DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

Начало работы с Блум
Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

Создание кнопочного меню с использованием HTML, CSS и JavaScript
Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

Внедрите OAuth в свои веб-приложения для повышения безопасности
OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

Классы в JavaScript
class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

Как свинг-трейдеры могут использовать ИИ для больших выигрышей
По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

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