Чому не всі програми "переносні"?


45

Нещодавно я намагався «встановити» речі набагато менше на моїй машині Windows (ненавиджу інсталяторів - мені потрібно знати, куди програми кладуть речі ...), вибираючи замість цього портативні або автономні версії програм.

Я розміщую їх у режимі "Програми" на диску, окремо від мого розділу Windows, тому щоразу, коли я перевстановлююсь, я маю доступні всі додатки з мінімальними зусиллями і з додатного боку, я отримую непогані налаштування.

Такі програми, як Office та Creative Suite, як і раніше, вимагають від мене жахливо тривалого процесу встановлення, коли тисячу випадкових бібліотек та інструментів перекидають через мою систему.

Чому додатки Windows все ще потребують встановлення? Чому ми не можемо просто перетягнути Photoshop в папку à la OSX і просто так працювати? Хтось ще зосереджується на портативних програмах, чи я просто OCD про все?


3
Відповіді на запитання пояснюють допитливим "чому". Однак вигук "але чому" все ще залишається (як в "але чому ми не можемо просто помиритися").
dbkk101

2
Я також ненавиджу монтажників. нічого поганого з тобою
Нік,

2
Це виглядає як неправильне питання. Якщо ви хочете використовувати портативні програми, то, здавалося б, правильне питання: "Які програми є портативними?". Наприклад, ви можете подумати, що вам потрібен MS Word, коли вам дійсно потрібна програма, яка може читати і записувати файли даних .doc. Open Office зробить це ... і, на відміну від MS Word, він доступний у портативному форматі ... Я отримав його копію (та Abiword) на флеш-накопичувачі, який весь свій час підключається до мого ноутбука. Існує досить багато портативних програм. portablelinuxapps.org пропонує 184 для Linux, тоді як portableapps.com/apps пропонує 232 +

Решта коментаря Білла: ... додаток для меню для Windows [можливо, обидва містять хороший вибір тривіальних утиліт]). Виберіть потрібні і вимкніть не портативні програми, без яких можна обійтися ... більшість моїх програм живуть на USB-ключі. Це, як мінімум, спростить суп із спагетті з файлів на вашому HD.
studiohack

Також мені здається, що найкращі інструменти є портативними. Я можу бути упередженим.
Властиміл Овчачик

Відповіді:


35

Установці - результат багаторічної еволюції, і трохи (спрощена) історія допомагає зрозуміти, чому вони роблять те, що роблять ..

Модель Windows 3.1 запропонувала файли конфігурації стилю config.ini для програми із підтримкою спільних бібліотек, що надходять у системні папки, щоб запобігти дублюванню та марному простору на диску.

Windows 95 представив реєстр, що дозволяє центральному магазину для конфігурації додатків замінювати багато файлів конфігурації. Що ще важливіше, конфігурація Windows зберігалася в тому самому місці.

Реєстр став роздутим завдяки програмам, які не прибирали після себе. Пекло DLL сталося в результаті декількох версій одних і тих же спільних бібліотек, що перезаписували одна одну.

.NET представив концепцію app.config (майже INI-файли відмічають 2, на цей раз із трохи більшою структурою, економлячи розробники, витрачаючи час на написання ручних парсерів). GAC був представлений для спільних збірок версій у спробі запобігти DLL Hell.

У Windows XP та інших випадках у Vista Microsoft намагалася визначити простір користувачів як місце для зберігання даних користувачів та файлів конфігурації в єдиному стандартному місці, щоб забезпечити доступ до роумінгових профілів та легкої міграції (просто скопіюйте свій профіль) із програмами, встановленими у файлах програм .

Тому я здогадуюсь, що причина в тому, що «програми у Windows розроблені для того, щоб жити в одному місці, їх спільні залежності в іншому, а конкретні дані користувача в іншому», що в значній мірі працює проти концепції копіювання одного місця.

.. і це ще до того, як вам доведеться налаштувати облікові записи користувачів, налаштувати та забезпечити дозволи безпеки, завантажити оновлення та встановити служби Windows ...

xcopy - це "простий випадок" і, звичайно, не найкраще підходить для всього.


1
Приємне, просте пояснення!
alex

7
Ще одна велика причина для інсталяторів (особливо як Office) полягає в тому, що жоден користувач не повинен мати змогу впливати на іншого користувача в тій же системі, якщо він не є адміністратором. Якщо Office 2007 важить близько 500 Мб, якщо користувач хоче ним користуватися, він повинен мати власну локальну копію. Це було б 1,5 Гб для 3 користувачів в одній системі! Google Chrome встановлюється у вашому локальному довіднику користувачів, тому якщо у вас є 10 користувачів, які мають усі Chrome, це 10 різних версій, які потрібно оновлювати та підтримувати. Очевидно, що для встановлення кожного користувача є плюси і мінуси порівняно з центральним розгортанням.
Джошуа

1
Деякі програми, як-от Photoshop (принаймні, до CS4), можна просто скопіювати та, коли запустити - створить необхідні сховища та файли конфігурації користувача. Крім того, більшість програм .NET є портативними за дизайном, але ендусери очікують наступного встановлення наступного завершення - багатьох, хто навіть не знає, що таке файлова система.
Оскар Дювеборн

Можна також зазначити, що, хоча програми призначені для поділу налаштувань / бібліотек / специфікацій у різних місцях, це не звичайно поширений звичай. Я дуже часто знаходжу параметри для різних додатків, що зберігаються у файлах у своїх програмних каталогах, і дуже часто бібліотеки, якими можна було б поділитися, є статично пов'язаними в каталозі програм. Оскільки реальних переваг робити так чи інакше для програмістів немає, стимул дотримуватись правил слабкий, і розробка додатків дикого заходу виникає :-). Також, я думаю, традиція сильна.
Даніель Андерссон

GAC - це лише друге пришестя пекла DLL. Приємна концепція, але в реальному житті ви стикаєтесь з плутаниною, оскільки різні виконувані файли пов'язують різні версії одного файлу, а деякі версії цих файлів можуть мати вади безпеки. Це всесильний безлад, з яким потрібно боротися, якщо тобі потрібне безпечне оточення. Тепер вам фактично потрібно виправити різні версії одного файлу, щоб зафіксувати той самий отвір у захисті. Ура! Слід зазначити, що політика та обов’язкові переадресації можуть допомогти, але це все одно, що сказати, що група допомагає проти відкритих ран.
Stein Åsmul


7

Відмінне запитання, я задав відповідне запитання про Stack Overflow деякий час тому.

Відповідь часто здається "тому, що ми це робили раніше". Вибачте, але зі мною це не вмивається.

Кілька інших сказали, що головна причина пов’язана з реєстром. Якщо ви говорите про драйвер пристрою або якийсь інший компонент COM тощо, то так, це може знадобитися, але не для програм GUI, таких як текстові процесори або електронні таблиці.

Цілком можливо написати програму, яка або перевіряє запуск необхідних параметрів реєстру, і спонукає користувача до них / використовує параметри за замовчуванням. Або, як це робиться зараз у багатьох програмах, jst повідомляє користувачеві, що інтеграція в ОС наразі обмежена, оскільки ви працюєте в портативному режимі.

Інсталятори часто також мають багато "знань" про те, як працює програма. Потім, коли додаток змінюється, вам часто доведеться також оновлювати інсталятор. Це класична причина помилок / проблем, які я бачив у програмі свого часу.

Це єдиний розмір, який підходить для всіх.


6

Проста і тупа відповідь: це просто питання того, хто має контроль. Більшість програмного забезпечення в даний час розроблені корпоративними гігантами для корпоративного чи інституційного середовища, де користувачам повідомляють, що робити, а не говорити на своїх комп'ютерах, що робити для них.

Ваше запитання є надзвичайно важливим, оскільки воно ставить фундаментальне питання про особисті права та свободи, які дедалі більше руйнуються не тиранами, як у старих суспільствах, а корпоративною жадібністю та необхідністю небагатьох контролювати багатьох.

Власне кажучи, ми, здається, забули, що саме ті люди, які звикли декларувати свавілля таких гігантів, як IBM, стали IBM сьогодні і віку ... Просто уважно подивіться на ділові практики Microsoft, Apple і Adobe, щоб назвати декілька, і сказати мені прямо, що їхні обмежувальні ліцензії є доброякіснішими, ніж ділові практики IBM, той самий IBM, який своєю відкритістю насправді провів шлях до революції в галузі персональних обчислень ...

Я використовував багато автономних портативних програм протягом багатьох років, і вони, без винятку, виявилися найефективнішими, найшвидшими та найменшими з точки зору слідів та ресурсів, і останнє, але не менш важливо, вони не тільки перевершують свої програмні засоби аналоги, але більшу частину часу вони також безкоштовні.

Настав час другої революції персонального комп'ютера. Підвищення переносимості за рахунок зменшення розміру та уточнення, де зберігаються налаштування, в одній окремій папці на чіткому фізичному розташуванні на матеріальному фізичному носії - це один крок у правильному напрямку.


5

Поєднання реєстру та пам’яті користувача. Реєстру є важливою частиною, особливо якщо ваше додаток COM основі (який вимагає реєстрації, що відбувається в реєстрі). На зберігання користувача (конфігурації тощо) також є важливим компонентом. Єдиний хороший спосіб зробити це - зберігати його в деяких спеціально розроблених каталогах (див. Ізольоване зберігання ).


Саме так. Як ОС могла знайти EXE або DLL для завантаження без фіксованого місця? "Set oExcelApp = CreateObject (" EXCEL.APPLICATION ")" повинен якось працювати.
Зан Лінкс

4

Переважно через реєстр Windows - навіть якщо ваші програми перебувають у певному каталозі, налаштування часто зберігаються в реєстрі.

Це може бути також тому, що програма розміщує файли в інших каталогах на вашому комп'ютері, крім каталогу встановлення (наприклад, system32)


3

Однією з великих переваг для інсталяторів у порівнянні з типом установки Xcopy / portable є саморемонт.

Додаток, який належним чином використовує систему інсталятора Windows, міститиме всіляку інформацію про неї, збережену в базі даних Windows Installer на вашій машині, а також досить часто кеш важливих частин файлів налаштування.

Якщо програма з якихось причин виходить з ладу (щось інше видаляє / замінює файл, реєстр стає пошкодженим, проблеми з диском, користувач видаляє ярлик тощо), то якщо його "рекламований ярлик", інсталятор фактично перевіряє ключові файли та ключі кожного разу, коли він запускається та замінює, якщо їх немає, або ви можете зайти в додавання / видалення програм і натиснути «Ремонт» у додатку.


Чому єдине, про що я можу подумати, читаючи цю піктограму на робочому столі Adobe Reader? Цей настільки шалено
саморемонтується, що зводить

2

Я думаю, що це частково пов'язане з великою кількістю необхідних додатків для Windows. Наприклад, ключі реєстру, дані користувача (/ Користувачі // AppData). Можливо, OSX справляється з цим краще / інакше.

Потім знову неможливо створити додатки, які ви можете просто витягти з архіву - я завжди радий, коли це так.


2

.Net Framework - це платформа для включення такого типу функціональних можливостей, і в основному інсталятори використовуються лише тому, що до цього звичні користувачі. Так само, як користувачі Mac використовуються для копіювання файлів у папку Applications.

Більшість інсталяторів просто розширюють файли в папку Файли програм і створюють ярлик. Це скоріше справа про те, що користувачі знають, і часто просто простіше зберегти процес однаковим, навіть якщо додаток є портативним.


2

Деякі програми вимагають, щоб місце встановлення було встановлено в реєстрі, в інших може бути чітко зафіксовано їх розташування в програмі (так було в справі perl.exe).

В основному головна причина - це програмісти, які взяли простий вихід і щось жорстко закодували в програми, або ключі реєстру, або фактично жорсткі коди.


2

Багато програм Windows повинні використовувати системні середовища чи сервіси, такі як SQL Server, IIS, WMI, домени безпеки, Active Directory та багато інших. Типовий користувач може не знати, як їх налаштувати, а може навіть не мати до них доступу.

Такі програми, як Microsoft Office, не є єдиними файлами; вони містять десятки файлів, виконуваних файлів, утиліт, служб, шаблонів, плагінів, драйверів тощо. Під час встановлення програми ви не можете просто перезаписати все, що використовує новий додаток, воно повинно відповідати тому, що вже є. Інсталятори Windows роблять більше, ніж просто копіюють файли, вони можуть запитувати системне середовище, запускати сценарії та встановлювати сервіси, а також налаштовувати апарат так, ніби вони були адміністратором.

dbkk101 запитує, чому програми Windows "не можуть все просто ужитися". Вони можуть, саме для цього і встановлюють.


2

З деякими програмами встановлення нерозумно, але це набагато більше, ніж просто "перетягування файлу в каталог програм".

Принаймні, пристойний інсталятор, що розпаковує інсталяційний файл, налаштовує відповідні ярлики та спрощує видалення програми, коли вже не захочеться. Я думаю, що декомпресія та копіювання - це, мабуть, найдовше.

Потім є спільні файли - це особливо актуально у світі Linux, хоча не так багато в IMO Windows.

Найголовніше, що деякі програми потрібно налаштувати для машини, а деякі (я принаймні припускаю) намагаються оптимізувати на базі машини або, принаймні, ось що в діалог Adobe, що спонукає мене вважати.

Крім того, я ніколи не бачив причин встановлювати на окремий розділ. Ви, як правило, втрачаєте всі значення реєстру та налаштування конфігурації. Плюс, я фактично вважаю за краще, щоб втрати спричиняли зменшення набряку Windows.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.