Дважды щелкните установщик в Ubuntu?

Я пытаюсь обновить наш установщик, чтобы пользователь мог просто дважды щелкнуть файл и легко установить все зависимости и наше программное обеспечение. Это набор приложений, которые будут развернуты на чистой установке Ubuntu 8.04. Я исследовал создание файла .deb, но список зависимостей не работает, потому что нет доступа к Интернету. И любой скрипт, который настраивает локальный репозиторий apt, по-прежнему необходимо запускать из командной строки. Есть ли способ поместить файл deb в файл deb?

Я знаю, что многие компании поставляют сценарии оболочки, которые вы должны выполнить chmod +x, а затем выполнить. Это неприемлемо. Смешно, что это невозможно; особенно учитывая фиксированный дистрибутив и архитектуру.


person Matt Green    schedule 28.07.2009    source источник
comment
Так ты говоришь, что уже знаешь, что это невозможно?   -  person Sinan Taifour    schedule 28.07.2009
comment
Я знаю, что это невозможно, учитывая ограниченную информацию, которой я располагаю. Другие компании (например, Adobe) должны поддерживать несколько дистрибутивов, поэтому они используют исполняемые сценарии bash. Хотя они работают во всех дистрибутивах, удобство использования ужасно.   -  person Matt Green    schedule 28.07.2009
comment
Требование chmod +x считается функцией безопасности. Для этого есть интерфейсы с графическим интерфейсом, если это необходимо...   -  person bdonlan    schedule 29.07.2009
comment
Пользователям не нужно знать или заботиться о статусе исполняемого файла конкретного файла.   -  person Matt Green    schedule 29.07.2009


Ответы (3)


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

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

Если вы хотите сделать это с помощью пакетов, вы можете создать компакт-диск, содержащий репозиторий пакетов. В гугле можно найти любую информацию по этому поводу. Для начала попробуйте это - это графический интерфейс для этого. http://aptoncd.sourceforge.net/

person Cascabel    schedule 28.07.2009
comment
Насколько я знаю, приложение распространяется в виде tar-файла. Но пользователям все равно придется извлекать его самостоятельно и запускать скрипт. - person Matt Green; 30.07.2009
comment
Что ж, вы, безусловно, можете использовать этот tar-файл в качестве данных для пакета .deb и использовать сценарий для создания остальной части пакета. - person Cascabel; 30.07.2009

Спустя столько времени я нашел удовлетворительный ответ: самораспаковывающийся исполняемый файл makeself, который запускает сценарий установки, используя судо. Пользователь может либо запустить его из терминала (после его chmod-изменения), либо дважды щелкнуть его и сказать «Выполнить» из подсказки.

person Matt Green    schedule 07.10.2009

можно помещать deb-файлы в deb-файлы. единственное, что вам нужно сделать, это настроить соответствующие сценарии.

.deb-файл состоит из:

  • 1x control.tar.gz: содержит файл «control» (описывает пакет) и дополнительные файлы, такие как «postinst» (скрипт, выполняемый сразу после извлечения). есть и другие файлы, которые вы можете включить, Google должен предоставить информацию о доступных сценариях.

  • 1x data.tar.gz: содержит некоторую структуру корневой файловой системы, которая содержит файлы/папки, которые необходимо (заменить) разместить. кроме того, вы можете настроить поведение в упомянутых сценариях.

  • 1x debian-binary: насколько я помню, это просто номер версии в файле. не знаю точно, что это значит, просто помните, что в большинстве случаев это 2.0

Итак, теперь вы можете поместить свои файлы .deb в пакет данных. они извлекаются вашим скриптом... и устанавливаются с помощью:

# dpkg -i yourpackage1.deb yourpackage2.deb

надеюсь, что это проясняет часть этого. если вам нужны подробности, я могу продолжить исследование, я уже сделал несколько deb-пакетов для себя (скрипты, которые я часто использую и т. д.)

С уважением

person Atmocreations    schedule 28.07.2009
comment
Сценарий после установки не может безопасно рекурсивно вызывать dpkg, поэтому это не сработает. - person bdonlan; 28.07.2009
comment
это нужно делать рекурсивно? что, если у него, например, есть все файлы .deb в папке /tmp архива данных. shell-script den dpkg-i обрабатывает все эти файлы за один шаг... что в этом плохого? - person Atmocreations; 29.07.2009