Подтвердить что ты не робот

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

Я разрабатываю небольшое кросс-платформенное приложение, и мне нужны некоторые советы по его установке в Linux. Я использую InnoSetup в Windows и пакет приложений в OSX, но я понятия не имею, как установить мое приложение в Linux, есть ли какие-либо создатели установщика с открытым исходным кодом для Linux?

Спасибо.

4b9b3361

Ответ 1

Стандарт всех могущественных универсально доступных инсталляторов в системах * 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, хотя после того, как у вас есть Makefile, выпущенный Autotools, сделайте их легкими.

# 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

Autotools, также известный как "система сборки GNU", немного пугает на первый взгляд, и новый пользователь озадачен, когда сталкивается с такими вещами, как древняя макросистема m4 и co. но это не так, как это делают большинство людей, и это довольно легко, когда вы его повесили.

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

Ответ 2

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

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

  • Используя autoconf,
  • Использование CMake,
  • Использование установщика Java, например IZPack
  • и т.д.

Ответ 3

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

Ответ 4

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

Ответ 5

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

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

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

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

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

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