Dlaczego wszystkie aplikacje nie są „przenośne”?

45

Niedawno próbowałem „instalować” rzeczy o wiele mniej na moim komputerze z systemem Windows (nienawidzę instalatorów - muszę wiedzieć, gdzie programy umieszczają rzeczy…), zamiast tego wybrałem przenośne lub samodzielne wersje aplikacji.

Umieszczam je wszystkie w katalogu „Programy” na dysku innym niż moja partycja Windows, więc za każdym razem, gdy dokonuję ponownej instalacji, wszystkie moje aplikacje są dostępne przy minimalnym wysiłku, a na plus mam dobrą, czystą konfigurację.

Aplikacje takie jak Office i Creative Suite wciąż wymagają ode mnie strasznie długiego procesu instalacji, w którym tysiąc losowych bibliotek i narzędzi jest przesyłanych do mojego systemu.

Dlaczego aplikacje Windows nadal wymagają instalacji? Dlaczego nie możemy po prostu przeciągnąć Photoshopa do folderu à la OSX i po prostu sprawić, by działał? Czy ktoś jeszcze koncentruje się na aplikacjach przenośnych, czy po prostu mam obsesję na punkcie całości?

Tom
źródło
3
Odpowiedzi na pytanie wyjaśniają dociekliwe „dlaczego”. Jednak wykrzyknik „ale dlaczego” nadal pozostaje (jak w „ale dlaczego wszyscy nie możemy się dogadać”).
dbkk101
2
nienawidzę też instalatorów. nic złego z tobą
Nick
2
To wygląda na niewłaściwe pytanie. Jeśli chcesz korzystać z aplikacji przenośnych, prawidłowe pytanie wydaje się brzmiać: „Które programy są przenośne?”. Na przykład możesz pomyśleć, że potrzebujesz MS Word, gdy tak naprawdę potrzebujesz programu do odczytu i zapisu plików danych .doc. Open Office to zrobi ... i, w przeciwieństwie do MS Word, jest dostępny w formacie przenośnym ... Mam jego kopię (i Abiword) na dysku flash, który spędza cały czas podłączony do mojego laptopa. Istnieje wiele przenośnych aplikacji. portablelinuxapps.org oferuje 184 dla Linuksa, podczas gdy portableapps.com/apps oferuje 232 +
Reszta komentarza Billa: ... aplikacja do menu dla Windows [prawdopodobnie oba zawierają duży wybór prostych narzędzi]). Wybierz te, które chcesz i odrzuć nieprzenośne programy, z którymi możesz sobie poradzić bez ... większość moich aplikacji działa na kluczu USB. To przynajmniej uprości spaghetti z plikami na twoim HD.
studiohack
Wydaje mi się również, że najlepsze narzędzia są przenośne. Mogę być stronniczy.
Vlastimil Ovčáčík,

Odpowiedzi:

35

Instalatorzy są wynikiem wielu lat ewolucji, a odrobina (uproszczonej) historii pomaga zrozumieć, dlaczego robią to, co robią.

Model systemu Windows 3.1 sugerował pliki konfiguracyjne w stylu config.ini dla każdej aplikacji z obsługą współużytkowanych bibliotek przechodzących do folderów systemowych, aby zapobiec duplikacji i marnowaniu miejsca na dysku.

System Windows 95 wprowadził rejestr, który zezwala na centralny magazyn konfiguracji aplikacji zastępujący wiele plików konfiguracyjnych. Co ważniejsze, konfiguracja systemu Windows została zapisana w tym samym miejscu.

Rejestr stał się rozdęty z powodu aplikacji, które same się nie sprzątały. Piekło DLL wydarzyło się w wyniku nadpisywania się wielu wersji tych samych bibliotek współużytkowanych.

.NET wprowadził koncepcję app.config (prawie pliki ini mark 2, tym razem z nieco większą strukturą oszczędzającą programistom marnowanie czasu na pisanie ręcznych parserów). GAC został wprowadzony do wersji wspólnych zestawów, aby zapobiec DLL Hell.

W Windows XP i Moreso w Vista Microsoft próbował zdefiniować przestrzeń użytkownika jako miejsce do przechowywania danych użytkownika i plików konfiguracyjnych w jednej standardowej lokalizacji, aby umożliwić wędrowanie profilów i łatwą migrację (wystarczy skopiować profil) za pomocą aplikacji zainstalowanych w Program Files .

Sądzę więc, że powodem jest to, że „aplikacje w systemie Windows są zaprojektowane do życia w jednym miejscu, ich współdzielone zależności w innym, a dane specyficzne dla użytkownika w innym”, co w zasadzie działa wbrew koncepcji kopiowania w jednym miejscu.

.. i to zanim trzeba będzie skonfigurować konta użytkowników oraz skonfigurować i zapewnić uprawnienia bezpieczeństwa oraz pobierać aktualizacje i instalować usługi Windows ...

xcopy to „prosty przypadek” i na pewno nie najlepiej pasuje do wszystkiego.

DavidWhitney
źródło
1
Ładne, proste wyjaśnienie!
alex
7
Innym ważnym powodem dla instalatorów (zwłaszcza takich jak Office) jest to, że żaden użytkownik nie powinien mieć wpływu na innego użytkownika w tym samym systemie, jeśli nie jest administratorem. Pakiet Office 2007 waży około 500 MB, jeśli użytkownik chce go używać, musi mieć własną kopię lokalną. To byłoby 1,5 GB dla 3 użytkowników w tym samym systemie! Google Chrome instaluje się w lokalnym katalogu użytkowników, więc jeśli masz 10 użytkowników, którzy wszyscy mają Chrome, to 10 różnych wersji, które muszą zostać zaktualizowane i utrzymane. Oczywiście istnieją zalety i wady instalacji na użytkownika w porównaniu do instalacji centralnej.
Joshua
1
Niektóre aplikacje, takie jak Photoshop (przynajmniej wcześniejsze niż CS4), można po prostu skopiować, a po uruchomieniu - utworzą potrzebne konfiguracje użytkowników i pliki. Większość aplikacji .NET jest z założenia przenośna, ale użytkownicy końcowi oczekują kolejnych następnych instalatorów - wielu, którzy nawet nie wiedzą, czym jest system plików.
Oskar Duveborn
Można również zauważyć, że chociaż aplikacje mają na celu dzielenie ustawień / bibliotek / specyfikacji w różnych miejscach, nie jest to dobrze rozpowszechniony zwyczaj. Bardzo często znajduję ustawienia dla różnych aplikacji przechowywanych w plikach w katalogach programów, a bardzo często biblioteki, które można udostępniać, są statycznie połączone w katalogu programów. Ponieważ dla programistów nie ma rzeczywistych korzyści z robienia różnych rzeczy, zachęta do przestrzegania zasad jest słaba i następuje rozwój aplikacji na dzikim zachodzie :-). Myślę też, że tradycja jest silna.
Daniel Andersson,
GAC to dopiero drugie wydanie DLL hell. Fajna koncepcja, ale w rzeczywistości wpadasz w zamieszanie, ponieważ różne pliki wykonywalne łączą się z różnymi wersjami tego samego pliku, a niektóre wersje tych plików mogą mieć wady bezpieczeństwa. Jeśli potrzebujesz bezpiecznego środowiska, musisz sobie poradzić z wszechobecnym bałaganem. Teraz musisz załatać różne wersje tego samego pliku, aby załatać tę samą dziurę w zabezpieczeniach. Hurra! Należy zauważyć, że polityki i obowiązkowe przekierowania mogą pomóc, ale to tak, jakby powiedzieć, że pomoc zespołu pomaga w przypadku otwartych ran.
Stein Åsmul,
12

Rozmieszczania XCOPY został ogłoszony przez firmę Microsoft jako w zasadzie przyszłości kilka lat temu. Wciąż nic :)

W międzyczasie możesz być zainteresowany platformą PortableApps.com.

Piotr Dobrogost
źródło
7

Świetne pytanie, jakiś czas temu zadałem powiązane pytanie na temat Przepełnienia stosu.

Odpowiedź często brzmi „ponieważ tak robiliśmy w przeszłości”. Przepraszam, ale to nie myje się ze mną.

Kilka innych stwierdziło, że głównym powodem jest rejestr. Jeśli mówisz o sterowniku urządzenia lub innym komponencie COM itp., Może to być konieczne, ale nie w przypadku aplikacji GUI, takich jak edytory tekstu lub arkusze kalkulacyjne.

Całkiem możliwe jest napisanie aplikacji, która sprawdza przy uruchomieniu wymagane ustawienia rejestru i wyświetla monit o podanie / używa ustawień domyślnych. Lub, jak robi to obecnie wiele aplikacji chronionych, jst informuje użytkownika, że ​​integracja systemu operacyjnego jest obecnie ograniczona, ponieważ pracujesz w trybie przenośnym.

Instalatorzy często mają również dużą „wiedzę” na temat działania aplikacji. Następnie, gdy zmienia się aplikacja, często trzeba również zaktualizować instalator. Jest to klasyczna przyczyna błędów / problemów, które widziałem podczas programowania.

Jest to podejście uniwersalne.

Ash
źródło
6

Prosta i tępa odpowiedź: to po prostu pytanie, kto ma kontrolę. Większość oprogramowania jest obecnie projektowana przez gigantów korporacyjnych dla środowiska korporacyjnego lub instytucjonalnego, w którym użytkownikom mówi się, co mają robić, zamiast mówić komputerom, co mają dla nich zrobić.

Twoje pytanie jest niezwykle ważne, ponieważ rodzi fundamentalne pytanie o prawa i wolności, które są coraz bardziej niszczone, nie przez tyranów, jak w starych społeczeństwach, ale przez chciwość korporacyjną i potrzebę nielicznych, którzy kontrolują wielu.

W rzeczywistości zdaje się, że zapomnieliśmy, że dokładnie ci sami ludzie, którzy potępiali tyranię gigantów, takich jak IBM, stali się IBMami w dzisiejszych czasach ... Wystarczy przyjrzeć się praktykom biznesowym Microsoft, Apple i Adobe, żeby wymienić tylko kilka i powiedzieć z czystą miną, że ich restrykcyjne licencje są bardziej łagodne niż praktyki biznesowe IBM, ten sam IBM, który przez swoją otwartość faktycznie poprowadził ścieżkę do osobistej rewolucji komputerowej ...

Przez lata korzystałem z wielu niezależnych, przenośnych aplikacji i bez wyjątku okazały się one najbardziej efektywne, najszybsze i najmniejsze pod względem powierzchni i zasobów, a także nie tylko, że są one lepsze niż ich nadęty odpowiedniki, ale przez większość czasu są również bezpłatne.

Najwyższy czas na drugą rewolucję komputerów osobistych. Zwiększenie przenośności poprzez zmniejszenie wzdęć i wyjaśnienie, gdzie przechowywane są ustawienia, w jednym odrębnym folderze w odrębnej fizycznej lokalizacji na materialnym, fizycznym nośniku, jest krokiem we właściwym kierunku.

Old Faithful
źródło
5

Kombinacja rejestru i pamięci na użytkownika. Rejestru jest krytycznym kawałek, zwłaszcza jeśli aplikacja jest COM oparte (która wymaga rejestracji, co dzieje się w rejestrze). Ważnym składnikiem jest również pamięć dla użytkownika (konfiguracji itp.). Jedynym dobrym sposobem na to jest przechowywanie go w specjalnie zaprojektowanych katalogach (patrz Izolowane przechowywanie ).

Krzyż
źródło
Dokładnie. W jaki sposób system operacyjny może znaleźć plik EXE lub DLL do załadowania bez ustalonej lokalizacji? „Set oExcelApp = CreateObject („ EXCEL.APPLICATION ”)” musi jakoś działać.
Zan Lynx,
4

Głównie z powodu rejestru systemu Windows - mimo że programy znajdują się w określonym katalogu, ustawienia są często przechowywane w rejestrze.

Może to być również spowodowane tym, że program umieszcza pliki w innych katalogach na komputerze innych niż katalog instalacyjny (na przykład system32)

Eric Petroelje
źródło
3

Dużą zaletą dla instalatorów w porównaniu z typem instalacji Xcopy / przenośnej jest samonaprawa.

Aplikacja, która prawidłowo korzysta z systemu Windows Installer, będzie zawierała wszelkiego rodzaju informacje na ten temat w bazie danych Instalatora Windows na twoim komputerze, a także dość często pamięć podręczną ważnych części plików instalacyjnych.

Jeśli aplikacja z jakiegoś powodu zepsuje się (coś innego usuwa / zastępuje plik, rejestr ulega uszkodzeniu, problemy z dyskiem, użytkownik usuwa skrót itp.), To jeśli jest to „reklamowany skrót”, Instalator faktycznie sprawdza pliki kluczy i klucze przy każdym uruchomieniu i zastępuje, jeśli nie są obecne, lub możesz przejść do Dodaj / Usuń programy i kliknij Napraw w aplikacji.

GAThrawn
źródło
Dlaczego jedyną rzeczą, o której mogę myśleć podczas czytania tej ikony na pulpicie Adobe Reader? To, że jest tak szalenie samonaprawiające,
wprawia w osłupienie
2

Myślę, że częściowo wiąże się to z dużą ilością potrzebnych aplikacji Windows Cruft. Na przykład klucze rejestru, dane użytkownika (/ Users // AppData). Być może OSX radzi sobie z tym lepiej / inaczej.

Z drugiej strony nie jest niemożliwe tworzenie aplikacji, które można po prostu rozpakować z archiwum - zawsze jestem szczęśliwy, gdy tak jest.

Ross
źródło
2

.Net Framework to platforma umożliwiająca włączenie tego typu funkcji, a większość instalatorów jest po prostu używana, ponieważ do tego przyzwyczajeni są zwykli użytkownicy. W ten sam sposób użytkownicy komputerów Mac są przyzwyczajeni do kopiowania plików do folderu Aplikacje.

Większość instalatorów po prostu rozwija pliki do folderu Program Files i tworzy skrót. Jest to raczej przypadek tego, co wiedzą użytkownicy, i często po prostu prostsze jest utrzymanie tego samego procesu, nawet jeśli aplikacja jest przenośna.

BinaryMisfit
źródło
2

Niektóre programy wymagają, aby lokalizacja instalacji była w rejestrze, inne mogą mieć swoje lokalizacje zapisane na stałe w programie (tak było w przypadku perl.exe).

Zasadniczo głównym powodem są programiści, którzy wybrali łatwe wyjście i zakodowali coś w programach, albo klucze rejestru, albo rzeczywiste ścieżki zakodowane na stałe.

Brad Gilbert
źródło
2

Wiele aplikacji Windows musi korzystać ze środowisk lub usług systemowych, takich jak SQL Server, IIS, WMI, domeny bezpieczeństwa, Active Directory i wiele innych. Typowy użytkownik może nie mieć pojęcia, jak je skonfigurować, lub może nawet nie mieć do nich dostępu.

Aplikacje takie jak Microsoft Office nie są pojedynczymi plikami; zawierają dziesiątki plików, plików wykonywalnych, narzędzi, usług, szablonów, wtyczek, sterowników i tak dalej. Podczas instalowania aplikacji nie można po prostu zastąpić wszystkiego, czego używa nowa aplikacja, musi ona pasować do tego, co już istnieje. Instalatorzy Windows wykonują więcej niż tylko kopiowanie plików, mogą sprawdzać środowisko systemowe, uruchamiać skrypty i instalować usługi oraz konfigurować maszynę tak, jakby była administratorem.

dbkk101 pyta, dlaczego aplikacje Windows „nie mogą się po prostu dogadać”. Mogą, właśnie po to są instalatorzy.

Dour High Arch
źródło
2

W przypadku niektórych programów instalacja przebiega głupio, ale jest o wiele więcej niż „przeciąganie pliku do katalogu programów”.

Przynajmniej przyzwoity instalator z dekompresją pliku instalacyjnego i skonfigurowaniem odpowiednich skrótów oraz ułatwia usunięcie programu, gdy nie jest już potrzebny. Myślę, że dekompresja i kopiowanie jest prawdopodobnie tym, co trwa najdłużej.

Następnie są udostępniane pliki - jest to szczególnie prawdziwe w świecie Linuksa, choć nie tak bardzo w Windows IMO.

Co najważniejsze, niektóre programy muszą być skonfigurowane na maszynie, a niektóre (przynajmniej tak sądzę) próbują zoptymalizować na podstawie maszyny, a przynajmniej takie jest przekonanie w oknie dialogowym Adobe.

Ponadto nigdy nie widziałem powodu, aby instalować na osobnej partycji. Często tracisz wszystkie wartości rejestru i ustawienia konfiguracji. Poza tym wolę tę stratę, ponieważ zmniejsza ona wzdęcie systemu Windows.

wag2639
źródło