Создание установщика для Linux-приложения
Я разрабатываю небольшое кросс-платформенное приложение, и мне нужны некоторые советы по его установке в Linux. Я использую InnoSetup в Windows и пакет приложений в OSX, но я понятия не имею, как установить мое приложение в Linux, есть ли какие-либо создатели установщика с открытым исходным кодом для Linux?
Спасибо.
Ответы
Ответ 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 и другими, однако пакеты работают очень хорошо.
Лучший способ установки, который вы можете предоставить пользователю, позволяет им устанавливать (и обновлять) ваше программное обеспечение с помощью своего собственного менеджера пакетов.