Jakiego typu instalatora powinno używać oprogramowanie komercyjne do obsługi systemu Linux?

9

Kod źródłowy nie jest otwarty ani darmowy, więc kompilacja podczas instalacji nie jest opcją. Do tej pory widziałem programistów, którzy:

  • dostarczyć plik tar.gz i to do użytkownika należy rozpakowanie w odpowiedniej lokalizacji.
  • dostarczyć .tar.gz ze skryptem install.sh, aby uruchomić podstawowy instalator, prawdopodobnie nawet monitując użytkownika o opcje instalacji.
  • udostępniać pliki RPM i / lub deb, umożliwiając użytkownikowi dalsze korzystanie z natywnych narzędzi do zarządzania pakietami, które są im znane w celu instalowania / uaktualniania / odinstalowywania.

Chciałby obsługiwać jak najwięcej dystrybucji Linuksa, uczynić życie użytkowników tak łatwym, jak to możliwe, a jednocześnie utrzymywać jak najmniej infrastruktury kompilacji / pakowania / instalatora.

Szukam rekomendacji dotyczących sposobu pakowania mojego oprogramowania.

Mike Gray
źródło

Odpowiedzi:

19

Widzę na to dwa sposoby.

Jednym z nich jest celowanie w najpopularniejsze Linuxy, dostarczanie natywnych pakietów dla każdego z nich, dostarczanie pakietów w kolejności popularności. Kilka lat temu oznaczało to najpierw zapewnienie RPM dla Linuksa typu Red Hat, a następnie, w miarę upływu czasu, odbudowanie źródłowej RPM dla każdego mniej popularnego Linux-a opartego na RPM. Dlatego powiedzmy, że Mandriva RPM jest często nieco starszy niż Red Hat lub SuSE RPM. Ponieważ Ubuntu jest tak popularne w ciągu ostatnich kilku lat, możesz zacząć od .deb i dodać RPM później.

Drugim jest próba zaatakowania wszystkich Linuksów jednocześnie, co próbują ci, którzy dostarczają binarne archiwum. Naprawdę nie lubię tej opcji, jako sysadmin i użytkownik końcowy. Takie tarballi rozpraszają pliki w całym systemie, na którym je rozpakowujesz, i nie ma później opcji dla drobiazgów, takich jak odinstalowanie, weryfikacja pakietu, inteligentne aktualizacje itp.

Możesz wypróbować podejście mieszane: natywne pakiety dla najpopularniejszych Linuksów, a także binarne pliki tar dla nieparzystych Linuksów i oldschoolowych administratorów, którzy z jakichkolwiek powodów nie lubią menedżerów pakietów.

Warren Young
źródło
Jest to prawie dokładnie takie podejście, jakie dotychczas podjąłem - zacząłem od RPM dla Redhat / Fedora / CentOS, teraz udostępniając pliki .deb Ubuntu / Debian, ale jeszcze nie zdecydowałem, czy utworzenie tar.gz będzie nadal przydatne i potrzebne. Wygląda na to, że dobrze byłoby, gdyby użytkownicy z mniej popularnymi dystrybucjami mogli przynajmniej uruchomić oprogramowanie, a nie mieć nawet opcji. Dzięki.
Mike Gray
2
Tworzenie przenośnego pliku binarnego może być o wiele większym wysiłkiem, niż sobie wyobrażasz. Tylko jedną potencjalną pułapką jest to, że g ++ ABI zmieniało się kilka razy na przestrzeni lat, więc być może będziesz musiał wysyłać binarne wersje dowolnych bibliotek C ++, których używasz, zamiast używać wersji platformy, aby uzyskać wystarczająco szeroką kompatybilność. Jest to jeden z powodów, dla których pojedyncze binarne RPM nie są instalowane i uruchamiane wszędzie. Wydaje się jednak, że RPM akceptuje kulturowo ten fakt, podczas gdy tarballi - prawdopodobnie dlatego, że są starożytnym standardem - powinny działać wszędzie.
Warren Young,
Widziałem podejście mieszane jako najlepsze: możesz dotrzeć do wielu ludzi, a wysiłek nie jest aż tak duży.
Hugo,
Tworzenie prostego, binarnego archiwum jest nadal dobre. Zwłaszcza, jeśli tarball przechowuje wszystkie pliki gry w jednym, niezależnym katalogu. Umożliwi to niektórym użytkownikom rozpakowanie i uruchomienie go bez instalowania; a także ułatwi życie innym dystrybucjom (takim jak Gentoo, Arch itd.), ponieważ łatwiej im będzie rozpakowywać / przepakowywać ten pakiet.
Denilson Sá Maia,
4

Cokolwiek robisz, pamiętaj o dołączeniu „skryptu wsparcia”, który pozwala zebrać jak najwięcej informacji w systemie docelowym w celu rozwiązania problemów z błędami. Gwarantuję, że napotkasz problemy i debugowanie tego, co mówi klient w porównaniu do rzeczywistości, jest często bardzo różne.

vwduder
źródło
0

Zawsze preferuję pakiet (rpm | deb itp.). W zależności od charakteru oprogramowania warto celować w pakiety dla określonych dystrybucji (rhel / centos itp.), Ale prawdopodobnie nigdy nie będziesz w stanie wyrzucić wystarczającej liczby pakietów dla wszystkich.

Skrypty instalacyjne mogą być prawidłowe, w zależności od skryptu. Dla mnie najważniejsze w nieopakowanym oprogramowaniu jest to, że łatwo je zainstalować w wybranym przeze mnie miejscu.

inne
źródło
0

Gry zwykle używają instalatora (dawniej Loki Installer, obecnie MojoSetup), który instaluje grę czysto w prefiksie i obsługuje takie rzeczy jak ikony.

directhex
źródło