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
i deb
, 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”.