На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Собственный инсталлер..?
    Вот, искал я как-то подходящий для моих задач инсталлер. Один хреновый, другой хуже, и все небесплатны (для shareware/commercical). И была у меня мысль - а что, если написать subj? Без особых наворотов, но чтобы open-source, и absolutely free. Т.е. суть его - хранение программы в одном файле, и установка её в место, удобное пользователю. Может, даже не используя сжатия (или стандартные алгоритмы).

    Вот и интересно мне - что думаете, all - целесообразно это или нет?
      написать-то можно, да и нужно, но ведь есть free Setup Generator - классая вещь!
        Была у меня такая задумка... А чего? Чем мы хуже других?
        Только на чем писать будем? На дельфе?
          На чём угодно - но API :))

          Инсталлер, который сам за 300к весит - ну нафиг:)
            Мои соображения по поводу того, что должен уметь инсталлятор:

            - Создавать один-единственный ехе-файл.
            - Сам инсталлятор (не упаковщик) должен весить как можно меньше.
            - Инсталлятор должен уметь помещать файловую структуру в указанную юзером папку, а также в нужную директорию относительно \%windir\% (dll-ки).
            - Инсталлятор не должен уметь принимать sn (проверять его, итд) - это лучше оставить на совести инсталлируемого ПО.

            Есть что добавить/возразить?:)
              Добавить uninstall и возможность корректной установки поверх предыдущей версии.
                Т.е. установка поверх должна удалить лишние файлы (которых в новой нет), и заменить старые/добавить новые?

                Критерии корректности?:)
                  Ну например, чтоб автор мог задать действия инсталлера в такой ситуации.
                  Что-нить типа
                  ExpandedWrap disabled
                    <br>if ( exist(somefile) )<br>  if ( date(somefile) < date(newfile) ) // или version(somefile)<br>    overwrite(somefile);<br>  else<br>...<br>...<br>

                  Хотя, ээ, это вроде можно .inf файлом задать как и uninstall
                    + инсталятор должен уметь помещать в реестр заданные ключи
                      А почему нас сюда передвинули? Нас надо в "Наши проекты" ;D
                        Куда передвинули? 8) Я во флейме и создал (сначала определиться, нужная это идея, или очередную чушь придумал;)...

                        2mods - давайте нас в Проекты:)


                        Насчёт ключей - я не уверен, что это задача именно инсталлера. Так что убедите меня (в какой ситуации это может потребоваться:)..
                          Цитата Shiru_Otaku, 20.03.03, 02:13:20
                          Так что убедите меня (в какой ситуации это может потребоваться:)..

                          Поверь... :)

                          При инсталле ставЮца дефолтовские настройки, прописываюЦа библиотеки/шрифты/еще что-нить... Так что без них ни-ни...
                            ОК:)

                            Теперь о такой мелочи. Как лучше планировать инсталлер (тот, что депакер) - он сначала распаковывает из одного большого файла содержимое в темп, а потом переносит по местам согласно скрипту, либо что-то ещё?
                              Предлагаю так: в "единственном" exe'шнике запаковываеться следующее:
                              1. Файлы программы
                              2. Собственно, инсталлер
                              3. Скрипты по установке программы

                              При запуске во временную директорию распаковываються пункты 1 и 3, после чего запускается инсталлер, которому в параметре передаеться где искать "единственный" exe'шник. А уже инсталлер, выполняя скрипт, распаковывает из архива-exe'шника программные файлы.
                                почему exe'шник должен быть единственным ?
                                  Цитата
                                  почему exe'шник должен быть единственным ?
                                  Действительно. Это бы на много упростило коддинг! ;)
                                    нет. дело не в этом... (я давно хотел написать собственный инсталлер. давайте придумаем нормальное обоснование тому -  почему exe'шник долже быть один) насколько это удобно etc...
                                    я сейчас предлагаю разработать концепцию внутреннего исполняемого скрита который позволял бы работать с типизироваными и нетипизироваными файлами скажем... etc
                                      Один ексешник - монно легко скачать из ИНета
                                        Да, мои соображения основываются на мысли последнего поста (один exe не нужно дополнительно класть в какой-либо архив, чтобы выложить в инет).

                                        2IX0DeS

                                        Начинай излагать свои идеи о скрипте:)
                                          Кстати, о хранении данных вместе с ехе-файлом. Я, честно говоря, не знаю, как их к нему присобачить:) Есть идеи, что: берём ехе депакера, берём все нужные нам файлы, собираем их в один большой файл (скажем, грузим в массив в памяти один за другим, потом записываем). Депакер знает, что сам он определённой длины. Делаем fseek на эту длину от начала файла-дистрибутива, и читаем оттуда (там можно разместить что-то типа каталога приаттаченных файлов, чтобы знать, что и по какому смещению лежит).

                                          Но нет уверенности, что ОС, загружая такой ехе, не загрузит и лишние данные (те, что мы приклеили;)...

                                          Вобщем, скажите, если чушь спорол:)
                                            ага полную...  ;D exe'шник под виндой можно создать хоть 4хГиговый  ;D
                                            суть в том что если будут несколько файлов то имхо это будет быстрее работать нежели чем с одним, другое дело если из осоновного екзешника извлекать файлы(файлы ессено хранить в ресурсах причем желательно чемнить упакованые) и только потом начинать что-то с ними делать.
                                            по поводу скрипта.
                                            думаю что надо сделать подобие некого языка (допустим C или Asm'а) в котором можно было бы исползовать условные конструкции(типа if..then..else),конструкции циклов etc.
                                            потом неплохо было бы реализовать в нем crypt-алгоритм скажем DES(не спрашивайте зачем... надо!  ;D )
                                            потом надо придумать какой архиватор использовать. Можно свой написать а можно скажем тот же zip юзать... вот так.  ;)
                                            Сообщение отредактировано: IX0DeS -
                                              Цитата
                                              Но нет уверенности, что ОС, загружая такой ехе, не загрузит и лишние данные
                                              Есть! ОС дойдет до команды выхода и на этом прекратит выполнение.
                                              А насчет тормозов при извлечении. Так во временную директорию, как я сказал выше, не обязательно извлекать файлы устанавливаемой программы.

                                              ЗЫ Имхо, легче использовать в качестве архиватора zip.
                                                Цитата Testudo, 21.03.03, 11:41:04

                                                Есть! ОС дойдет до команды выхода и на этом прекратит выполнение.

                                                ... тут к сожалению или к счастью я не понимаю о чем говорят люди...
                                                Цитата

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

                                                а что от этого изменится ? если в параметрах CreateFile будет стоят current directory или \%temp\% если мы будем использовать несколько файлов мы не будем тратить время на _извлечение_ как ты себе представляешь скажем инсталяху какойнить Need For Speed в виде одного файла :) ?
                                                Цитата

                                                ЗЫ Имхо, легче использовать в качестве архиватора zip.

                                                гм... тут уже стоит определится на чем писать потому как дело пахнет уже реализацией...
                                                зы
                                                да совсем забыл... я планирую писать инсталлер без gui :)
                                                  Цитата
                                                  я планирую писать инсталлер без gui
                                                  Это как? :o Для работы из командной строки?
                                                  Хотя, это не важно. Ведь такой инсталлер будет ядром для "графического"... ;D
                                                    угу... в иделе оно так и задумывалось
                                                    engine + shell. вот engine я уже начал писать думаю через неделю другую фрмлю это все по уму
                                                      Народ, вы чё паритесь? :D
                                                      Есть же InnoSetup, причём полностью свободный и с исходниками на Delphi.
                                                      Создаёт 1 файл (чистый инсталлер весит менее 300кб). Жмёт в zip, bzip. Имеет свой скрипт.
                                                      Если уж хочется поморочиться, начните изучать его исходники.
                                                      Я полтора года пользую только инносетап. Есть и русские версии, включая сам IDE.
                                                      Так что, чем тратить время на изобретение колеса, лучше начните делать нормальный визуальный генератор скриптов для InnoSetup, которого так я и не видел пока. Хотя и скрипт сам по себе не плох. Или плагинную систему для инносетапа, чтоб довешивать функциональность инсталлера за счёт самописных dll.
                                                        знаем мы это дело.. фу какая бяка.... дельфи бррр....
                                                        ну ладно плагины - dll, разницы нет на чем писать... но копаться в делфёвых исходниках я не буду. тем более инсталлер называется Inno а не SourceRU... вот и не убивайте во мне изобретателя  :P
                                                          Цитата
                                                          Народ, вы чё паритесь?
                                                          Ну прибило нас - че нельзя попариться? ;D
                                                          Так, люди! Два вопроса:
                                                          1. На чем писать будем?
                                                          2. Что у нас еще по концепции осталось невыясненного?
                                                            Писать и определяться с языком определённо рано;) Нет ни полного понимания концепции, ни модели скрипта, ни ТЗ (без него дописать что-либо маловероятно:)..

                                                            Цитата
                                                            (IX0DeS) другое дело если из осоновного екзешника извлекать файлы(файлы ессено хранить в ресурсах причем желательно чемнить упакованые) и только потом начинать что-то с ними делать.


                                                            Ага. Извлекаем по одному, прямо в место, указанное скриптом;) Если упакованные - извлекаем по одному в temp, депачим в нужное место...

                                                            Цитата
                                                            (IX0DeS) думаю что надо сделать подобие некого языка (допустим C или Asm'а) в котором можно было бы исползовать условные конструкции(типа if..then..else),конструкции циклов etc. потом неплохо было бы реализовать в нем crypt-алгоритм скажем DES(не спрашивайте зачем... надо!


                                                            Это излишне всё усложнит:) Скрипт лучше сделать предельно простым. Писать-же целый язык - это лишний гемморой, да и вес депакера станет не хуже InnoSetup;)

                                                            Цитата
                                                            (IX0DeS) потом надо придумать какой архиватор использовать. Можно свой написать а можно скажем тот же zip юзать... вот так.


                                                            Свой - мало смысла. Он будет всё равно хуже существующих (писали, знаем;). Чужой - если знаешь удовлетворяющий следующим требованиям (или если zip подходит под них):

                                                            - Free & Opensource
                                                            - Малый размер кода депакера (очень малый)
                                                            - Достаточная эффективность (не хуже ZIP)

                                                            Тогда говори:)

                                                            Цитата
                                                            (Testudo) Есть! ОС дойдет до команды выхода и на этом прекратит выполнение.


                                                            А не загрузится-ли в память лишняя байда? Если у нас ехе с приклеенными данными будет весить метров 300 - не загрузятся-ли все 300 метров в память? (я прое..терял книжку, где описано это дело:( )...

                                                            Цитата
                                                            (IX0DeS) как ты себе представляешь скажем инсталяху какойнить Need For Speed в виде одного файла


                                                            А вот мы и подошли к одному из вопросов - основная сфера применения. Давно известно, что инсталлеры для программ с распостранением через сети и для программ на дисках сильно различаются:) Первые - состоят из одного файла; вторые - из кучи...

                                                            Лично мне не нужно инсталлить программ размером с NFS;)

                                                            Цитата
                                                            (DJ_Karies) Есть же InnoSetup, причём полностью свободный и с исходниками на Delphi. Создаёт 1 файл (чистый инсталлер весит менее 300кб). Жмёт в zip, bzip. Имеет свой скрипт.


                                                            Дельфи, 300 (!!!) кб ... ;) В садъ...;) Если у меня прога, которую я хочу инсталлить, весит пусть даже метр - лишних 300к - это слишком. Юзеры не оценят;))

                                                            А потом, если подойти к вопросу так... Есть множество инсталлеров, но хочется свой, удовлетворяющий всем _своим_ требованиям:)
                                                            Сообщение отредактировано: Shiru_Otaku -
                                                              Граждане, я вас слегка обманул с весом. 240 кб (v2.0.19 rus), а в раре 200 кб.
                                                              Есть nsis, винамповский. С исходниками на MSVC. У него есть свой мощный язык, может ещё подцеплять dll-ки. Выходной файл с гулькин нос. Альтернатива InnoSetup'у. Но инносетап - калька InstallShield'a по дизайну, а nsis - бог знает чего. Гляньте исходники обоих, меньше резины на форуме будет.
                                                              2Ix0DeS: паскалененавистник! Ур-р-р! Чё так стремаешься дельфей? Васика понятно ещё (сам ненавижу теперь), но дельфей... Ударим begin'ом по краткости кода!
                                                              И причём здесь название инсталлера? Ты думаешь, юзеру не пофигу в чём ты клепал дистрибутив?
                                                              Сообщение отредактировано: vot -
                                                                2 Dj_Karies: Дело не в названии инсталлера - дело в том что это будет наш инсталлер, а ины всякие это их инсталлер. Ясно что есть много готовых програм, но не всегда там есть все что нам надо.
                                                                  Ну, Shiru_Otaku - господин зачинатель, может мы от вас увидим черновой вариант ТЗ? ;) Я хоть и занимаюсь их написанием, но думаю что будет правильнее первый вариант написать именно вам ;D
                                                                    Окей, оно будет:) На днях...;)

                                                                    И лучше-бы вам (соучастникам;), если остались какие-то предложения-соображения - высказать их сейчас:)
                                                                      Имхо, все уже высказано на первой странице топика, а если будет что-нибудь еще, так мы это прямо в ТЗ и подправим! ;D
                                                                        Цитата

                                                                        2Ix0DeS: паскалененавистник! Ур-р-р! Чё так стремаешься дельфей? Васика понятно ещё (сам ненавижу теперь), но дельфей... Ударим begin'ом по краткости кода!

                                                                        ээ... во первых я не перевариваю паскаль... а соотвессно Delphi
                                                                        я щаз пишут engine инсталлера на асме   ;D shell к нему я думаю будет на msvcpp написан... никакого нафиг дельфи
                                                                          Ну, для начала такая тема... Поправляйте, где не прав...


                                                                          Цитата

                                                                          ver 1.0 alpha от 24.03.03



                                                                          Общие сведения

                                                                          Инсталлятор представляет собой две функционально независимых части. Первая часть - компоновщик (автоматизирует процесс подготовки файлов к упаковке и создания конечного дистрибутива); вторая - собственно инсталлятор, неизменяемая программа-депакер с присоединёнными к ней файлами дистрибутива; плюс автоматически включаемая в состав дистрибутива программа деинсталлятора.



                                                                          Основные задачи

                                                                          - Создание дистрибутива ПО, рассчитанного в основном на распостранение через сети (это определяет такие параметры, как единственный файл дистрибутива; отсутствие выбора вида установки, типа minimal/full/etc..);
                                                                          - Открытый исходный код, распостраняемый полностью free;
                                                                          - Удобный, и по возможности настраиваемый, интерфейс инсталлятора;
                                                                          - Быстрая работа инсталлятора и малый его размер;
                                                                          - Корректность установки новых версий дистрибутива и деинсталляции.



                                                                          Компоновщик

                                                                          К компоновщику не предъявляется особых требований - основной его задачей является предоставление простого способа подготовки дистрибутива. Размер этой части программы, а также скорость его работы не являются решающими факторами (данную часть вполне можно написать на Builder).



                                                                          Интерфейс компоновщика

                                                                          Пользователь указывает все нужные файлы и относительный путь для них (от / как от корня папки, выбранной пользователем для установки ПО). Также пользователь указывает все ключи реестра, которые нужно установить; иконку для дистрибутива, тексты, опции. После этого по соответствующей кнопке или пункту меню происходит автоматическая сборка дистрибутива: генерируется скрипт-файл, выбранные файлы копируются во временную директорию (во избежание случайного их повреждения), где пакуются, склеиваются, и т.д.



                                                                          Инсталлятор

                                                                          Инсталлятор как программа представляет собой exe-файл. Он должен быть неизменяемым (т.е. не копилируется каждый раз заново) - все возможности должны настраиваться через внешний скрипт-файл (генерируемый компоновщиком). Общий формат дистрибутива таков:

                                                                          - exe-файл инсталлятора;
                                                                          - внутренний каталог (offset в exe-файле и заголовки файлов, включённых в дистрибутив);
                                                                          - скрипт-файл (описывает, что нужно делать со всеми последующими файлами);
                                                                          - файлы собственно устанавливаемой программы.

                                                                          Все эти компоненты собраны в единый exe-файл (методом склейки, автоматически выполняется компоновщиком). Файлы программы могут быть упакованы каким-либо компрессором (по необходимости - если применение компрессии даёт уменьшение размера, mp3 или jpg упаковывать не всегда имеет смысл).

                                                                          Прелагается к реализации также второй вариант: все файлы программы (включая скрипт) упаковываются в единый непрерывный RAR-архив; при запуске инсталлятора распаковываются в \%windir\%/temp (в этом случае не требуется хранить внутренний каталог, сжатие будет более эффективным). Единственная сложность, которая может возникнуть - RAR является коммерческим продуктом. Для решения этой проблемы стоит поискать некоммерческий архиватор, поддерживающий непрерывные архивы и имеющий открытый исходный текст депакера.



                                                                          Интерфейс инсталлятора

                                                                          Интерфейс стоит сделать похожим на существующие инсталляторы (т.к. типовый его вид стал привычен пользователям, и этим стоит воспользоваться;). Тем не менее, вполне возможно сделать широко настраиваемый внешний вид инсталлятора (положение кнопок, картинки, текста, и т.д.). Пользователю должно быть предложено:

                                                                          - Прочесть определённый текст (опционально);
                                                                          - Согласиться с условиями лицензионного соглашения (опционально);
                                                                          - Выбрать путь для инсталляции ПО (с показом свободного места на выбранном диске, и предупреждением о его нехватке, если таковая будет иметь место);
                                                                          - Выбрать, нужно-ли добавлять иконку на рабочий стол; пункты в меню "Пуск";
                                                                          - Согласиться со всеми выбранными опциями и начать инсталляцию;
                                                                          - В момент инсталляции можно прервать её кнопкой отмены (все созданные файлы должны быть удалены);
                                                                          - По завершении инсталляции опционально предложить перезагрузку, readme-файл, запуск программы.



                                                                          Скрипт инсталлятора

                                                                          Скрипт-файл инсталлятора описывает все необходимые операции, которые нужно произвести с файлами дистрибутива; а также все дополнительные операции (внесение ключа в реестр, например). Также в скрипт-файле указываются относительные ссылки на графику оболочки инсталлятора.

                                                                          Действия в скрипт-файле упорядочены по типам: копирование файлов, внесение данных в реестр, создание ярлыков.

                                                                          Скрипт инсталлятора, для более простой реализации парсера, должен иметь совершенно жёстко определённый формат (ограничения на тип и количество разделителей, значения полей). Он не предназначается для ручного редактирования пользователем, только для автогенерацией компоновщиком.



                                                                          Некоторые моменты работы инсталлятора

                                                                          При запуске инсталлятора проверить, достаточно-ли места в \%windir\%/temp. Если места недостаточно - работу нужно прекратить немедленно (с соответствующим сообщением об ошибке). Иначе - распаковать файлы в temp.

                                                                          В момент выбора пользователем целевой директории нужно проверять, достаточно-ли на целевом диске места для инсталляции, и если нет - предложить (без message-box`ов, просто выделенным текстом на форме приложения) выбрать другую директорию, либо освободить место (не пускать дальше, disable кнопке Next).

                                                                          Если выбранной директории не существует - согласно опциям скрипт-файла либо создать её без вопросов, либо сначала спросить. Если целевая директория существует - значит нужно провести проверки на предмет обновления версии (см. ниже).

                                                                          Сам процесс инсталляции происходит согласно скрипт-файлу. При отмене инсталляции все созданные файлы и папки (и в temp, и в целевой директории) должны быть удалены.

                                                                          При инсталляции ведётся лог-файл скопированных файлов и совершённых действий, впоследствии именно он используется для деинсталляции (записывается в папку с установленным ПО). Он-же используется при отмене инсталляции.



                                                                          Деинсталляция

                                                                          Для деинсталляции ПО предназначается небольшой exe-файл, копирующийся в папку с установленным ПО (включённый компоновщиком в состав дистрибутива), интерпретирующий лог-файл инсталлятора, и соверщающий обратные действия.



                                                                          Обновление версий

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



                                                                          TODO

                                                                          - Определиться с необходимыми опциями, которые должен предоставлять инсталлятор;
                                                                          - Определиться с необходимыми возможностями (помимо упомянутых);
                                                                          - Определиться с методом хранения файлов ПО в составе инсталлятора (один непрерывный архив либо множество файлов с каталогом);
                                                                          - Исходя их предыдущих пунктов составить первую версию формата скрипт-файла инсталлятора;
                                                                          - После этого переходить к конкретному расписанию задач для реализации, и собственно реализации.
                                                                          - Обмыть полученную реализацию;)
                                                                            Насчет обновления версий:
                                                                            Если программа прописывается в реестр, то нужно проверить наличие этих записей, а не шарить по выбранной директории. Иначе если человек установит новую версию в другую папку, старая версия может стать неработоспособной, но при этом сохраниться на диске. Что еще хуже, при попытке деинсталяции старой версии, будут стерты ключи реестра и для новой версии... ;D
                                                                              Хм.. Это сложный момент.. Новая версия может использовать другие ключи реестра. А потом, многие программы не стирают за собой записи в реестре - и при повторной инсталляции настройки программы сохраняются.

                                                                              Так что, наверное, нужно это сделать опционально - оставить ключи в покое, либо... А вот что либо - надо думать...
                                                                                Хорошо.
                                                                                В компоновщике  должен быть представлен выбор стирать старые ключи реестра или нет. Если выбрана опция стирания, то инсталятор должен выдать предупреждение об установленной версии. (можно тоже сделать опционально)
                                                                                  Ок... А что насчёт

                                                                                  Цитата
                                                                                  Прелагается к реализации также второй вариант: все файлы программы (включая скрипт) упаковываются в единый непрерывный RAR-архив; при запуске инсталлятора распаковываются в \%windir\%/temp (в этом случае не требуется хранить внутренний каталог, сжатие будет более эффективным). Единственная сложность, которая может возникнуть - RAR является коммерческим продуктом. Для решения этой проблемы стоит поискать некоммерческий архиватор, поддерживающий непрерывные архивы и имеющий открытый исходный текст депакера.


                                                                                  ?:)
                                                                                    1. Насчет архиватора- есть отличная GPL- лицензированная библиотека: zlib (53К)
                                                                                     - в ней реализован ТОЛЬКО алгоритм архивации, зато реализован хорошо.

                                                                                    2. Насчет склейки файлов- проблема...
                                                                                    Дело в том, что Вынь не будет запускать файл с допиской в конце лишнего кода (PE - формат, однако).
                                                                                    Под Вынь2000 все просто: есть ф-ии для работы с ресурсами, а вот Вынь 95-98 - я таких найти не смог...
                                                                                    Поэтому, скорее всего, придется самим формировать заголовок PE- файла...
                                                                                    Вроде как это дело хорошо описано у Румянцева...

                                                                                    З.Ы. Я писал простенький инсталлер для своей проги, могу дать код, только просьба потом тухлыми помидорами в меня не кидать :)

                                                                                    З.З.Ы. Код под GCC, но должен компилиться и под VC, кстати, надо бы инсталлер компилить под фриварным компилером (GCC, например :)) )
                                                                                      Цитата Shiru_Otaku, 26.03.03, 03:11:35
                                                                                      Ок... А что насчёт


                                                                                      ?:)
                                                                                      По-моему, это не то, что нам нужно... не стоит ;)
                                                                                        2nnn

                                                                                        Логично, что заголовок exe-шника править придётся:) (пока только не проникся - как именно, читаю вот описалово)...

                                                                                        С GPL - не хотелось-бы связываться:)


                                                                                        2Testudo

                                                                                        А что нужно, что стоит? СтОит?;)
                                                                                          Цитата Shiru_Otaku, 27.03.03, 03:20:04
                                                                                          2nnn

                                                                                          Логично, что заголовок exe-шника править придётся:) (пока только не проникся - как именно, читаю вот описалово)...

                                                                                          С GPL - не хотелось-бы связываться:)


                                                                                          По заголовкам хорошая книга - Румянцев что-то вроде "Файлы в win32 API", дома лежит, могу дать точное название...

                                                                                          А насчет GPL- почему?
                                                                                          Насколько я понял, вы тоже хотите сделать исходники открытыми...
                                                                                          Да и продукция под GPL неплохая есть...
                                                                                          Я например, пользуюсь Dev-C++ для разработки компактных приложений, и не жалуюсь...
                                                                                          Сообщение отредактировано: nnn -
                                                                                            2 Siru_Otaku.

                                                                                            Давненько сюда не заглядывал и вот -- пропустил топик...
                                                                                            Слушай, ты посмотри Nullsoft'овский инсталлер, которым WinAmp ставится. Он в сырцах идет... Русифицировать можно, довольно мощный язык скриптов и все такое...

                                                                                            IMHO, понравится. Я им сам когда-то пользовался... В прошлой жизни... ;D
                                                                                              2 Shiru_Otaku.
                                                                                              Дело, конечно, не мое, но глянь все-таки на http://nsis.sourceforge.net/ -- там и обретается то, о чем я писал в предыдущем топике...
                                                                                                Гляну на днях (сунул в качалку, но там довольно тесно;)...
                                                                                                  Отмылить? У меня... где-то в архивах оттеда свежачок был... Искать надо... :)
                                                                                                    Мылить не надо:)
                                                                                                      Уфффф... Утешил... Ноги аж заболели... ;D ;D ;D
                                                                                                      Дык! Камень с души упал... Куда ж ему сердешному валиться? тока на ноги... ;D ;D ;D ;D

                                                                                                      194 CD-ROM'а... Часть из них полностью в PGP... Базу себе под линух по сидюкам не сделаю -- времени нет... Спасибо, если какой кризис будет -- пиши приватом. Чем могу -- помогу.
                                                                                                        Я уже давно скачал, но руки никак не дойдут поглядеть:( Они сейчас вообще мало до чего доходят, ввиду глючного компа..
                                                                                                          Так мы что, на свой инсталер уже забили? ???
                                                                                                            Незнаю:) Я не забил, я пока забыл:) Но ещё вспомню;)...

                                                                                                            Дело пока встало в решении вопроса: каким образом приписать к ехешнику наши данные, да таким образом, чтобы при его запуске грузилась только часть с собственно ехешником (для этого нужно вникнуть в pe формат)...
                                                                                                              Похоже всётаки заглохло ...
                                                                                                                Да, можно так сказать.... У меня слишком много дел сейчас, на инсталлер меня не хватит уже 8) Как и на многое другое:(
                                                                                                                  Надо делать не инсталлеры, всякие, которых туева хуча, а то, что и полезно, и мало где реализовано.
                                                                                                                  А так ни на какие инсталлеры программеров не хватит.
                                                                                                                    DJ_Karies, да ты богатей, да?:) Можешь себе позволить купить инсталлер для своей коммерческой программы?:) Если ты не видишь пользы - это не значит, что её нет;)..
                                                                                                                      Ну ладно, отложим тогда до лучших времен...
                                                                                                                      Может в летом смогу этим заняться ;)
                                                                                                                        Летом, может, и я подосвобожусь:)
                                                                                                                          И я, и я, и я!!!
                                                                                                                          И я того же мнени-я!!!
                                                                                                                          До лета.

                                                                                                                          А инсталлеров и фрёвых куча, не идеальные, но хватит для начала.
                                                                                                                          Тот же инносетап.
                                                                                                                          Я с ним полтора года рулю.  :D
                                                                                                                            Мдя...
                                                                                                                            Недавно и у меня возникла необходимость создания installera для собственной игрушки. Install Shield Express раздувает файл setup.exe до 4 mb!, когда архив, который я ему дал занимает всего полтора мегабайта. Вот решил пробежаться по темам... и тут. Я в данный момент этим и занимаюсь - делаю собственный инсталлер для своей игры Lines. Хотите позырить? Тогда вот, URL:

                                                                                                                            http://www.azatrix.narod.ru/Downloads/Programming/Projects/Lines_setup.rar

                                                                                                                            Инсталлятор пока еще не доконца доработан. Ярлыки не создаются, так что запускайте с c:\program files\azatrix lines...

                                                                                                                            P.S. Просьба: не слишком стремать.  ;D
                                                                                                                              Аушки!
                                                                                                                              Просыпаемся!
                                                                                                                                Я поддерживаю вашу идею, господа Master-а, но сам вам помочь ничем не могу! Совет: Добавьте в этот инсталлер возможность регистрирования OCX и DLL, шрифтов и чтобы умела в автозагрузку и на рабочий стол ярлыки добавлять. А вообще посмотрите программку CreateInstall - вещь ещё та, да и кряков валом.  :)
                                                                                                                                  Цитата nnn, 26.03.03, 09:46:47
                                                                                                                                  2. Насчет склейки файлов- проблема...
                                                                                                                                  Дело в том, что Вынь не будет запускать файл с допиской в конце лишнего кода (PE - формат, однако).
                                                                                                                                  Под Вынь2000 все просто: есть ф-ии для работы с ресурсами, а вот Вынь 95-98 - я таких найти не смог...
                                                                                                                                  Поэтому, скорее всего, придется самим формировать заголовок PE- файла...
                                                                                                                                  Вроде как это дело хорошо описано у Румянцева...
                                                                                                                                  Ну ты и сказанул!!! 8D
                                                                                                                                  PE прекрасно запускается, если в конец что-то дописано. И ничего менять не надо.
                                                                                                                                  Можешь попробовать (кстати, для справки: WinRAR именно так и делает, просто дописывает в конец SFX-модуля архив).

                                                                                                                                  И ещё я не понимаю, зачем копировать архв в temp, а потом оттуда распаковывать, когда можно сразу из exe-шника распаковывать? И быстрее (т.к. нет дополнительного копирования), и места меньше требуется (лично у меня были проблемы именно с инстоллерами, которые в temp кидают).

                                                                                                                                  И ещё есть такая проблема.
                                                                                                                                  Предположим, я установил версию 1.0, а затем версию 2.0, но в другой каталог. Заметьте: log-файл версии 1.0 не изменился. Теперь я хочу удалить версию 1.0. Что же происходит?
                                                                                                                                  Вариант 1: dll-ки, которые были записаны в каталог Windows удалены, ключи реестра (но возможно не все) удалены.
                                                                                                                                  Вариант 2: dll-ки, которые были записаны в каталог Windows сохранены (т.к. их размеры и дата/время не совпадают с теми, что были установлены), ключи реестра (но возможно не все) также удалены.
                                                                                                                                  Но это ещё полбеды. Теперь я хочу удаить версию 2.0. Что же происходит сейчас?
                                                                                                                                  Вариант 1: все dll-ки удалены, все ключи удалены, ура!... вроде бы... т.к. если мы удалим, скажем, msvcrt.dll, то некоторые проги работать уже, увы, не будут.
                                                                                                                                  Вариант 2: из backup-копии восстановлены dll-ки версии 1.0, которые по сути никому не нужны, а это лишний мусор на диске.
                                                                                                                                  Вот как справиться с такой проблемой? :)
                                                                                                                                  Казалось бы, самый простой способ - это при инсталляции новой версии проверять ключи реестра на наличие старой версии (и также узнать каталог, где она установлена), но! Примерно такая же ситуация возможна и при инсталляции разных программ (но обновляющих одни и те же dll(!)).
                                                                                                                                  Сообщение отредактировано: 7in -
                                                                                                                                    Есть отличный халявный инсталлер, Inno Setup прозывается. И исходники есть. Ищите Яндексом по названию и выкачивайте. Там даже есть доступ к CVS-репозитарию проекта ;)
                                                                                                                                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                                                                                                    0 пользователей:


                                                                                                                                    Рейтинг@Mail.ru
                                                                                                                                    [ Script execution time: 0,1199 ]   [ 15 queries used ]   [ Generated: 28.04.24, 07:52 GMT ]