Расширение приложения Ubuntu Software Center

Я хочу подать заявку в Ubuntu Software Center. Поэтому я хотел знать тип файлов, которые могут быть упакованы в пакет. Также хотелось узнать, из каких языков сделаны приложения, опубликованные в Центре программного обеспечения Ubuntu?

Я пытаюсь использовать Windows 7 и Qt IDE для разработки приложений для Центра приложений Ubuntu. Возможно ли это, т.е. если я разработаю приложение на платформе Windows 7, будут ли они работать в Ubuntu? или я должен использовать только Ubuntu?

1
задан 15 August 2013 в 10:50

1 ответ

и делает - запускает программы, написанные на Objective C, Ruby, Tcl, Lua, Visual Basic .NET, D, Fortran, Golang, Ada, sh, JavaScript, PHP, Haskell, Lisp, Scheme, F # и многих других. Вы можете написать свою программу - или любые ее части - на ассемблере некоторой архитектуры, если хотите.

В частности, поскольку вы используете Qt: приложение с интерфейсом, написанным на QML (для Qt Declarative), может быть написано для Ubuntu, Windows и многих других платформ. (Но вам не нужно разрабатывать свои пользовательские интерфейсы декларативно, чтобы они были мультиплатформенными.)

Можно ли использовать Qt Creator в Windows для разработки приложений для Ubuntu?

Да. Вы можете использовать Qt Creator и другие подобные инструменты проектирования в Windows для создания приложений Ubuntu. Qt Creator также существует в Ubuntu, где он полностью поддерживается. (Возможно, вы захотите скачать его с того же сайта, где вы его получили для Windows, если вы хотите использовать самую последнюю версию. В противном случае просто установите пакет qtcreator.)

Написание кода и создание графического Интерфейсы для кроссплатформенных приложений Qt довольно просты в Windows. (Это также довольно просто в Ubuntu и ряде других ОС.)

Компиляция программ

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

Если вы решили, что хотите попробовать кросс-компиляцию, вы можете установить или собрать кросс-компилятор в Cygwin и другими способами. (Обратите внимание, что компилятор Cygwin не не создает исполняемые файлы Linux по умолчанию, а Cygwin не будет запускать исполняемые файлы GNU / Linux .)

Как на самом деле собрать свой кросс-компилятор который работает в Windows и производит исполняемые файлы для GNU / Linux - это отдельная тема, выходящая за рамки этого ответа (возможно, не по теме даже для Ask Ubuntu). Но это может помочь .

Чтобы протестировать свое программное обеспечение для Ubuntu, вам действительно нужен Ubuntu (как упомянул Nanne ). Так что у вас должна быть система Ubuntu. Это может быть виртуальная машина. Вы можете использовать VirtualBox в Windows; VMware также доступен, хотя, если вы используете бесплатный продукт VMware, вы должны тщательно проверить условия лицензии, чтобы убедиться, что вы можете использовать его для коммерческого использования (при условии, что вы рассматриваете возможность разработки программного обеспечения). деятельность должна быть коммерческой).

Я предполагаю, что вы намерены разработать кроссплатформенное программное обеспечение с версиями для разных платформ. В частности, я предполагаю, что вы создаете версию для Windows и другую для Ubuntu (и, возможно, другие для других платформ).

Когда вы разрабатываете для нескольких платформ, имеет смысл выбрать одну платформу для большинства ваших разработок. Однако, если вы намереваетесь разрабатывать программы, которые просто работают в Ubuntu, то, вероятно, не так много преимуществ, связанных с разработкой на некоторых других ОС, таких как Windows.

«Если я разработаю приложение на платформе Windows 7, будут ли они работать в Ubuntu?»

Вы можете разрабатывать приложения для Windows 7 и запускать их в Ubuntu. Приложения, разработанные вами в Windows, не будут автоматически работать в Ubuntu.

Они не будут автоматически работать и в Windows - у всех нас есть опыт написания кода, который не работает по той или иной причине. Тем не менее, важными моментами здесь являются:

1. Исполняемый файл, работающий в Windows, не запускается в Ubuntu.

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

Возможно, вы сможете запустить один и тот же исполняемый файл в Fedora и Ubuntu, а может быть, даже во FreeBSD и Ubuntu (поскольку FreeBSD может запускать программы GNU / Linux большую часть времени), но вам не следует пытаться сделать один и тот же исполняемый файл запускать в Windows и Ubuntu, если вы компилируете свои программы в собственный код для реального физического оборудования.

Что я имею в виду под «нативным кодом для реального физического оборудования»? Хорошо, если вы создадите программу для Java Virtual Machine (которая включает в себя практически любую программу, написанную на Java ), или .NET Common Language Во время выполнения (которое включает в себя почти любую программу, написанную на C # или другом .NET языке ), тогда ваш исполняемый файл фактически состоит из байт-кода , который является специфическим для JavaVM или CLR, а не к базовому компьютеру и операционной системе, работающей на нем. Поэтому для программ на Java и .NET вы обычно можете создать один исполняемый файл, который будет работать как в Windows, так и в Ubuntu.

Аналогично, если вы пишете свою программу на интерпретируемом языке, таком как Python, то вы можете создать код, который будет работать как в Ubuntu, так и в Windows (при условии, что интерпретатор установлен). На практике большую часть времени приложение Windows будет включать в себя необходимый интерпретатор, а приложение Ubuntu будет объявлять зависимость от пакетов, предоставляющих интерпретатор. Поэтому на практике программы для Windows и Ubuntu, написанные на интерпретируемых языках, обычно готовятся отдельно для каждой платформы.

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

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

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

Наконец, некоторые концепции и ресурсы упаковки.

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

При распространении программного обеспечения для Ubuntu в исполняемом виде рекомендуется и рекомендуется распространять .deb файлы пакетов. (Если вы просто распространяете исходный код, который ваши пользователи должны скомпилировать , то вы можете поместить его в пакет .deb, но обычно нет веских причин для этого) так.)

.deb в Ubuntu (и некоторых других операционных системах, таких как Debian ) похож на .msi в Windows или .pkg в OS X ОС, в которых используются пакеты .deb, содержит инструмент под названием dpkg , который используется для извлечения, установки, удаления и отслеживания установленных пакетов.

dpkg может быть запущен вручную пользователем . Но чаще всего это не так, потому что на нем построена целая инфраструктура для дальнейшей автоматизации установки, удаления, и обновление программного обеспечения. APT облегчает автоматическую загрузку .deb пакетов через Интернет. Существует ряд других программ и служб, которые работают с APT и вместе с ним, чтобы обеспечить дополнительные функции управления пакетами в Ubuntu. Двумя часто используемыми утилитами являются Software Updater (называемый в предыдущих версиях Ubuntu диспетчером обновлений) и Software Center.

Центр программного обеспечения предоставляет удобный для пользователя способ поиска пакетов. Также предусмотрена система покупки платного программного обеспечения. Одним из способов распространения платных или бесплатных приложений среди пользователей Ubuntu является использование этой системы ( этот сайт объясняет, как , см. раздел о публикации ).

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

  • You может отправить его непосредственно в Центр программного обеспечения . Это будет рассмотрено ; это может быть отклонено, но большинство работающего программного обеспечения принято. Если вы хотите брать деньги за свое программное обеспечение и хотите, чтобы пользователи могли его купить в Центре программного обеспечения , то вам следует это сделать. Если вы не хотите брать деньги, вы можете сделать это.

  • Вы можете распространять свое программное обеспечение с Launchpad PPA . Если это бесплатное программное обеспечение с открытым исходным кодом, вам не нужно ничего платить за это, и ваше программное обеспечение не подлежит проверке. Он появится в результатах поиска в Центре программного обеспечения, но пользователи Ubuntu могут легко установить его, и он будет обновляться вместе с другим программным обеспечением в их системе (при создании обновлений для него).

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

  • Вы можете создавать свои собственные .deb файлы пакетов и распространять их самостоятельно. Тогда ваша программа не подлежит проверке и может быть проприетарной, и вы можете даже взимать плату за нее. Это все равно, что распространять что-то еще самостоятельно. Как правило, это не подразумевает каких-либо договорных отношений между вами и кем-либо, кроме ваших пользователей / клиентов и вашего хостинг-провайдера. (Конечно, вы все равно должны следовать лицензиям любого используемого вами программного обеспечения, и вы можете легально включать программное обеспечение в свою программу, чья лицензия позволяет это. Кстати, Я не являюсь неспециалистом, и это не юридическая консультация. )

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

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

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

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

  • Иногда пакет может быть отправлен для включения в Ubuntu, даже если он не был в Debian. См. Руководство по упаковке Ubuntu .

    Поскольку Ubuntu Packaging Guide предоставляет обширную информацию, касающуюся практически любого метода распространения программного обеспечения, среди пользователей Ubuntu, Я настоятельно рекомендую взглянуть на него независимо от того, как вы планируете распространять свое программное обеспечение.

  • Вы можете создать свой собственный двоичный установщик для своей программы, наподобие .exe установщиков в Windows. Это несколько обескураживает (хотя все еще популярно и эффективно) в Windows, и только редко ваш лучший вариант в Ubuntu. Но это вариант, и есть очень успешное программное обеспечение (например, MATLAB), которое «упаковано» таким образом для систем GNU / Linux.

0
ответ дан 15 August 2013 в 10:50

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

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