Должен ли 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