Установщик Adobe требует от своих пользователей знания SQLite

Осмелюсь опубликовать сей топик в блоге «Разработка», дабы обратить большее внимание разработчиков на то, какими инсталляторами они снабжают свои продукты.

Помните — человека встречают по одежке, книгу — по обложке, а программу — по инсталлятору. Удобство установки, переустановки и удаления программы не менее важно чем удобство ее использования.



Так вот, оказывается, что множество людей сталкиваются с одной и той же ошибкой, переустанавливая продукты Adobe:
«Введите (название продукта) чтобы продолжить установку».

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

А ответ, между тем, столь необычен, что более чем заслуживает внимания.



Предыстория


Жил был программист, был у него Компьютер. Однажды теплым осенним вечером к ним пришел Глюк (нет, не тот, что композитор, а просто Глюк) и испортил файлы небезызвестной Программы от Adobe.

«Не беда! Вот он, дистрибутив!» — подумал программист, зайдя на сетевое хранилище, где действительно был дистрибутив этой Программы.

Но не смог программист исполнить задуманное. Злобная Программа просила запустить ее именно с того места, с которого была запущена 2 года назад, когда эту Программу впервые устанавливали на Компьютере.

История


«И мы не лыком шиты», — подумал программист, бодро открыл regedit и забил в поиск старый путь установки, дабы найти его и исправить, вразумив тем самым упрямую Программу.

— Нашел! — радостно отрапортовал regedit, указав на более чем 50 упоминаний старого установочного пути. — Заменять?
— Конечно!

Довольный своей сообразительностью, программист запустил заново установщик Программы, но она была неумолима. Не захотела она ни пол-царства на жестком диске, ни половину памяти оперативной.

— Верни меня на то место, откуда ставил и точка! — говорила строптивая Программа.
— Да как же я тебя туда верну, если мертв тот сервер уже давно… — сокрушенно думал программист.

10…20…30 минут изучения Гугла не принесли никаких результатов… И стала уже закрадываться мысль сдаться и убить программу, оставив попытки восстановить ее, но не достойно русского программиста действие это.

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

Нашел он файл caps.db в папке Common Files\Adobe\caps\ со строчкою вожделенной. Но бинарного формата файл был тот. Не успев опечалиться, программист увидел в начале файла спасительное «SQLite format 3», открыл SQLite Manager и обрадовался, просветленный…

База данных

Выполнив несложный запрос
UPDATE "collection_data" SET "value" = \\NewServer\Software\Adobe CS3\' WHERE `rowid` = 11

* This source code was highlighted with Source Code Highlighter.

укратил он упрямую Программу.

Сдалась она программисту побежденная и восстановила файлы свои.

Мораль сей басни…


Даже мэтры дизайна забывают, порой, об удобстве установки. Несмотря на то, что установщик богат возможностями как по модификации программы, так и по восстановлению, его использование становится невозможным благодаря «фиче», которую Компания тянет за собой из продукта в продукт (включая все продукты серий CS3 и CS4).

Нет ни одной существенной причины привязывать установку к конкретному пути.

Возможно, так сделано потому, что так проще.

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

P.S: первый скриншот позаимствован из открытых источников. Сообщения об ошибке в различных продуктах линеек CS3 и CS4 идентичны. Тестировалось на линейке CS3. Информация о CS4 взята из открытых источников.

Спасибо Mithgol за возможность опубликовать сей топик вне песочницы. Рад, что вам понравилось.

Если вы хотите, чтобы этот топик появился в тематическом разделе, то вы знаете что делать:-)
_________
Текст подготовлен в ХабраРедакторе
+112
28 октября 2009, 13:07
21

комментарии (32)

0
infom #
Меня интересует вопрос каким образом вы нашли этот самый caps.db, неужели формат «SQLite format 3» хранит значения полей в таком простом виде? А как-же сжатие, разграничения доступа и т.д. и т.п.?
+2
david_mz #
SQLite хранит данные «как есть» и не поддерживает разграничение доступа и пр.
+7
alexey_uzhva #
SQLite не рассчитан на разграничение доступа и т.д.

Это встраиваемая СУБД, которая не поддерживает эти вещи, т.к. предназначена для совершенно другого класса задач.

Область применения SQLite — это встраиваемые в приложения БД, когда приложению нужно хранить некоторый массив данных, однако оно не может требовать от пользователя установки полноценной СУБД или драйверов.

Кроме того, SQLite кроссплатформенна и потому пользуется большой популярностью как у разработчиков *nix софта (взять хотя бы тот же Amarok), так и смартфонов (на некоторых linux-платформах SQLite используется для хранения контакт-листа).
+2
Yak52 #
И не Linux платформах тоже, например на iPhone.
+14
web4_0 #
Сия басня по нраву мне пришлась.
–1
Kain_Haart #
За информацию — плюс
За басенно-сказочный стиль изложения — минус %)
+3
alexey_uzhva #
Этот топик басня не только снаружи.

Он не учит созданию инсталляторов. На то есть много способов, плохих и хороших, но это была бы тема отдельно беседы.

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

Но, поверьте, смысл здесь очень-даже настоящий:)
+6
olyapka #
а мне интересно было читать :) я не программист, а просто юзер, так что стиль изложения наоборот плюс, заодно расширила свой кругозор
–2
Kain_Haart #
В таком случае (интересно насколько это энергозатратно?) можно было бы изложить информацию сжато, а ниже, для любителей фана — сказку…
0
alexey_uzhva #
Сжато она изложена в первых двух абзацах.
+10
Mephistophele #
Странно, у меня таких «подводных граблей» не возникало.
ОФФ: Читал статью, не мог отделаться от ощущения, что писал Mithgol. Ошибся, но без него не обошлось :)
+4
Goodkat #
Похоже, это ученик Мицгола, сам Мицгол складнее пишет :)
+7
Mithgol #
Вы когда-нибудь видели, чтобы Mithgol не ставил точки над «ё»?
+7
pepelsbey #
Мицгол надкусил мозг автора «за возможность опубликовать сей топик вне песочницы» — отсюда этот нечитаемый издевательский слог. НЛО на вас нет (
0
olexandr17 #
мегареспект за то, что докопались! в закладки, потому как сталкивался как-то…
0
tick #
99,99% пользователей (и 78% программистов в том числе) поступили бы в подобной ситуации элементарным способом — удалить программу, удалить файлы на диске, удалить ветку реестра.

с вероятностью 95% после этого инсталлятор бы запустился без глупых вопросов.

в крайнем случае — переставили бы винду 40% программистов и 80% пользователей.
+1
david_mz #
Папку Common Files\Adobe\caps\ ещё додуматься найти надо… Хотя вариант с переформатрованием винчестера, конечно, безотказен.
0
trisch #
какие то у вас проценты не те. да и рядовой пользователь даже не знает, что такое реестр, не говоря уже о том, кам что-то удалить :)
а переставлять винду из-за такого — это вообще жестко %)
+14
non7top #
эх, как же хорошо что умные люди придумали rpm, deb и прочую лапутень лишив простых пользователей сомнительного удовольствия по знакомству с инсталяторами.
0
dime #
>лень присуща даже таким большим компаниям как Adobe
Да это традиция такая у а адобе… Если поставить программу, то, она хороша и даже работает, но вот способ поставить и заставить таки заработать, если конфигурация отличается от голая_ВинХР + работа_локально_админом, иногда бывает настолько заковыристым… :(
+3
MihallicA #
Сдается мне, что в Штатах объединенных Америки взяли бы автора за ядра за инжиниринг реверсный в рамках DMCA поганого.
+3
alexey_uzhva #
Порадуемся что мы не в штатах:)
–7
vilgeforce #
Зочод! Адобы еще раз доказали, что кросавчеги они почище Мелкого & Мягкого! :-)
НЛО прилетело и опубликовало эту надпись здесь
+1
egorinsk #
Виндовые инсталляторы вообще любят бессмысленные ошибки, например «Не удалось установить iKernel» — оказыается какая-то экзотическая служба (DCOMLaunch вроде) не был запущена, и т.д. Сидишь, как идиот, с ProcMon, который IPC-взаимодейстивие все равно не показывает, и гадаешь, почему не ставится.
0
apla #
исходя из того, что конкурентов у adobe в общем–то и нет, особенно если рассматривать adobe master collection, то инсталляторы у них могут быть какие угодно. что и демонстрирует автор.

описанная проблема не одинока в инсталляторах adobe. там у них еще, как минимум, есть волшебная ошибка «150 30» в photoshop, которую инсталлятор не может исправить, несмотря на то, что именно инсталлятор должен помочь, судя по тексту ошибки
0
AlexcYeCu #
Хех, установщик Adobe Flex Builder под linux тоже вызывает сильные эмоции.
0
DimonZ #
Отвратительно! Это же просто кошмар какой-то!!! Самая страшная бага, которую когда-либо допускали разработчики! Нужно срочно всех казнить.
–1
nerezus #
Списибо огромное. У меня даже через удаление не выходило, а теперь сработало )
0
alexey_uzhva #
Пожалуйста :-)
0
demongloom #
А еще, есть очень классная фишка при установке фотошопа (кс4) на макось. Если у вас системный диск с чувствительный к регистру файловой системой, то фотошопа вы не установите, потому что так вот написан фотошоп, не различает регистра. Гугль полон лучей поноса в сторону адоба по этому поводу, но решение — только переформатирование, что весьма неприятно.
0
valin #
возникала такая проблема, решалось проще- с dvd копирую на хард (в любую папку) и запускаю уже оттуда.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.