Создание установщика для [закрытого] приложения Linux

35
задан sepehr 10 March 2010 в 20:54
поделиться

5 ответов

Стандартный универсальный установщик в системах * nix (и не только) - это Autotools .

# the user will install like so:
./configure --with-stuff
make # if package is from source
make install

Вы также можете предоставить установщики для конкретных дистрибутивов, такие как RPM в RedHat или CentOS или deb для Debian, Ubuntu, хотя после того, как Autotools добавит Makefile, они станут ветер.

# the user will install like so:
yum install your-package-1.0.rpm # on redhat or
apt-get install your-package-1.0.deb # on debian

Автоинструменты, также известные как «система сборки GNU», на первый взгляд немного пугают, и новый пользователь озадачен, встречая такие вещи, как древняя макросистема m4 и т. Д. но nota bene большинство людей делают это так, и это довольно просто, если вы освоите его.

Учебные ресурсы

18
ответ дан 27 November 2019 в 15:47
поделиться

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

Он пытается сделать несколько вещей:

  • Определить тип ОС и диспетчер пакетов, что позволяет использовать системный диспетчер пакетов для извлечения любых зависимостей, которые могут потребоваться вашей программе. Например, он будет знать, что использовать apt-get install libncurses5-dev при использовании debian / ubuntu, yum install libncurses-devel при использовании RHEL / Fedora / CentOS
  • Понимать, что при необходимости используется механизм обновления init
  • Создать безопасный деинсталлятор
  • Работать с любой оболочкой (bash, dash, zsh, pdksh, busybox ash и т. д.)

Я оставляю репозиторий включенным, потому что он заполнен полезных битов, однако я быстро отказался от идеи программы типа install sheild для дистрибутивов Linux. Вы обнаружите, что гораздо лучше создавать устанавливаемые пакеты для форматов .deb, .rpm и (возможно) slackware .tgz.

Это можно интегрировать в вашу систему сборки с помощью такого инструмента, как checkinstall . Обратите внимание: пакеты, которые генерирует checkinstall, не всегда идеальны в соответствии со строгими правилами lint, установленными Debian и другими, однако пакеты работают нормально.

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

1
ответ дан 27 November 2019 в 15:47
поделиться

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

Но у вас есть и другие варианты, например:

  1. Использование autoconf ,
  2. Использование CMake ,
  3. Использование установщика Java, например IZPack
  4. и т. Д.
2
ответ дан 27 November 2019 в 15:47
поделиться

Напишите действительно надежный make-файл! или используйте CMake

1
ответ дан 27 November 2019 в 15:47
поделиться

Взгляните на InstallJammer . Вы можете написать один проект как для Windows, так и для установщика Linux, и очень скоро появится поддержка Mac.

2
ответ дан 27 November 2019 в 15:47
поделиться
Другие вопросы по тегам:

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