42

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

Я поместил их в папку «Программы» на диске, отдельном от моего раздела Windows, поэтому, когда я переустанавливаю, все мои приложения доступны с минимальными усилиями, а с другой стороны, я получаю хорошую чистую настройку.

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

Почему приложения Windows все еще нуждаются в установке? Почему мы не можем просто перетащить Photoshop в папку OSX и просто заставить ее работать? Кто-нибудь еще фокусируется на портативных приложениях, или я просто зациклен на этом?

12 ответов12

34

Установщики - это результат многолетней эволюции, и немного (упрощенная) история помогает понять, почему они делают то, что делают.

Модель 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 - это "простой случай" и, безусловно, не подходит для всего.

12

Развертывание XCOPY было объявлено Microsoft , как путь в будущее пару лет назад. Еще ничего :)

Тем временем вас может заинтересовать платформа PortableApps.com.

7

Отличный вопрос, я задал похожий вопрос о переполнении стека некоторое время назад.

Часто кажется, что ответ «потому что так мы делали это в прошлом». Извините, но это не моет меня.

Несколько других сказали, что главная причина - реестр. Если вы говорите о драйвере устройства или каком-либо другом компоненте COM и т.д., То да, это может быть необходимо, но не для приложений с графическим интерфейсом, таких как процессоры Word или электронные таблицы.

Вполне возможно написать приложение, которое либо проверяет при запуске необходимые параметры реестра, и запрашивает их у пользователя / использует значения по умолчанию. Или, как делают многие переносимые приложения, просто дайте пользователю знать, что интеграция с ОС в настоящее время ограничена, поскольку вы работаете в переносном режиме.

Инсталляторы часто также имеют много "знаний" о том, как работает приложение. Затем, когда приложение меняется, вам часто приходится обновлять и программу установки. Это классическая причина ошибок / проблем, которые я видел во время программирования.

Это все подходит под один размер.

6

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

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

На самом деле, мы, кажется, забыли, что те же самые люди, которые осуждали тиранию таких гигантов, как IBM, стали IBM сегодняшнего дня ... Достаточно взглянуть на деловую практику Microsoft, Apple и Adobe, чтобы назвать некоторые из них, и прямо сказать мне, что их ограничительные лицензии более благоприятны, чем деловые практики IBM, - тот же IBM, который своей открытостью фактически возглавил путь к революции персональных компьютеров ...

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

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

5

Комбинация реестра и хранилища на пользователя. Реестр является важной частью, особенно если ваше приложение основано на COM (что требует регистрации, что происходит в реестре). Хранение на пользователя (конфигурации и т.д.) Также является важным компонентом. Единственный хороший способ сделать это - хранить его в специально разработанных каталогах (см. « Изолированное хранилище»).

4

Главным образом из-за реестра Windows - даже если ваши программы находятся в определенном каталоге, настройки часто хранятся в реестре.

Это также может быть связано с тем, что программа помещает файлы в другие каталоги вашего компьютера, кроме каталога установки (например, system32)

3

Одним из больших преимуществ для установщиков по сравнению с переносным типом установки Xcopy является самовосстановление.

Приложение, которое использует систему установщика Windows должным образом, будет иметь все виды информации о ней, сохраненной в базе данных установщика Windows на вашем компьютере, а также довольно часто кэш важных частей файлов установки.

Если приложение по какой-то причине ломается (что-то еще удаляет / заменяет файл, реестр поврежден, проблемы с диском, пользователь удаляет ярлык и т.д.), То, если это "объявленный ярлык", установщик фактически проверяет файлы ключей и ключи при каждом запуске и заменяет их, если они отсутствуют, или вы можете зайти в "Установка и удаление программ" и нажать "Восстановить" в приложении.

2

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

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

dbkk101 спрашивает, почему приложения Windows "не могут все просто ладить". Они могут, это то, для чего нужны установщики.

2

Я думаю, что это частично связано с большим количеством ненужных приложений для Windows. Например, ключи реестра, данные пользователя (/Users//AppData). Возможно, OSX просто справляется с этим лучше / по-другому.

Опять же, не исключено создание приложений, которые вы можете просто извлечь из архива - я всегда рад, когда это так.

2

.Net Framework является платформой для включения этого типа функциональности, и в основном используются только установщики, потому что это то, к чему привыкли обычные пользователи. Таким же образом пользователи Mac привыкли копировать файлы в папку «Приложения».

Большинство установщиков просто расширяют файлы в папке Program Files и создают ярлыки. Это в большей степени тот случай, когда пользователи знают, и часто проще просто сохранить процесс одинаковым, даже если приложение переносимо.

2

С некоторыми программами установка глупа, но это гораздо больше, чем просто "перетаскивание файла в каталог программ".

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

Затем есть общие файлы - это особенно верно в мире Linux, хотя не так много в Windows IMO.

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

Также я никогда не видел причин для установки на отдельный раздел. Вы склонны терять все значения реестра и настройки конфигурации. Кроме того, я на самом деле предпочитаю эту потерю, потому что это уменьшает вздутие Windows.

2

Некоторые программы требуют, чтобы место установки находилось в реестре, другие могут иметь свои местоположения, жестко запрограммированные в программе (это имело место для perl.exe).

В основном, основная причина - программисты, которые пошли простым путем и жестко запрограммировали что-то в программах, либо ключи реестра, либо фактические жестко запрограммированные пути.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .