Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > распространение готового qt4 приложения


Автор: vinnitu 29.11.2009, 15:22
Как лучше всего распространять приложение написаное на qt4?

msi?
nullsoft?

zip?

может есть какой интрегратор для creator'a?

Автор: djamshud 29.11.2009, 15:28
Windows - инсталятор next-next-ok
*nix - tgz с исходниками и скриптами сборки (qmake. cmake. autotools).

Автор: vinnitu 29.11.2009, 15:49
Цитата(djamshud @ 29.11.2009,  15:28)
Windows - инсталятор next-next-ok

это что ещё за инсталятор?

Автор: andrew_121 29.11.2009, 15:56
в исходниках smile 

Автор: sergey_85 29.11.2009, 17:57
есть кросплатформенные инсталяторы, но они стоят $

Автор: nerezus 29.11.2009, 18:15
Для винды любой инсталлятор next-next-ok(есть фришные), или 7-zip, еслт надо проще.

Для никсы бы просто бинари статически линкованные в архиве. Ну и пакеты под ппулярные дистры.

Автор: djamshud 29.11.2009, 19:46
>Для никсы бы просто бинари статически линкованные в архиве. Ну и пакеты под ппулярные дистры. 

Не юникс-вей:). Котом в мешке никто пользоваться не станет, если это только не бинарь какой-нибудь уважаемой энтерпрайзной корпорации. Фанатики впрочем закрытой поделкой в любом случае пользоваться не станут). Я почти уверен, что ваша поделка не содержит в исходниках ничего такого, что можно было бы захотеть спрятать, если это так, смело распространяйте в исходниках.

Добавлено через 49 секунд
"поделка" - в самом безобидном смысле.

Автор: andrew_121 29.11.2009, 19:50
Цитата(nerezus @  29.11.2009,  18:15 Найти цитируемый пост)
Для никсы бы просто бинари статически линкованные

Бинари - плохо. Но еще статически линкованные - ваще зло!

vinnitu, Хоть расскажите, что программа выполняет?

Автор: quarz 30.11.2009, 03:56
Nullsoft очень мощный и удобный инсталлятор. Огромный функционал, работал с ним под виндой. Идет нормально под Vista-Win7, вроде даже кроссплатформ но сам не пробовал. Дли никса ничего лучше tgz или rpm нет =)

Автор: Любитель 30.11.2009, 04:18
Цитата(nerezus @  29.11.2009,  18:15 Найти цитируемый пост)
статически линкованные в архиве

Почему статически?!

Автор: chaos 30.11.2009, 08:13
офтоп
Цитата(djamshud @  29.11.2009,  16:46 Найти цитируемый пост)
Котом в мешке никто пользоваться не станет

а часто ли Вы в исходники заглядыаете?

Автор: unicuum 30.11.2009, 10:48
Цитата(Любитель @  30.11.2009,  04:18 Найти цитируемый пост)

Цитата(nerezus @  29.11.2009 @   18:15 )

статически линкованные в архиве


Почему статически?! 

Кстати да, в windows понятное дело, статическая линковка лучше всего, если программа не использует возможности динамических библиотек. Иными словами, если это не какое-то пакетное решение со множеством программ завязанных на одни и те же библиотеки (в нашем случае Qt). Но ведь существует ещё линукс и там Qt как правило есть, или его легко доустановить. Тем не менее вопрос целесообразности статической линковки для линукса остаётся.,

Добавлено через 2 минуты и 37 секунд
Цитата(chaos @  30.11.2009,  08:13 Найти цитируемый пост)
а часто ли Вы в исходники заглядыаете?

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

Автор: djamshud 30.11.2009, 11:12
>а часто ли Вы в исходники заглядыаете?

Никогда. И никто из пользователей не заглядывает, если это какая-то десктопная софтинка. Но это психология: закрыто - опасно. У фанатиков возведена в культ.

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

Автор: quarz 30.11.2009, 13:43
Цитата(andrew_121 @  29.11.2009,  19:50 Найти цитируемый пост)
vinnitu, Хоть расскажите, что программа выполняет? 


Вопрос по существу к автору темы!
И еще расскажите, какие требования к инсталлятору: нужен ли uninstal, работа с UIC в Vista/7, записи в реестр, проверка и установка зависимостей (фреймворки, типа .netFramework и vcredist)

Автор: _GRIN_ 30.11.2009, 17:02
Сразу оговорюсь, в текущий момент пишу программу под Linux.
Коммерческие инсталяторы дороги, приходится делать самому.

Вариант 1 (уже реализованный):
bash-скрипт, запускается из-под рута (т.к. необходимы некоторые рутовские настройки в системе).
Скрипт создаёт необходимые директории и дерево файлов для программы. По мере выполнения задаёт пользователю различные уточняющие вопросы, т.к. существует несколько конфигураций программы. .. и т.д.
Также делает бэкап оригинальной настроки системы, и сохраняет его по определённому пути. При удалении (uninstaller-скрипт) данныце настройки возвращаются.
Вариан 2 (в проекте, как освободится время сделаю): - по сути надстройка над скриптом, реализующая его функционал, но более дружелюбная к пользователю, в плане диалогов об уточнении конфигурации.

Имхо:
По сути любая установка это копирование + определённая настройка системы.
Полагаю, для кроссплатформенности нужен второй вариант, который для каждой системы делает необходимое, через Qt и АPI системы (система определяется через соответствующие #ifdef-ы) необходимые вещи.
Не вижу смысла тратиться на коммерческие инсталяторы, т.к. большинство их функционала не востребованно, а реализация того, что необходимо занимает максимум день (при условии, что вы чётко представляете, что надо, что бы ваша программа работала).
Если ваш день стоит дороже коммерческого инсталятора, или его купят не за ваш счёт, или не хватает знаний, а разбираться некогда|лень, то в данном случае действительно можно купить коммерческий.



Автор: nerezus 30.11.2009, 17:10
Цитата

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

Цитата

Я почти уверен, что ваша поделка не содержит в исходниках ничего такого, что можно было бы захотеть спрятать
 Почему сразу поделка?) Я писал софт, который стоит дорого, но под конкретного заказчика. Если же писать под паблик - то опенсорсность убьет прибыль, т.к. программу смогут просто передать остальным, которые за нее не заплатят.
Это из опыта. Схема "платить за поддержку" работать не будет - покупатели - не из энтерпрайза ;)

Автор: bsa 30.11.2009, 17:21
nerezus, и закрытые программы тоже взламывают... Вопрос только в том, скольки человекам она нужна. Если прога нужна 100 товарищам в мире, то никто ее ломать не будет. А если она полюбится миллиону, то тут же будет взломана. Имхо, единственный способ получать прибыль с ПО - или писать под конкретного заказчика, или добавлять "сетевые" свойства, когда без доступа к серверу программа никакой пользы приносить не может (например, MMORPG). В первом случае необходимость открытости проекта согласуется с заказчиком, а во втором - никакого смысла делать закрытую программу нет, так как все равно без вашего сервера ее использовать нельзя будет. Другой вопрос, что можно путем анализа исходников сделать свой сервер... Но это гораздо сложнее и затратнее, чем keygen с музыкой, поэтому за "просто так" его делать никто не будет (пионэры не в счет).  smile 

Автор: djamshud 30.11.2009, 17:28
Я же поправился:
>Добавлено через 49 секунд
>"поделка" - в самом безобидном смысле. 

>Я сомневаюсь, что никсамипользуются только параноики.

Дело даже не в параноиках, или как я называл их выше фанатиках. Если, как вы говорите, это не энтерпрайз, а денюшку получить хотите, в репозитории дистрибутивов вы не попадете, но туда уже скорее всего попали бесплатные (и наверное открытые) аналоги. Более или менее функциональные - не важно. И теперь скажите, зачем человеку перелопачивать тысячи варе^W сайтов в поиске программы, когда у него есть замечательнейший пакетный менеджер, который сам ему все найдет, скачет и установит?

Автор: unicuum 30.11.2009, 18:19
Цитата(_GRIN_ @  30.11.2009,  17:02 Найти цитируемый пост)
Полагаю, для кроссплатформенности нужен второй вариант, который для каждой системы делает необходимое, через Qt и АPI системы (система определяется через соответствующие #ifdef-ы) необходимые вещи.

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

Автор: djamshud 30.11.2009, 19:28
>И хотя линукс содержит множество библиотек, а программы там в одну кучу запихивают, лично я не вижу причин так делать для своей собственной программы. Настройки записывать в файл в папку с программой и не мучить реестры и тому подобные абсолютно бесполезные вещи.

Программы тут в кучу куч запихивают. И у каждой кучи есть назначение. Реестров и тому подобных абсолютно бесполезных вещей в линуксе тоже нет. Вы его только на картинках чтоли видели? Тогда зачем говорите со знанием дела?

Лично я не вижу причин пользоваться программой, чтобы запустить которую, нужно лазить по всяким каталогам. Есть де-факто правила, по которым устанавливается софт: бинари в одну из куч для бинарей, библиотеки - в одну из куч библиотек, общие/умолчательные конфиги в /etc, локальные конфиги для отдельно взятого пользователя сохраняются в $HOME или $HOME/.config. Что-то напутали в конфигурации приложения - снесли локальный конфиг, программа его пересоздаст дефолтным. И никаких поисков сотен ключей в реестрах и тому подобных абсолютно бесполезных вещах.

Автор: nerezus 30.11.2009, 19:34
Цитата

Если прога нужна 100 товарищам в мире, то никто ее ломать не будет.
 Будет, если нужна и 10.
Ибо даже заказывать пытались такое взломать )

Поэтому хороший способ защиты - чтобы купить было дешевле, чем взломать.

Цитата

а денюшку получить хотите, в репозитории дистрибутивов вы не попадете
 Софт нужен лишь десяткам. Узкоспециализирован. Так что в репы мне не надо =)

Автор: djamshud 30.11.2009, 19:38
>Софт нужен лишь десяткам. Узкоспециализирован. Так что в репы мне не надо =) 

Попахивает таки энтерпрайзом:).

Автор: BobiKK 30.11.2009, 20:58
Имхо, репы для специализированного софта это, наверное, перебор. А вот отдельные .deb и .rpm - это гут. Так распространяются, скажем, Zend'овские решения, адобовский флэш. Удобно работать с системой только через aptitude и не париться с 10-ком разных инсталяторов.

Автор: vinnitu 2.12.2009, 22:21
Цитата(andrew_121 @ 29.11.2009,  19:50)
Цитата(nerezus @  29.11.2009,  18:15 Найти цитируемый пост)
Для никсы бы просто бинари статически линкованные

Бинари - плохо. Но еще статически линкованные - ваще зло!

vinnitu, Хоть расскажите, что программа выполняет?

на самом деле неважно ЧТО программа выполняет, важно как пользователь её воспринимает, т.е. установка должна быть шаблонна

имеются ввиду банальные вещи

1) установка под пользователя (т.е. заходил админ поставить для всех - это одно, поставил юзер - чисто для себя)
2) создание иконки на рабочем столе, прописывание в меню
3) добавление в автозапуск по требованию
4) удаление штатным образом


для меня как разработчика
5) определение зависимостей (crt  и всякой другой мутоты)
6) докачка необходимым составляющих в процессе установки
7) возможность апдейта


Автор: Любитель 2.12.2009, 22:49
Таааак. Давайте не отвлекаться на вопросы распространения ПО. Как лучше пекеджить Qt-шные приложения - ок. Но кто там будет ломать, кто не будет и хороша или нет струтура ФС в никсах - это не в тему smile

Автор: quarz 3.12.2009, 17:43
vinnitu, могу сказать что на NSIS это все реализуемо. Вот ссылки по теме:
http://ru.wikipedia.org/wiki/NSIS - общая инфа об NSIS на русском
http://nsis.sourceforge.net/Main_Page - страница проекта
http://nsis.sourceforge.net/Docs/Contents.html
http://nsis.sourceforge.net/Docs/Modern%20UI%202/Readme.html - доки
http://hmne.sourceforge.net/ - рекомендую этот редактор. Подсветка, подсказки, есть визуальный редактор кастомных страниц

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)