Недавно я был на хабе статья об ошибке установщика Adobe. Меня эта статья тронула, потому что автор, ссылаясь на ошибку, сделал вывод, что даже такие крупные и известные компании, как Adobe, «иногда забывают о простоте установки».
и может «написать программу колоссальной сложности и объёма, но сэкономить на динамическом определении пути установки, реализация которого под силу даже студенту».
Вот мне показалось, что это камень в огород разработчиков установщика Adobe. Поэтому решил написать ответный пост и посмотреть установщики, их цену и пару багов.
Я не имею никакого отношения к Adobe. УПД: Добавил картинку о трудностях локализации))
Из личного опыта.
Мы перенесли InstallSHield 12 с одной машины на другую.
Дело в том, что активация/деактивация InstallSHield 12 осуществляется через Интернет; Следует отметить, что деактивация осуществляется автоматически.
Переустановка заняла месяц, так как не смогли активировать InstallShield на новой машине и получили ошибку, что ключ уже используется на другой.
Переписка со службой поддержки InstallShield продолжалась до тех пор, пока американский коллега нецензурной лексикой не попросил исправить ситуацию в нашу пользу.
В ходе переписки пришла красивая брошюра с картинками, в которой было написано что-то вроде: проблемы с переносом installshield? Купите новую лицензию с более гибкими настройками! А кто виноват в том, что деинсталлятор работает криво? Разработчик? Совет по этой проблеме: нужно нагрубить, если того требует ситуация, громко заявить, что лицензия стоит больших денег, а пользы от нее ноль.
Или купить новую лицензию, если условия вас устраивают.
Мультиплатформенность и нативность.
Программы для создания инсталляторов я для краткости буду называть «IDE», хотя это не лучшее название.
IDE можно разделить на два типа: мультиплатформенные и нативные.
Мультиплатформенность — один проект для нескольких платформ.
Это такие IDE, как InstallAnywhere, InstallBuilder, InstallShield Multiplatform, Install4j. В таблице 1 указаны цены.
InstallAnywhere 2009 Enterprise/Standard Edition | $4,499.00/$1,999.00 | shop.flexerasoftware.com/product/fullproducts.asp |
InstallBuilder Enterprise/Профессионал | $1,995/ $1,395 | installbuilder.bitrock.com/purchase.html |
InstallShield Мультиплатформенный | - | Снято с производства.
|
Стандартная лицензия Install4j | $1199 | www.ej-technologies.com/buy/install4j/singleЭcurrency=USD |
Чаще всего они пишутся для семейства Windows. Например, InstallShield 2010, InnoSetup, InstallAware и т. д. В таблице 2 указаны цены.
InstallShield 2010 Профессионал/Премьер | $1,999.00/$3,999.00 | shop.flexerasoftware.com/product/fullproducts.asp |
Настройка Инно | бесплатно | www.jrsoftware.org/isinfo.php |
InstallAvare Разработчик/Администратор студии | $1499/$2999 | www.cleverbridge.com/client/185/index.htmlЭstudio |
Хотя это вовсе не требует усилий разработчиков ни того, ни другого.
Из цен можно сделать вывод, что монтажники стоят недешево.
Я уверен, что написать собственную IDE и создать на ее основе инсталлятор будет в разы дороже.
Ошибки установщика.
Начнем с Windows. 1. Большинство (и в случае с Adobe) установок для Windows производятся на основе Windows Installer (.
msi), он, как и любой другой продукт, имеет свои ошибки.
2. При разработке установщика используется IDE; как и любой другой продукт, он имеет свои ошибки.
3. Инсталлятор делает человек и он обязательно где-нибудь оставит пару багов.
Признаюсь, я делал это не раз.
4. лицензии есть, а это очень важный вопрос! Конечно не для всех :) Аналогичная ситуация и с мультиплатформенными установщиками.
Как видите, не все ошибки в установщиках указывают на разработчика.
Давайте рассмотрим в качестве примера пару ошибок InstallAnywhere 2008, так как я сейчас над этим работаю.
У меня версия Enterprise, она стоит около $4500 .
Это IDE для создания установщиков Java-проектов.
Хорошая новость в том, что при разработке установщика вы можете использовать Java в полной мере :) На рисунке показан пример стандартного диалога, и при вводе текста в IDE происходит прокрутка.
Где можно встать на грабли? Если в текст динамически вставляется какой-то путь и он очень длинный для пользователя, то такой баг может пройти мимо разработчика и тестировщиков.
У кого кривые руки? На разработчике установщика тоже есть доля вины.
Есть действия, которые не видны пользователю, они запускают .
bat файлы или что-то подобное.
Естественно, путь к .
bat-файлу необходимо заключать в кавычки в случае пробелов.
IDE явно удаляет последние кавычки при сохранении.
Можно брать грабли, если разработчикам и тестировщикам встречаются пути без пробелов, а у пользователя есть заветное место.
Если предыдущий баг был косметическим, то батник обязательно запустит что-то необходимое.
У кого кривые руки? На разработчике установщика тоже есть доля вины.
Существуют действия, которые запускают код разработчика, упакованный в файлы .
jar. Если файл .
jar имеет папку META-INF, код будет игнорироваться.
Довольно странно, но эта возможность описана в документации.
адское око напомнил баг о трудностях локализации.
На картинке перевод «Удаление завершено» вместо «Удалить полностью»
Серьезная ошибка, распространяющаяся от версии к версии в InstallAnywhere. Для записи установленного программного обеспечения используется файл .
xml; его можно найти так: «C:\Program Files\Zero G Registry\.
com.zerog.registry.xml».
Дело в том, что вход в этот реестр происходит после того, как пользователь нажал кнопку «ГОТОВО» в последнем диалоге установки/удаления, поэтому он может спокойно перезагрузить компьютер, запустить другой установщик или что-то подобное.
Самое обидное, что изменить такое поведение невозможно.
Проблемы, которые при этом возникают: 1. есть надпись, что программа установлена, но путь к ней пустой.
2. Получаем ошибку чтения файла, установщик тихо говорит "Хм, файл реестра какой-то кривой, сделаю новый" и создаёт его :) Чтобы исправить ситуацию, я несколько раз удалял этот файл на своей машине во время разработки и тестирования.
Вечный вопрос: что делать? Вести себя так, как будто ничего не произошло? Что делать, если службы крутятся, или они существуют, но не работают, или в проекте есть конфликтующие функции? Не все файлы копируются в каталог установки.
Здесь нет четкого ответа для разработчиков; нужно исходить из требований проекта и руководства.
Другой вопрос, почему для хранения данных об установленных программах в случае InstallAnywhere используется xml-файл или SQLite в случае Adobe? Это сделано для обеспечения единообразия интерфейса при установке на разных платформах.
Я более чем уверен, что проблема с установщиком продуктов Adobe упирается в вопросы, связанные с лицензией, внутренним конфликтом функций и компонентов или чем-то подобным.
И это не имеет ничего общего с профессионализмом разработчиков установщика.
Теги: #установщик #ошибки #adobe #InstallAnywhere #installshield #Chulan
-
Студенты Поделятся Своими Идеями С Гейтсом
19 Oct, 24 -
Немного О Производительности Снимков Qemu
19 Oct, 24 -
Хроника Зимних Олимпийских Игр.
19 Oct, 24 -
Какого Цвета Металлургия?
19 Oct, 24 -
На Каком Языке Вы Бы Написали Матрицу?
19 Oct, 24 -
Прогнозы — Дело Неблагодарное
19 Oct, 24