metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-09-29 05:00 pm

Инсталляция окамла под виндой

Занимаюсь типичным местным вудуизмом - ставлю прогу из инсталлятора в виртуальной машине, проверяю, что она вообще работает, а потом пытаюсь ее запустить в стиле "xcopy deployment", т.е. копирую инсталлированную папку программы на другой комп и изучаю, что нужно для запуска.

Вообще подобная практика, конечно, сомнительна, особенно в свете толкаемых [livejournal.com profile] zelanton уверений, что во низкоуровневых внутренностях прикладным программистам разбираться запрещено. Но таким образом я набрал уже приличную коллекцию виндовых (а особенно портированных с линукса) программ, которые переживают без переинсталляций любые пертурбации с компами, переустановку виндов и железа, переезды между разными рабочими местами, носимые винты, итд

Так вот в окамле в таком случае оказалось, что там, мало того что пути пишутся в реестр, так еще и переменная окружения используется для поиска либ. С ходу не вижу, почему бы не сделать при отсутствии оных переменных и ключей реестра использование дефолтных значений вроде "папка_с_exe\..\lib\".
Т.е. что под виндами, что в линуксе авторы софта как-то очень уж надеются на стандартную инсталляцию. В некоторых особо сложных случаях это допустимо, но я обычно стараюсь делать прогу запускаемой, даже если психи ее просто скопировали, так проще жить как самому, так и пользователям.

[identity profile] oldmann.livejournal.com 2010-09-30 05:18 am (UTC)(link)
как минимум с гуём и вводом-выводом перекрываются.
если писать свой гуй и использовать direct hardware access, это уже встроенная система получается, виндовс не нужэн.

[identity profile] gds.livejournal.com 2010-09-30 06:27 am (UTC)(link)
если меняются интерфейсы гуя или ввода-вывода несовместимым для программы образом, нет разницы, куда класть .dll, которые не пересекаются с другими программами (не с ОС) -- всё равно оно поломается, и апгрейд какой-либо другой программы ситуацию не спасёт.