Jestem pewien, że nie chodzi o lenistwo ani nic podobnego, ale nie rozumiem, dlaczego programiści aplikacji, głównie skierowanych do konsumentów, nie tworzą żadnego kreatora instalacji, w którym przechodzisz od następnego do następnego. Te same aplikacje zwykle mają instalatory dla Windows i Mac OS, więc dlaczego nie Linux?
Czy jest jakiś techniczny powód tego trendu, czy to tylko konwencja?
EDYCJA (23-09-2014): To pytanie nie zostało zadane, aby rozpocząć wojnę z płomieniami Windows kontra Linux. Użyłem wszystkich 3 głównych systemów operacyjnych i oprócz Linuksa pozostałe dwa (Windows i Mac OS) mają instalatory. Nie zainstalowałem jeszcze Oracle, ale cokolwiek potrzebowałem, nigdy nie widziałem instalatora GUI dla Linuksa.
Tak, wiem, że Linux ma menedżerów pakietów, więc programiści nie muszą „tworzyć” instalatorów. Ale nadal istnieje ogromna ilość oprogramowania, które jest albo nieaktualne w domyślnych menedżerach pakietów, albo po prostu niedostępne. Ponadto, ponieważ Linux jest sprzedawany jako alternatywa dla systemu Windows dla zwykłych użytkowników (Ubuntu stara się w tej domenie), sensowniejsze byłoby po prostu dać użytkownikom to, co znają.
Weźmy na przykład konfigurację stosu LAMP. To wszystko oprogramowanie open source w domyślnych repozytoriach, ale czy możesz skonfigurować wszystko za jednym razem bez skryptu? Teraz spójrz na serwer WAMP w systemie Windows. Po prostu uruchamiasz instalator, który instaluje wiele programów w taki sposób, aby działały dobrze ze sobą. Następnie ustawia dobre wartości domyślne i takie tam. Instalatorzy mogą to zrobić, menedżerowie pakietów nie. Tak, możesz znaleźć skrypt dla tego online, ale gdzie? A który?
Instalatorzy nie są przestarzałą technologią z przeszłości. Nadal są przydatne, a 95% użytkowników już z nimi czuje się komfortowo.
Odpowiedzi:
Programiści muszą jedynie dostarczyć pakiet do dystrybucji. Każda dystrybucja ma następnie sposób na zainstalowanie tego pakietu. Ten sposób może odbywać się w terminalu (
apt-get
) lub za pomocą interfejsu graficznego, np. Ubuntu Software Center.Piękno polega na tym, że programiści muszą dbać o zbudowanie odpowiedniego pakietu; twórcy dystrybucji zajmują się resztą, a każda instalacja pakietu ma taki sam proces.
źródło
Ponieważ nie muszą. Dystrybucje systemu Linux zwykle mają działające systemy zarządzania pakietami, w przeciwieństwie do systemu Windows, w którym każda aplikacja musi ponownie wdrażać instalację i aktualizację w kółko.
źródło
Większość zamkniętego oprogramowania, niewolnego jako piwo w systemie Linux, jest dostarczana z kreatorami instalacji. Podobnie jest w przypadku niektórych programów zamkniętych, darmowych jak w piwie, przynajmniej do momentu, aż większość dużych dystrybucji je odbierze. W przypadku oprogramowania typu open source menedżerowie pakietów są wyraźnie lepszym rozwiązaniem.
A co z początkowymi etapami, zanim oprogramowanie open source zostanie przejęte przez główne dystrybucje? Dlaczego programiści nie tworzą kreatorów instalacji podczas tej fazy?
Przede wszystkim wielu programistów open source zwyczajnie nie dba o dystrybucję. Piszą oprogramowanie, z którego mogą korzystać, i udostępniają je na wypadek, gdyby były użyteczne dla innych, ale widzą opakowania do dystrybucji jako czyjś problem. Jeśli to się spodoba, ktoś podejmie się zadania umieszczenia go w swojej ulubionej dystrybucji.
Deweloperzy open source, którzy zrobienia dbają o dystrybucji są jeszcze lepiej działa w systemie menedżera pakietów, bo tam ich klienci. Użytkownicy Linuksa zazwyczaj nie przeszukują sieci w poszukiwaniu oprogramowania. Najpierw przeszukują menedżera pakietów. W przeciwnym razie przeszukują repozytoria „utrzymywane przez społeczność”, takie jak PPA Ubuntu lub AUR Archa. Jeśli nie ma Cię w tych miejscach, najprawdopodobniej twoje oprogramowanie nie zostanie zauważone, a jeśli zostanie zauważone, rzadziej będzie można mu zaufać.
Rezygnacja z tych istniejących kanałów dystrybucji jest jak decyzja, że reklamy superbowl są zbyt drogie, więc będziesz organizować własne mistrzostwa w piłce nożnej i reklamować się na nich. Może to być mniej kosztowne, ale także mniej skuteczne.
Jeśli chodzi o dostosowywanie konfiguracji, dla oprogramowania takiego jak serwer WWW, który jest tradycyjnie łatwiejszy w obsłudze z plikiem konfiguracyjnym, co ułatwia konfigurację udostępniania, tworzenia kopii zapasowych i przywracania.
W przypadku oprogramowania klienckiego, takiego jak przeglądarka internetowa, znacznie lepiej jest utworzyć kreatora konfiguracji, który pojawia się przy pierwszym uruchomieniu oprogramowania przez nowego użytkownika , niż robić to w czasie instalacji. Głównym powodem jest to, że Linux jest systemem operacyjnym dla wielu użytkowników, więc i tak chcesz go dostosować. Ułatwia to również ponowne uruchomienie kreatora konfiguracji z dowolnego powodu, bez konieczności pozostawania programu instalacyjnego w celu ponownej instalacji całego oprogramowania. Ten typ kreatora jest dość powszechny w oprogramowaniu Linux.
źródło
Dystrybucje Linuksa (również, jak sądzę, jako Unices o smaku BSD) mają przyjazny interfejs do instalacji programu za pośrednictwem tak zwanych menedżerów pakietów (lub zarządzania portami w przypadku BSD): pacman dla Arch, dpkg dla Debian / Ubuntu , i tak dalej.
Te menedżery pakietów zapewniają sposób instalowania programów za pomocą jednolitych plików konfiguracyjnych. Po spakowaniu potrzebnego programu zgodnie z menedżerem pakietów twojej dystrybucji możesz po prostu uruchomić jego komendę instalacyjną na wybranym pakiecie (z okazjonalnymi dostosowaniami specyficznymi dla użytkownika, choć często wcale), a menedżer zrobi resztę.
Menedżerowie pakietów są zwykle bardziej przyjaźni dla użytkownika niż specyficzne dla programu procesy instalacyjne systemu Windows, tylko dla jednolitego sposobu, w jaki programy są pakowane do instalacji. Zazwyczaj pozwalają także na zapytanie do bazy danych menedżera pakietów dla szukanego programu, zobacz jego zależności.
Obsługują również scentralizowaną aktualizację pakietów.
źródło
dpkg
i APT są używane zarówno w Debianie, jak i Ubuntu.apt-get
,apt-cache
Iaptitude
są owijarki na górzedpkg
.dpkg
jest rzadko używany bezpośrednio, jednym z przypadków, o których mogę myśleć, jest instalacja pakietu z.deb
pliku.Często zadawałem sobie i innym to pytanie i chciałbym poruszyć kwestię, którą często podnoszę, zanim dojdę do wyjaśnienia, dlaczego Linux widzi mniej instalatorów:
Dystrybucje systemu Linux zapewniają menedżerów pakietów.
Nie powiedziałbym jednak, że menedżer pakietów dystrybucji Linuksa zastępuje instalator z następujących powodów:
Te menedżery pakietów nie są znormalizowane w działaniu
Menedżer pakietów przypomina trochę dostarczanie pliku binarnego i pozwalanie użytkownikowi końcowemu na wybór instalatora. Mogą wybrać terminal lub narzędzie z bardziej zaawansowanym graficznym interfejsem użytkownika, ale nie zapewnia to takiej samej kontroli nad procesem, jak w przypadku „tradycyjnego” kreatora instalacji.
Przykładem tego, co rozumiem przez kontrolę, jest dokumentacja. Nie możesz podać instrukcji dla użytkownika końcowego, takich jak „Kliknij Dalej i powinieneś zobaczyć”. Możesz podać instrukcje wiersza polecenia dla konkretnego narzędzia, ale wtedy polegasz nie tylko na tym, że użytkownik ma to narzędzie, ale także tracisz większość zalet kreatora instalacji (w końcu większość kreatorów zapewnia front -end dla prostych instrukcji wiersza poleceń i uruchamiania skryptów).
To również wiąże się z estetyką. Teraz zależy Ci na dystrybucji użytkowników końcowych, aby zapewnić intuicyjny / odpowiedni interfejs. Chociaż zdajesz sobie sprawę z tego faktu, bardziej swobodny użytkownik narzeka, że dwukrotne kliknięcie pliku (ich zdaniem instalator) otwiera brzydkiego menedżera pakietów, nic nie robi lub, co najgorsze, otwiera terminal okno. (Doświadczenia, jakie miałem z użytkownikami i ich niechęć do „dos prompt” / „black and white box” / „Thing, który usunie wszystkie swoje pliki, jeśli spojrzą na to śmiesznie”, może prawdopodobnie wypełnić książkę)
Formaty pakietów nie są standaryzowane na różnych platformach.
Istnieją narzędzia do konwersji między systemami takimi jak
rpm
ideb
, ale nie jest uzasadnione oczekiwanie od użytkownika końcowego konwersji pakietów, jeśli używasz ich w sytuacji, gdy kreator instalacji zostałby udostępniony na innej platformie (tj. Kliknięciach i gotowe) ). Zapewnienie aktualnych pakietów dla dodatkowego formatu pakietu może być dość proste, jeśli masz podstawowy system kompilacji, ale nadal dodajesz nowy plik binarny, który musi być obsługiwany.Oznacza to również dodanie nowego pliku binarnego, z którego ludzie mogą wybierać w zależności od platformy (to brzmi nieznacznie, ale jestem pewien, że ktoś tutaj może potwierdzić konieczność wyjaśnienia x86 vs x64 przed [tak, istnieją sposoby na wywnioskowanie właściwej platformy z przeglądarka, ale stajesz się jeszcze bardziej skomplikowany i trudniejszy do obsługi, procedury])
Menedżerowie pakietów są „ładniejsi” dla oprogramowania typu open source.
Nie oznacza to, że nie można udostępniać oprogramowania o zamkniętym źródle systemowi zarządzania pakietami, można to zdecydowanie zrobić. Ale kiedy spróbujesz udostępnić oprogramowanie bliskiego źródła w dystrybucjach Linuksa, wpadniesz na ścianę, jeśli chodzi o opcje przeniesienia oprogramowania do wspólnych repozytoriów. Rzeczy takie jak umowy PPA lub usługa kompilacji openSUSE są niedostępne, a nawet repozytoria partnerów Canonical nie są domyślnie włączone.
Oznacza to, że dopóki nie udostępnisz własnego repozytorium, nie możesz wiele głównych funkcji systemów zarządzania pakietami, w tym automatycznych aktualizacji. Moim zdaniem jest to najważniejsza korzyść na większości platform korzystających z tych systemów (np. IOS, Android i Windows Store).
I nawet jeśli udostępnisz repozytorium (kolejne zadanie o zmiennej trywialności), nadal musisz zachęcić użytkowników do skonfigurowania go (co stanowi kolejną warstwę wsparcia, inny zestaw niestandardowych podejść i inne odwrócenie uwagi od pierwotnego punktu instalator)
Teraz, po tym wszystkim, nadal nie rozwiązałem pierwotnego problemu, dlaczego instalatorzy są mniej popularni w Linuksie pomimo tych czynników (między innymi). Pierwotne pytanie dotyczy tego, czy jest techniczne, czy oparte na konwencji, a częściowo na obu.
Jeśli spojrzysz na powyższe czynniki, o których wspomniałem, sprawią one, że będzie to bardziej skomplikowane dla instalatora „podobnego do kreatora”. Na przykład, czy twój kreator ma do zainstalowania wiele formatów pakietów? Jak radzisz sobie z wyglądem w różnych dystrybucjach? Lista jest długa, a jedną z rzeczy, na które te pakiety sobie pozwolić, jest to, że nie będzie to dla ciebie problemem ( na dobre lub na złe ), jak długo podać odpowiednie pakiety. W zależności od charakteru projektu możesz zacząć korzystać z bardziej „specjalistycznych” zasobów, takich jak przesyłanie aplikacji do Centrum oprogramowania Ubuntu. Wszystko to dotyczyłoby kwestii technicznych.
Ale aspekt, który osobiście uważam za siłę napędową, to konwencja. (Mam nadzieję, że pochowałem go tak głęboko, że ludzie, którzy głosowali za inną odpowiedzią na zapomnienie, przestali czytać ...)
Wydaje mi się, że plakat miał rację, ale mógł powiedzieć to zbyt otwarcie, i nie podał obiektywnych powodów. Jeśli przyjrzysz się różnicom, które wskazałem dla menedżera pakietów i instalatora, nie zdziwiłbym się, gdybyś stwierdził, że większość z nich jest prawie bezproblemowa (być może nawet granicząca z pedantycznymi). Ale (przepraszam, co mam nadzieję jest postrzegane jako uzasadnione użycie argumentu ad hominem), jesteśmy również użytkownikami witryny dla programistów. Widzę dystrybucje Linuksa wypchnięte jako doskonała alternatywa dla Windows dla zwykłych użytkowników (między innymi oczywiście). Niedostarczenie powszechnie definiowanej procedury „kliknij i gotowe”, z której mogą korzystać wszyscy ci użytkownicy, nie jest idealnym imo .
Ale w tym samym czasie, nie uważam, że wiele rzeczy w Linuksie jest szczególnie idealny dla tej grupy albo. Pewnie, że niektóre dystrybucje mają menedżerów pakietów opartych na graficznym interfejsie użytkownika, ale oznacza to, że osoby te muszą zacząć szukać sposobu korzystania z oddzielnego narzędzia, które nie jest ściśle skoncentrowane na instalacji programu (porównaj to i to z tym ).
Oczywiście możesz użyć GUI, aby zrobić większość, którą powinien zrobić przeciętny zwykły użytkownik, szczególnie w przypadku niektórych dystrybucji (jak na ironię, rzeczy, które robią te dystrybucje, nie zawsze są uwzględniane w społeczności open source [spójrz na skargi na Ubuntu i jest to „zamurowane”) ogród ”]) Ale nie sądzę, aby było niezaprzeczalne, że konwencje Linuksa faworyzują kogoś, kto czuje się dobrze z interfejsem CLI, lub przynajmniej nie boi się śmiertelnie, że jego wygląd oznacza, że zrobili coś strasznie złego.
Nie twierdzę, że do tego dążą, ale tak naprawdę widzę, że robią to te konwencje. Wydaje się, że pod tym względem podążają systemy zarządzania pakietami w systemie Linux. W końcu większość ich „wad” jest prawie nieistniejąca, jeśli użytkownik końcowy jest bardziej komfortowy z podstawowymi koncepcjami.
Instalatorzy na większości innych platform tak naprawdę nie mają na to wpływu, dlatego zaprojektowano je, aby zacytować komentarz do pytania: „99,99% użytkowników [może] ślepo kliknąć„ Kontynuuj ”. Problem z zarządzaniem pakietami sprawia, że użytkownicy przycisk „Kontynuuj”, informując ich, czym jest przycisk „Kontynuuj” (widziałem, że użytkownicy są potknięci przez narzędzia, które powiedziały naciśnij Enter z innym tekstem), i informując ich, kiedy kliknęli to „wybrzeże” po kliknięciu etap „Kontynuuj”.
źródło
W dużym stopniu jest to jedno i drugie. Model dystrybucji Linuksa jest bliższy AppStore / Play Store niż tradycyjnemu Windows / Mac OS X - i nawet te platformy przechodzą tam z tego, co słyszałem.
Konwencja jest taka, że jest prostsza. Większość argumentów dla AppStore / Play Store dotyczy także Linuksa:
Ponadto istnieją następujące korzyści, które mogą nie mieć zastosowania do AppStore / Play Store:
źródło
Zazwyczaj instalacja nie wymaga interakcji z użytkownikiem (
apt-get
na przykład większość pakietów) lub może być skryptowana. Ułatwia to automatyzację w celu wdrożenia oprogramowania na wielu komputerach. Zamiast robić rzeczy za pomocą kreatora, robisz te same rzeczy za pomocą skryptów lub plików konfiguracyjnych.Biorąc pod uwagę, że w świecie Linuksa terminal jest na pierwszym miejscu, a GUI jest opcjonalny, staje się oczywiste, dlaczego brakuje im kreatorów instalacji.
Z drugiej strony, Windows jest bardzo zorientowany na użytkownika. Większość plików MSI można łatwo wdrożyć w sposób nienadzorowany, w ten sam sposób, w jaki instalacja systemu Windows może być nienadzorowana (to, jak łatwe / trudne jest uruchomienie WAIK, to inny temat). Oznacza to również, że kilka aplikacji dla systemu Windows nie jest opartych na MSI i nie można ich skryptować. Wśród aplikacji na skalę korporacyjną na przykład produkty Adobe są dość trudne do zainstalowania w sposób skryptowy.
źródło
Grupa docelowa jest inna. Systemy uniksowe i systemy uniksopodobne były zwykle używane przez profesjonalnych programistów, administratorów systemów, inżynierów i poważnych hobbystów, którzy dostosowywali każdy system do swoich potrzeb. Każdy „kreator instalacji” ograniczyłby jedynie wybór, zamiast dawać dostęp do wszystkich potrzebnych zmiennych. A te, które tam są, nadal tak robią.
System Windows nie jest skierowany do profesjonalistów w ten sam sposób, dlatego ma bardziej ogólne instalatory przeznaczone dla „użytkowników”, którzy chcą tylko tego zainstalować. Linux zbiera coraz więcej użytkowników, którzy prawdopodobnie doceniliby coś takiego, ale być może większość dystrybucji ma na uwadze profesjonalistów.
źródło