Упаковка софта

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Упаковка софта

Сообщение MIT » 18.04.2009 (Сб) 22:42

Я (да наверно и не только я) зачастую сталкиваюсь с так называемыми Portable-версиями (сборками) программ. Суть таких сборок - запихнуть все файлы в один exe-шник и заменить программе пути ко всем временным папкам (а также AppData, DaS, LS и т.д.).
В качестве примера приведу одну из самых мной часто используемых сборок - Dreamweaver 8 - 160 метровый exe-шник, который хранит все создаваемые данные рядом с собой, в отдельной папке. Также сталкивался с Illusrtator`ом CS3 (метров 300) и пр.
Вопрос: с помощью чего упаковываются программы, что в них изменяется, и что они сами (программы) "думают", оказавшись в таком "положении"?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Упаковка софта

Сообщение iGrok » 18.04.2009 (Сб) 23:59

MIT писал(а):Вопрос: с помощью чего упаковываются программы...

VMware ThinApp Virtualization Studio. Она же THInstall.
И её аналоги.

Сами программы ничего плохого не думают - для них всё, как обычно.
label:
cli
jmp label

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Упаковка софта

Сообщение Хакер » 19.04.2009 (Вс) 10:57

Бред это.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Упаковка софта

Сообщение MIT » 19.04.2009 (Вс) 11:04

Что "это"?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Упаковка софта

Сообщение Williams » 19.04.2009 (Вс) 11:06

MIT писал(а):Что "это"?


Видимо виртуализация софта :)
И вы думаете, что вас оставят в живых после прочтения этого поста?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Упаковка софта

Сообщение Хакер » 19.04.2009 (Вс) 11:10

Упаковка всего в один файл.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Упаковка софта

Сообщение iGrok » 19.04.2009 (Вс) 12:50

Хакер писал(а):Упаковка всего в один файл.

Хакер, там никто ничего в один файл не упаковывает.
Технология примерно такая:
1) Все нужные файлы + ветки реестра(в своём формате) скидываются в одну папку.
2) Для софта делается загрузчик, который перехватывает его обращения к ФС и реестру.

Если там всё запихнуто в один файл, значит оно при запуске распаковывается.
label:
cli
jmp label

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Упаковка софта

Сообщение Хакер » 19.04.2009 (Вс) 12:52

Нё всё равно ерунда это.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Упаковка софта

Сообщение iGrok » 19.04.2009 (Вс) 12:58

Хакер писал(а):Нё всё равно ерунда это.

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

Но вот скажи, чем конкретно этот вариант тебе не нравится?
Для случае с упаковкой библиотеки в тело экзешника я аргументацию помню, принимаю и полностью согласен. А тут-то что?
label:
cli
jmp label

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Упаковка софта

Сообщение Хакер » 19.04.2009 (Вс) 13:09

Приложение имеет в реестре некий ключ, который создаётся единожды (например при первом запуске приложения на машине). Этот ключ глобален для всей машины (создаётся в HKLM) и он специфичен для конркетно этой машины. На другой машине создался бы ключ с другим значением.

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

На самом деле, мысль можно продолжить и сказать: не стоит эмулировать какую-то часть среды. Если уж эмулировать, то всю среду целиком.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Упаковка софта

Сообщение alibek » 19.04.2009 (Вс) 13:13

Подобный способ реализации portable apps — бред.
Зачем мне 100-метровый стартер, который висит в памяти, распаковывает/запаковывает используемые ресурсы и перехватывает обращения основного приложения?
Самая грамотная реализация портируемых приложений, которую я видел — это µTorrent. Если программа находит в своем каталоге файл settings.dat, то она считает, что все используемые ресурсы лежат в каталоге самой программы. Если этого файла нет, она считает, что работает в обычном режиме и настройки сохраняет в профиле пользователя (Application Data). Т.е. чтобы сделать программу портируемой, достаточно создать в каталоге программы пустой файл settings.dat.
Lasciate ogni speranza, voi ch'entrate.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Упаковка софта

Сообщение Debugger » 19.04.2009 (Вс) 18:43

Бред это.

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

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Упаковка софта

Сообщение jangle » 20.04.2009 (Пн) 9:46

MIT писал(а):Я (да наверно и не только я) зачастую сталкиваюсь с так называемыми Portable-версиями (сборками) программ. Суть таких сборок - запихнуть все файлы в один exe-шник и заменить программе пути ко всем временным папкам (а также AppData, DaS, LS и т.д.).
В качестве примера приведу одну из самых мной часто используемых сборок - Dreamweaver 8 - 160 метровый exe-шник, который хранит все создаваемые данные рядом с собой, в отдельной папке. Также сталкивался с Illusrtator`ом CS3 (метров 300) и пр.
Вопрос: с помощью чего упаковываются программы, что в них изменяется, и что они сами (программы) "думают", оказавшись в таком "положении"?


Тоже делал такие штуки, например тут viewtopic.php?f=15&t=39312
rar.exe и unrar.dll запихнуты в ActiveX DLL. Причем unrar запускается прямо из памяти, без сохранения во временную папку.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Упаковка софта

Сообщение jangle » 20.04.2009 (Пн) 9:51

alibek писал(а):Подобный способ реализации portable apps — бред.
Зачем мне 100-метровый стартер, который висит в памяти, распаковывает/запаковывает используемые ресурсы и перехватывает обращения основного приложения?


Если EXE имеет размер 100 мбайт, это вовсе не значит, что все 100 мбайт разом грузятся в память. Подкачиваются только те страницы, который в данный момент необходимы. Однакое если этот EXE упаковать пакером типа UPX или ASPack, то действительно все 100 мегов будут в памяти.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Упаковка софта

Сообщение MIT » 20.04.2009 (Пн) 10:50

jangle писал(а):Тоже делал такие штуки, например тут viewtopic.php?f=15&t=39312rar.exe и unrar.dll запихнуты в ActiveX DLL
Нет, тут более обширная задача стоит, в которую входит "виртуальный реестр" и свои собственные (лежащие рядом) папки Temp, DaS, AD и т.п..
jangle писал(а):Если EXE имеет размер 100 мбайт, это вовсе не значит, что все 100 мбайт разом грузятся в память.
300 метровый Illustrator в памяти занимает изначально порядка 100
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: Упаковка софта

Сообщение VBTerminator » 20.04.2009 (Пн) 17:38

ИМХО, portable - это программа, не использующая какие-либо пользовательские библиотеки из отдельных файлов (лучше вставить код из этих библиотек к себе в проект) и пишущая все свои настройки в файл, находящийся в "своей" папке, например, settings.ini.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Упаковка софта

Сообщение MIT » 20.04.2009 (Пн) 18:01

Вопрос касается не только своего софта, но и стороннего, который может быть необходимость носить с собой (это, конечно, не ко всем программам относится)
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Упаковка софта

Сообщение iGrok » 20.04.2009 (Пн) 19:28

Гм. Свой писать лучше действительно по другому. Эти программы предназначены именно для упаковки софтины, изначально не разрабатывавшейся, как portable.
label:
cli
jmp label


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 69

    TopList  
cron