Как распространять приложения Python GTK?

Это связано с предыдущим вопросом, который я задал здесь . Моя цель - создать и упаковать приложение для легкой установки в Ubuntu и других дистрибутивах Debian. Я понимаю, что лучший способ сделать это - создать файл .deb, с помощью которого пользователи могут легко установить мое приложение в своей системе.

Однако я также хотел бы убедиться, что мое приложение доступно на нескольких языках. Вот почему я поднял вопрос, перед которым вы можете прочитать здесь . В ответах, которые были предоставлены, меня попросили использовать disutils для моей упаковки. Я, однако, упускаю большую картину здесь.

Почему при распространении приложения в формате .deb необходимо включать файл setup.py?

Моя цель - обеспечить, чтобы пользователям не нужно было выполнять [ 110], чтобы установить мое приложение, а просто нажмите на файл .deb. Я уже знаю, как создать файл deb из превосходного учебника, доступного здесь здесь . В нем четко показано, как редактировать правила, журнал изменений и все необходимое для создания чистого файла deb.

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

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

4
задан 13 April 2017 в 15:24

2 ответа

На самом деле вам не нужно использовать систему сборки для упаковки вашего приложения.

Однако отказ от использования системы сборки будет означать, что вам придется писать все функции, которые система сборки предоставляет «бесплатно» с нуля. Мало того, что это будет больше работы для вас, но вы будете самостоятельно. То есть гораздо лучше полагаться на проверенные инструменты, которые хорошо поддерживаются активным сообществом, чем запускать и поддерживать сценарии сборки и установки, если вы не очень хорошо знаете, что делаете, и намеренно не хотите использовать систему сборки. 114]

Система сборки также будет перемещать большую часть логики для выполнения сборки и установки самой системы, а не на упаковку. В результате получается более чистый и простой файл debian/rules, который будет намного легче поддерживать.

Теперь для вашего Python-приложения мы не просили использовать систему сборки для вашего другого вопроса, но мы рекомендовали это. И это были distutils / distutils-extra, поскольку они являются наиболее распространенными и имеют лучшую поддержку Python. Есть и другие, такие как автоинструменты, но их, как правило, сложнее настроить для программного обеспечения Python.

Обратите внимание, что это не так, или / или. Вот откуда может возникнуть путаница. Система сборки и упаковки дополняют друг друга. Упаковка использует систему сборки для создания пакета. Так что это не так, добавив, например, Файл setup.py заставит ваших пользователей использовать его. Скорее наоборот, вы упростите создание пакета .deb из своего приложения, которое пользователи могут установить, просто щелкнув по нему.

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

0
ответ дан 13 April 2017 в 15:24

Вы хотите, чтобы ваше приложение было доступно только в виде пакета .deb? А как насчет людей, использующих другие дистрибутивы Linux (Fedora, Gentoo) или даже Windows?

Философия упаковки Debian позволяет упаковывать и распространять программное обеспечение на .debs, сохраняя при этом «чистый» источник, который можно использовать с другими методы распространения (даже люди, загружающие tar.gz и выполняющие python setup.py. Многие инструменты упаковки Debian предполагают (и лучше всего работают с) исходное дерево, которое придерживается стандартных способов сборки, будь то ./configure; make; make install, python setup.py , perl Makefile.PL; make install, или что нет.

Для этого инструменты упаковки Debian много знают о (и работают в сочетании с) построении фреймворков из других языков. И если вы их используете, вы получите много вещи бесплатно. Одним из примеров является материал i18n, о котором вы упоминали в предыдущем вопросе; если вы делаете это с помощью Python / setup.py, ваш пакет Debian подхватит его почти автоматически. Если у вас есть источник, который использует ./configure и придерживается стандартов GNU, упаковывать его действительно легко.

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

0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: