Недавно я пытался гораздо меньше «установить» материал на мой компьютер с Windows (я ненавижу установщиков - мне нужно знать, куда программы помещают материал…), предпочитая вместо этого использовать переносные или автономные версии приложений.
Я поместил их все в папку «Программы» на диск, отдельный от моего раздела Windows, поэтому, когда я переустанавливаю, все мои приложения доступны с минимальными усилиями, а с другой стороны, я получаю хорошую чистую настройку.
Такие приложения, как Office и Creative Suite, все еще требуют, чтобы я прошел через ужасно долгий процесс установки, когда тысячи случайных библиотек и инструментов выбрасываются в мою систему.
Почему приложения Windows все еще нуждаются в установке? Почему мы не можем просто перетащить Photoshop в папку OSX и просто заставить ее работать? Кто-нибудь еще фокусируется на портативных приложениях, или я просто зациклен на этом?
Ответы:
Установщики - это результат многолетней эволюции, и немного (упрощенная) история помогает понять, почему они делают то, что делают.
Модель Windows 3.1 предлагала файлы конфигурации в стиле config.ini для каждого приложения с поддержкой общих библиотек, идущих в системные папки, чтобы избежать дублирования и неиспользованного дискового пространства.
Windows 95 представила реестр, позволяющий центральное хранилище для конфигурации приложения, заменяя многие файлы конфигурации. Что еще более важно, конфигурация Windows была сохранена в том же месте.
Реестр стал раздутым из-за того, что приложения не убирали за собой. DLL-ад произошел в результате того, что несколько версий одних и тех же общих библиотек перезаписали друг друга.
.NET представила концепцию app.config (почти ini-файлы отметки 2, на этот раз с немного большей экономией структуры разработчики тратят время на написание парсеров вручную). GAC был представлен версиям совместно используемых сборок в попытке предотвратить DLL Hell.
В Windows XP и, более того, в Vista, Microsoft попыталась определить пространство пользователей как место для хранения пользовательских данных и файлов конфигурации в одном стандартном месте, чтобы обеспечить перемещение профилей и простую миграцию (просто скопировать свой профиль) с приложениями, установленными в Program Files. ,
Так что, я думаю, причина в том, что «приложения в окнах предназначены для жизни в одном месте, их общих зависимостей в другом и пользовательских данных в другом», что в значительной степени противоречит концепции копирования одного места.
... и это прежде, чем вам придется настраивать учетные записи пользователей, а также настраивать и обеспечивать разрешения безопасности, загружать обновления и устанавливать службы Windows ...
xcopy - это «простой случай» и, безусловно, не подходит для всего.
источник
Развертывание XCOPY было объявлено Microsoft , как на пути будущей пару лет назад. Еще ничего :)
Тем временем вас может заинтересовать платформа PortableApps.com.
источник
Отличный вопрос, я задал похожий вопрос о переполнении стека некоторое время назад.
Часто кажется, что ответ «потому что так мы делали это в прошлом». Извините, но это не моет меня.
Несколько других сказали, что главная причина - реестр. Если вы говорите о драйвере устройства или каком-либо другом компоненте COM и т. Д., То да, это может быть необходимо, но не для приложений с графическим интерфейсом, таких как процессоры Word или электронные таблицы.
Вполне возможно написать приложение, которое либо проверяет при запуске необходимые параметры реестра, и запрашивает их у пользователя / использует значения по умолчанию. Или, как это делают многие переносимые приложения, просто дайте пользователю знать, что интеграция с ОС в настоящее время ограничена, поскольку вы работаете в переносном режиме.
Инсталляторы часто также имеют много «знаний» о том, как работает приложение. Затем, когда приложение меняется, вам часто приходится обновлять и программу установки. Это классическая причина ошибок / проблем, которые я видел во время программирования.
Это все подходит для одного размера.
источник
Простой и тупой ответ: это просто вопрос того, кто контролирует. Большинство программного обеспечения в настоящее время разработано корпоративными гигантами для корпоративной или институциональной среды, где пользователям говорят, что делать, вместо того, чтобы указывать своим компьютерам, что делать для них.
Ваш вопрос чрезвычайно важен, потому что он поднимает фундаментальный вопрос об индивидуальных правах и свободах, которые все больше и больше разрушаются не тиранами, как в старых обществах, а корпоративной жадностью и необходимостью немногих контролировать многих.
На самом деле, мы, кажется, забыли, что те же самые люди, которые осуждали тиранию таких гигантов, как IBM, стали современными IBM ... Просто присмотритесь к деловой практике Microsoft, Apple и Adobe, чтобы назвать несколько и прямо сказать мне, что их ограничительные лицензии более благоприятны, чем деловые практики IBM, - тот же IBM, который своей открытостью фактически проложил путь к революции персональных компьютеров ...
Я использовал много автономных, портативных приложений на протяжении многих лет, и они без исключения оказались самыми эффективными, самыми быстрыми и самыми маленькими с точки зрения занимаемой площади и ресурсов, и, наконец, что не менее важно, они не только превосходят свои вирусы аналоги, но в большинстве случаев они также бесплатны.
Настало время для второй революции персональных компьютеров. Повышение мобильности за счет уменьшения раздувания и уточнения места хранения настроек в одной отдельной папке в отдельном физическом месте на материальном физическом носителе - это один шаг в правильном направлении.
источник
Комбинация реестра и хранилища для каждого пользователя. Реестра является важной частью, особенно если ваше приложение COM основе (который требует регистрации, что происходит в реестре). Хранение на пользователя (конфигурации и т. Д.) Также является важным компонентом. Единственный хороший способ сделать это - хранить его в специально разработанных каталогах (см. « Изолированное хранилище» ).
источник
Главным образом из-за реестра Windows - даже если ваши программы находятся в определенном каталоге, настройки часто хранятся в реестре.
Это также может быть связано с тем, что программа помещает файлы в другие каталоги на вашем компьютере, кроме каталога установки (например, system32)
источник
Одним из больших преимуществ для установщиков по сравнению с переносным типом установки Xcopy является самовосстановление.
Приложение, которое использует систему установщика Windows должным образом, будет иметь всю информацию о ней, сохраненную в базе данных установщика Windows на вашем компьютере, а также довольно часто кэш важных частей файлов установки.
Если приложение по какой-то причине ломается (что-то еще удаляет / заменяет файл, реестр поврежден, проблемы с диском, пользователь удаляет ярлык и т. Д.), То, если это «объявленный ярлык», установщик фактически проверяет файлы ключей и ключи при каждом запуске и заменяет, если их нет, или вы можете зайти в «Установка и удаление программ» и нажать «Восстановить» в приложении.
источник
Я думаю, что это частично связано с большим количеством ненужных приложений для Windows. Например, ключи реестра, данные пользователя (/ Users // AppData). Возможно, OSX просто справляется с этим лучше / по-другому.
Опять же, не исключено создание приложений, которые вы можете просто извлечь из архива - я всегда рад, когда это так.
источник
.Net Framework является платформой для включения этого типа функциональности, и в основном используются только установщики, потому что это то, к чему привыкли обычные пользователи. Таким же образом пользователи Mac привыкли копировать файлы в папку «Приложения».
Большинство установщиков просто расширяют файлы в папке Program Files и создают ярлыки. Это скорее пример того, что знают пользователи, и часто проще просто сохранить процесс одинаковым, даже если приложение переносимо.
источник
Некоторые программы требуют, чтобы место установки находилось в реестре, другие могут иметь свои места, жестко запрограммированные в программе (это имело место для perl.exe).
По сути, основная причина - это программисты, которые пошли простым путем и жестко запрограммировали что-то в программах, будь то разделы реестра или фактические жестко заданные пути.
источник
Многие приложения Windows должны использовать системные среды или службы, такие как SQL Server, IIS, WMI, домены безопасности, Active Directory и многие другие. Типичный пользователь может не знать, как их настроить, или даже не иметь к ним доступа.
Такие приложения, как Microsoft Office, не являются отдельными файлами; они содержат десятки файлов, исполняемых файлов, утилит, сервисов, шаблонов, плагинов, драйверов и так далее. Когда вы устанавливаете приложение, вы не можете просто перезаписать все, что использует новое приложение, оно должно соответствовать тому, что уже есть. Установщики Windows делают больше, чем просто копируют файлы, они могут запрашивать системную среду, запускать сценарии и устанавливать службы, а также настраивать компьютер так, как если бы он был администратором.
dbkk101 спрашивает, почему приложения Windows "не могут все просто ладить". Они могут, это то, для чего нужны установщики.
источник
С некоторыми программами установка глупа, но это гораздо больше, чем просто «перетаскивание файла в каталог программ».
По крайней мере, приличный установщик распакует установочный файл и установит соответствующие ярлыки и позволит легко удалить программу, когда она больше не нужна. Я думаю, что распаковка и копирование, вероятно, занимает больше всего времени.
Затем есть общие файлы - это особенно верно в мире Linux, хотя не так много в Windows IMO.
Что наиболее важно, некоторые программы должны быть настроены для машины, а некоторые (я полагаю, по крайней мере) пытаются оптимизировать на основе машины или, по крайней мере, это то, во что верит диалог Adobe.
Кроме того, я никогда не видел причин для установки на отдельный раздел. Вы склонны терять все значения реестра и настройки конфигурации. Плюс, я на самом деле предпочитаю эту потерю, потому что она уменьшает вздутие Windows.
источник