Как подать заявку Linux (все в одном fille) установщик?

Можно автоматизировать задания крона с crontab -e. С тех пор crontab -e вызывает редактора, указанного $VISUAL, или $EDITOR если VISUAL не установлен, укажите некоторый сценарий как $VISUAL.

script=$(mktemp)
cat <<'EOF' >"$script"
#!/usr/bin/ed -s
1,$/#job1$/d
$a
1 2 3 4 5 new job #job2
.
w
q
EOF
VISUAL="$script" crontab -e
rm -f "$script"

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

Вместо crontab -e, можно найти легче вывести текущий файл, отредактировать его и установить новую версию или сохранить основную копию и установить его при изменении его. Используя средства основной копии, что Вы не должны редактировать crontab через другие средства или Ваши изменения, будет переопределен. Дамп текущего файла и редактирование его означают, что, если что-то или кто-то еще редактируют crontab одновременно, кто бы ни устанавливает сначала, переопределят их изменения; некоторые версии crontab предотвратите это путем блокировки файла в то время как crontab -e в действии, но я не знаю, делает ли Солярис.

6
29.10.2014, 18:15
6 ответов

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

11
27.01.2020, 20:20

При необходимости только в самораспаковывающемся архиве можно использовать shar.

например.

shar -z -t files/ > bundle.sh
6
27.01.2020, 20:20

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

Дистрибутивы имеют широко различные политики в отношении того, что поставляться, стандарты конфигурационного файла, и как упаковать программное обеспечение. Лучше примите на работу некоторую заинтересованную сторону, knowledeable с распределением, и сделайте, чтобы они приняли упаковку и интеграцию в распределение. Это уменьшит трение чрезвычайно.

5
27.01.2020, 20:20
  • 1
    Действительно ли возможно, например, обнаружить компиляторы (или попросить у пользователя путей) при установке, например, .deb или .rpm? если бы это возможно, который действительно был бы отличным решением. –  Misery 02.04.2013, 17:59
  • 2
    .deb и .rpm устанавливают двоичные файлы, никакой требуемый компилятор. Соответствующий .src.rpm (SRPM) содержит полную конфигурацию для создавания/устанавливания пакета из источника, там можно указать то, что необходимо создать. Я не знаком с .deb, но AFAIU, repective исходные пакеты подобны. Или Вы могли просто поставить a .tar.gz с инструкциями по установке (возможно, добавляют конфигурацию автоконфискации, это - перенос для установки только бриз, чтобы быть в курсе позже). Оставьте istalling пользователю. –  vonbrand 02.04.2013, 18:35
  • 3
    Ну, вещь состоит в том, который в моем компиляторе проекта необходим. Я создаю математическую библиотеку C++, которая будет autmatically установлена и настроена для выбора между последовательными и алгоритмами OMP. Я делаю это для своих коллег на работе, и некоторые из них используют GCC, некоторый компилятор Intel, некоторую Borland, некоторую работу над Windows с помощью MSVCC и т.д. У некоторых есть i7, у некоторых есть Opteron и так далее. Так освобождает, должен быть скомпилирован с их компилятором и настроен. Также у некоторых есть Intel MKL, и другие не делают. Некоторые из них хотят использовать его, и некоторые нет. Таким образом, это - единственный способ записать несколько интерактивный установщик. –  Misery 02.04.2013, 19:01

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

Править: пример с программой uudecode.

1
27.01.2020, 20:20
  • 1
    проблемы, но как я делаю это? Как добавить этот архив в конце? –  Misery 02.04.2013, 09:38
  • 2
    я отредактировал свой –  GHugo 02.04.2013, 09:48
  • 3
    Это было технологией в расцвете Usenet, также известной как shar. Проверьте GNU sharutils. –  vonbrand 02.04.2013, 18:36

Попробуйте инструмент CQtDeployer . Этот инструмент использует Qt Installer Framework для создания установщиков и поддерживает платформы Windows и Linux.

  1. Установите инструмент cqtdeployer . Я рекомендую использовать онлайн-установщик, потому что он имеет последнюю версию cqtdeployer с небольшими исправлениями ошибок.
  2. Откройте консоль с вашей средой фреймворка.
  3. Запустите cqtdeployer для своего приложения на консоли.
cqtdeployer -bin path\to\myApp qif 

Если вы используете Qt, добавьте параметр qmake.

cqtdeployer -bin path\to\myApp -qmake path\to\qmake qif 

Дополнительные примеры использования этой утилиты см. в CQtDeployer Wiki

1
09.11.2020, 07:14

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

Но если вам действительно нужен графический установщик, как в Windows, для этого случая я написалlinux _установщик , похожий на NSIS/Wizard97, использующий GTK3 в Linux.

1
20.01.2021, 21:50

Теги

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