Рейтинг:5

Как создавать настольные приложения для Ubuntu Software Center?

флаг kr

Я хочу разрабатывать настольные приложения для Ubuntu и размещать их в Ubuntu Software Center.

Я перерыл весь интернет, но не нашел подходящей статьи или блога на эту тему. Я думал об использовании «быстро», но похоже, что этот пакет устарел. Может ли кто-нибудь предложить мне, какую платформу я должен использовать и какие настройки мне нужны? Заранее спасибо.

Рейтинг:6
флаг cn

Для Ubuntu не существует «официальной» платформы разработки или установки.. Используйте то, что лучше всего подходит для вас. Если вы назовете распространенный язык программирования или IDE, кто-то разрабатывает для Linux, используя его. Используйте любую платформу или настройку, которые вам нравятся, хотя вы можете обнаружить, что разработка вашего первого приложения «Hello World» в Ubuntu упрощает тестирование вашего программного обеспечения.

Есть два способа упаковать ваше программное обеспечение и отправить его в репозиторий Ubuntu Software.: пакеты Deb и пакеты Snap. Если вы не уверены, что выбрать, попробуйте оба.

Деб-пакеты используйте стандарт, опубликованный Debian. Он старше и сложнее, чем Snaps, но прост в обслуживании и не имеет никакого вуду черного ящика. Пакеты Debian имеют общие зависимости в системе установки, поэтому пакет необходимо пересобирать для новых выпусков...но сборочные фермы Debian делают эту работу. Вы добавляете свой сборочный код в Debian, и пакеты волшебным образом находят свой путь во всех дистрибутивах на основе Debian, включая будущий выпуск Ubuntu.

Snap-пакеты являются более новыми, кроссплатформенными, в целом более безопасными и имеют более сложную внутреннюю конфигурацию. Snaps включают все зависимости, поэтому, как правило, имеют больший размер пакета. Вы запускаете волшебное приложение Snapcraft, которое выполняет упаковку и загрузку. После того, как ваш Snap будет одобрен Mighty Guardians Of The Snap Store, он сразу же появится в Ubuntu Software. Snap могут быть обновлены (вами) в любое время, и эти обновления не имеют отношения к базовым системным обновлениям (поскольку никакие зависимости не являются общими).

Nate T avatar
флаг it
Я не знал, что пакеты моментальных снимков не были в формате .deb. Хотя это имеет смысл, так как у них есть собственный пакет управления. система. Если бы они знали, что не пойдут по пути dpkg, зачем ограничивать себя, пытаясь разработать чужой формат. Думаю, я должен был знать, учитывая, что Snap доступен для многих дистрибутивов, отличных от Debian; Наверное, я просто никогда не занимался математикой.
Рейтинг:5
флаг it

~Тл;др~

Если ваше приложение принято/добавлено Snap, то есть вы можете ввести:

sudo snap install --options имя_приложения

... для того, чтобы установить ваше приложение, оно будет находиться в «Snap store/Software Center». Это одно и то же.

~Подробно~

Чтобы добавить приложение в центр(ы) программного обеспечения, прежде всего, это должен быть пакет .deb. Чтобы он был правильно установлен в ОС Ubuntu, он должен быть пакетом Debian. Я считаю, что это делается в несколько шагов, первый из которых включает автоинструменты.

Стандарт контролируется GNU. Этот Гид расскажет вам все, что вам нужно знать.

Что касается доставки вашего пакета .deb в «Центр программного обеспечения», ключ в первую очередь заключается в том, чтобы знать, что для последних нескольких версий Ubuntu «Центр программного обеспечения» — это просто прикрытие для хранилища моментальных снимков.Каждое приложение, которое вы загружаете, становится доступным.

Таким образом, информация, которую вам нужно искать, это «как быстро получить мое приложение». Здесь отличный ресурс по этому вопросу.

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

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

Если вы строите с помощью Python, почему бы просто не создать виртуальную среду и не упаковать всю эту чертову штуку? Таким образом, он каждый раз работает на одном и том же интерпретаторе. То же самое с Java и JVM, C/C++ и GCC и т. д.

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

Честно говоря, то, что находится внутри пакета, стандартизировано (вам потребуется определенный тип лицензии с открытым исходным кодом и т. д.), но все, что касается системы Debian, — это интерфейс. Dpkg должен знать, что происходит во время установки. Пока ему даются четкие и понятные инструкции, чтобы он знал, куда что поместить, а результатом является система приложений, которые ведут себя так, как ожидает пользователь, у вас есть действительный пакет .deb.

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

РЕДАКТИРОВАТЬ

Недавно я нашел пару ресурсов на Github, которые автоматизируют процессы сборки и публикации снимков. Оба они являются действиями github, поддерживаемыми Snapcraft. Благодаря их комбинации любое совместимое приложение можно превратить в опубликованную оснастку.

Они расположены здесь (Snap Builder) и здесь (привязка издателя).

Mj Dev avatar
флаг kr
Я обязательно постараюсь вернуться. Спасибо
Mj Dev avatar
флаг kr
Это действительно работает как шарм. Спасибо, сэр.
Рейтинг:0
флаг in

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

Mj Dev avatar
флаг kr
На самом деле я уже пробовал это, но позвольте мне попробовать еще раз. Спасибо

Ответить или комментировать

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