Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup плюс внешние упаковщики

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

Открыть новую тему     Написать ответ в эту тему

msatmb



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При создании больших инсталяций в InnoSetup можно значительно уменьшить их размер, воспользовавшись более мощной упаковкой, чем встроенная. Особенностям применения внешних упаковщиков с InnoSetup посвящена данная тема
 
Варианты выбора:
 
RAR: упаковка в общем хуже чем встроенная, но есть куча доп. алгоритмов (тексты, мультимедиа), поэтому может давать выигрыш на некоторых типах данных. Распаковка: только через SFX
 
7-zip: тот же алгоритм упаковки, что и встроенный (lzma), но за счёт доп. алгоритмов bcj2, delta, lzma2, ppmd и большего словаря может обеспечить лучшее сжатие. Для наилучшего сжатия рекомендуется: 64-битная еерсия, 6гб ОЗУ, Ultra7z Optimizer. Распаковка: через SFX или dll от Expeditor
Модуль распаковки архивов 7z 1.01 [18.12.2008] от ExpeditorR
 
FreeArc: тот же базовый алгоритм упаковки (lzma), но наличие множества доп. алгоритмов может обеспечить большее сжатие. Распаковка: через SFX или dll
Модуль распаковки архивов FreeArc [10.07.2009] от Bulat_Ziganshin
 
NanoZip: наилучшее сжатие в редиме -cc (распаковка 1mb/s), оптимальный режим -cO (распаковка 5mb/s). Распаковка: только через SFX
 


Все остальное в родственных темах
 
Inno Setup (создание инсталяционных пакетов)
 
Пережатиe/Pекомпрессия/Oптимизация файлов для лучшего сжатия - обсуждение того, какими утилитами/способами лучше сжимать, чтобы получить как можно меньший размер инсталятора.
 
FreeArc - бесплатный open-source архиватор для Windows и Linux, сочетающий высокую степень сжатия и большой набор возможностей

Всего записей: 178 | Зарегистр. 15-04-2007 | Отправлено: 08:31 11-11-2009 | Исправлено: juvaforza, 20:49 26-04-2011
Snoopak96

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Profrager
Указывал максимальное с 1 гигом, версия Arc`а 0,666

Всего записей: 303 | Зарегистр. 30-06-2010 | Отправлено: 22:21 01-07-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Snoopak96

Цитата:
Указывал максимальное с 1 гигом, версия Arc`а 0,666

так вот, общался с человеком, у которого 2 Гб озу и 2 недели как установлена семерка, у него оказалось, что максимальный непрерывный свободный блок при всяких касперских и т.д. 802Мб, и как может этот архив с необходимым 1Гб требемого непрерывного места установится? Делай репаки с -ld512mb хотя бы и будет все норм.
 
Добавлено:
freestyle1309

Цитата:
Подскажите плз, какой файл нужно фрюшкой паковать, если я начальную папку в 7z запихал, позже ее среп запаковал?

так файл после выхода среп'а и пакуй

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 22:44 01-07-2010
Snoopak96

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Profrager
Спасибо за разъяснения, очень помог.

Всего записей: 303 | Зарегистр. 30-06-2010 | Отправлено: 01:07 02-07-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ISDone.dll v 0.4.1

 
Библиотека, включающая в себя все необходимое для распаковки и подготовки файлов с помощью прекомпрессоров посредством инсталлятора InnoSetup, с равномерным отображением всех идущих операций на одном прогрессбаре. Поддерживаются arc, 7zip, rar, pcf, srep архивы. На будущее планируется добавить некоторые необходимые функции, а так же возможность параллелизации операций на многоядерных системах.
 
 
Включает в себя модули(функции) для распаковки
ISArc   - распаковка arc-архивов
IS7Zip   - распаковка 7zip-архивов
ISRar   - распаковка rar-архивов
ISPrecomp - распаковка Precomp версий 0.38 и v0.4
ISSRep  - распаковка SRep v1.5
 
ИЗМЕНЕНИЯ В МОДУЛЯХ:

IS7zip
  • обновил внутри ISDone.dll библиотеку 7z.dll до версии 9.15b
ОБЩЕЕ:
  • исправлен баг с нежеланием dll'ки выводить окно запроса следующего диска при более чем 2х дисках в проекте (за баг-репорт спасибо TechneS);
  • увеличена в 1000 раз точность внутренней переменной, содержащей общее текущее количество процентов и передаваемой от операции к операции (OveralPct). Позволяет избежать погрешность в расчетах процентов (за баг-репорт спасибо TechneS);
  • увеличена в 100 раз точность записей в records.inf в автоматическом распределении процентов. Сделано для подгонки точности с предыдущим пунктом. Осторожней при смене на новую dll в готовых проектах со старым records.inf. Тестовый прогон придется делать заново!
  • в архив добавлена папка Modules, содержащая различные комбинации включеных в библиотеку модулей. Сделано для уменьшения размера инсталляций, если какие-то модули не требуются в проекте. Чтобы использовать какой-либо из этих вариантов, необходимо переименовать его в isdone.dll и заменить полученным файлом стандартную isdone.dll.

 
Скрипт с примером и файл readme.txt с кратким описанием библиотеки прилагается.
 
 
Ссылки:

http://rghost.ru/2043933
http://rapidshare.com/files/404691305/ISDone0.4.1.7z.html

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 17:14 03-07-2010
vint56



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Profrager Большое спасибо  
 

Всего записей: 1277 | Зарегистр. 07-10-2008 | Отправлено: 17:39 03-07-2010 | Исправлено: vint56, 17:39 03-07-2010
1ne2wo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Profrager, благодарствую
P.S. Когда стоит ждать симпатичного таймера в isdone, как в скриптах с freearc, когда к примеру сворачиваешь инсталятор в панель задач и он там тоже тикает.

Всего записей: 133 | Зарегистр. 10-09-2009 | Отправлено: 17:43 03-07-2010 | Исправлено: 1ne2wo, 17:51 03-07-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1ne2wo
в 0.5 версии, но это будет не скоро. Пока ISDone в заморозке, только багфиксы.

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 17:56 03-07-2010
New_KoMa

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята подскажите что не так при использовании скрипта IsDone.
Вообщем ситуация такая: есть 3 архива FreeArc, в первом запакованы pcf, а в двух остальных обычные файлы не требующие дальнейшей распаковки. Пытаюсь сделать так чтобы создать records.inf:

Код:
 
тут скрипт без изменения, лишь только использованы правила для Автоматической расстановки процентных соотношений в операциях
.....
if not ISArcExtract    ( 0, OveralPct, 0, ExpandConstant('{src}\data01.bin'),  ExpandConstant('{app}'),                false,CallBack, '',    '',    '') then break;
 
if not ISPrecompExtract( 0, OveralPct, 0, ExpandConstant('{app}\1.pcf'),  ExpandConstant('{app}\1.zip'),      true, CallBack                  ) then break;
....
if not ISPrecompExtract( 0, OveralPct, 0, ExpandConstant('{app}\10.pcf'),  ExpandConstant('{app}\10.zip'),      true, CallBack                  ) then break;
 
if not ISArcExtract    ( 0, OveralPct, 0, ExpandConstant('{src}\data02.bin'),  ExpandConstant('{app}'),                false,CallBack, '',    '',    '') then break;
if not ISArcExtract    ( 0, OveralPct, 0, ExpandConstant('{src}\data03.bin'),  ExpandConstant('{app}'),                false,CallBack, '',    '',    '') then break;
...
ну и тут ничего не изменено

Воообщем происходит распаковка data01.bin, далее распаковываются все pcf-файлы, а вот далее почему-то не происходит распаковка двух оставшихся FreeArc-архивов(data02.bin и data03.bin), а происходит деинсталяция. Все архивы запакованы с параметрами -mx -ld=512m если что.
Что не так?

Всего записей: 83 | Зарегистр. 27-05-2009 | Отправлено: 15:56 04-07-2010 | Исправлено: New_KoMa, 15:59 04-07-2010
Shegorat



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
FreeArcExtract+DiskPromts v.2.6

Список изменений:
* Исправлена ошибка с зависанием инсталятора
* Исправлена функция AnsiToUtf8
* Исправлены некоторые ошибки
* Доработана функция обработки строки Archives
 
Скачать FreeArcExtract+DiskPromts v.2.6

----------
Krinkels.org - создание инсталляционных пакетов.
Как много дел считались невозможными, пока они не были осуществлены.

Всего записей: 695 | Зарегистр. 09-06-2009 | Отправлено: 16:08 04-07-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
New_KoMa

Цитата:
а вот далее почему-то не происходит распаковка двух оставшихся FreeArc-архивов(data02.bin и data03.bin), а происходит деинсталяция. Все архивы запакованы с параметрами -mx -ld=512m если что.  
Что не так?

Что-то не то с архивами. Unarc.dll не принимает data02.bin, поэтому происходит деинсталляция

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 17:25 04-07-2010
New_KoMa

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Profrager

Цитата:
Что-то не то с архивами. Unarc.dll не принимает data02.bin, поэтому происходит деинсталляция

 
Да, так и есть. Сразу не проверил, поторопился и запостил вопрос.
 
Кстати, спасибо за сделанную ISDone. Наверное год не заходил в тему Inno, а тут такое подспорье оказывается уже сделано.

Всего записей: 83 | Зарегистр. 27-05-2009 | Отправлено: 17:48 04-07-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
New_KoMa

Цитата:
Наверное год не заходил в тему Inno, а тут такое подспорье оказывается уже сделано.

Зашел бы месяц назад, весь исплевался бы) Библиотека бажная ужасно была, а сейчас вроде более или менее стабильна. Так что думаю можно уже пользоваться в репаках, выкладываемых для общественности.

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 18:22 04-07-2010
Bulat_Ziganshin

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dup

Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 00:49 05-07-2010 | Исправлено: Bulat_Ziganshin, 15:16 11-07-2010
Tranw9507



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del

Всего записей: 43 | Зарегистр. 12-06-2010 | Отправлено: 23:13 08-07-2010 | Исправлено: Tranw9507, 23:15 08-07-2010
ChanVS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите с precomp-ом.  
Делает то что надо мне в файлами,но не показывает во втором бигунке проценты.  
Вот скрипт  
[Setup]  
AppName=Precomp  
AppVerName=isPrecomp 0.5  
Compression=none  
DefaultDirName={pf}\Precomp  
VersionInfoCopyright=VoLT  
 
[Languages]  
Name: RUS; MessagesFile: compiler:Languages\Russian.isl  
 
[Files]  
Source: "precomp\*"; DestDir: "{tmp}"; Flags: ignoreversion overwritereadonly  
Source: "Data\*"; DestDir: "{app}"; Flags: overwritereadonly recursesubdirs ignoreversion createallsubdirs sortfilesbyextension; AfterInstall: RecompressPCF  
                                                                     
[Code]  
procedure RecompressPCF;  
var  
  Tmp, Text,  
  InputFile, OutputFile: string;  
  n, ResultCode: Integer;  
  ProgressLabel: TLabel;  
  ProgressBar: TNewProgressBar;  
begin  
  if ExtractFileExt(CurrentFileName)='.pcf' then  
  begin  
  ProgressBar := TNewProgressBar.Create(WizardForm);  
  with ProgressBar do begin  
    Left := WizardForm.ProgressGauge.Left;  
    Top := WizardForm.ProgressGauge.Top + ScaleX(60);  
    Width := WizardForm.ProgressGauge.Width;  
    Height := WizardForm.ProgressGauge.Height;  
    Parent := WizardForm.InstallingPage;  
    Min := 0;  
    Max := 100;  
    Position := 0;  
    show;  
  end;  
  ProgressLabel := TLabel.Create(WizardForm);  
  with ProgressLabel do begin  
    Left := ProgressBar.Left;  
    Top := ProgressBar.Top + ProgressBar.Height + ScaleX(5);  
    AutoSize:= True;  
    Caption:= 'Recompression: 0%';  
    Parent := WizardForm.InstallingPage;  
    Transparent:= True;  
    Show;  
  end;  
  begin  
    InputFile:=ExpandConstant(CurrentFileName);  
    n:=Length(InputFile);  
    while InputFile[n]<>'.' do  
      n:=n-1;  
    OutputFile:=Copy(InputFile, 1, n-1);  
    Text:=WizardForm.StatusLabel.Caption;  
    WizardForm.StatusLabel.Caption:='Перепаковка файлов *.PCF в *.ff';
    WizardForm.FileNameLabel.Caption:=OutputFile;  
    Tmp:=ExpandConstant('{tmp}\');  
    Exec(Tmp+'precomp.exe', '-d -o"'+OutputFile+'".ff "'+InputFile+'"', Tmp, SW_HIDE, ewWaitUntilTerminated, ResultCode);  
    DeleteFile(InputFile);  
    WizardForm.StatusLabel.Caption:=Text;  
  end;  
end;  
end;  
end.

Всего записей: 78 | Зарегистр. 02-07-2010 | Отправлено: 10:24 09-07-2010
Bulat_Ziganshin

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Отличная идея от K9000
 
Я тут подумал: а что если попробовать написать препроцессор для ISDone? Чтобы писать поменьше
 
Описываю наглядным примером:

Код:
[Archives]
Source: {src}\data.arc; DestDir: {app};
Source: {app}\data.srep; DestDir: {app}; Flags: removeafterunpack;
Source: {src}\help_ru.arc; DestDir: {app}; Components: help\russian;
Source: {src}\helpviewer; DestDir: {app}\Help\Viewer; Tasks: viewhelp;
 
 
Все это автоматически парсится (или в самой ISDone - тогда можно накопипастить кода из парсера Inno - или отдельным процессором) и незаметно от пользователя получается код уже с ISDone. В результате n00b-friendly установщик. Правда вопрос - как работать с records...
 
Добавлено:

Цитата:
Помогите с precomp-ом.  

с твои кодом это невозможно, используй isdone из этой темы
 
Добавлено:
от nik1967:
Need for Speed™ Undercover.iss v 2.2 [Final] + ISDone 0.41
http://rghost.ru/2076096

Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 15:12 11-07-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bulat_Ziganshin

Цитата:
Отличная идея от K9000

идея то отличная, но боюсь даже задуматься, чего придется сделать для реализации подобного..)

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 19:21 11-07-2010
manstopper



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
ISDone.dll v 0.4.1

 
Profrager, СПАСИБО огромное за Ваш труд!
 
Есть вопрос по библиотеке. Сейчас реализован запрос второго и т.д. архивов Freearc, находящихся на другом диске (или пути). Это не всегда выручает. Скажем, когда игра весит около 2хDVD5, сложно подобрать размер архивов, чтобы попасть в объем дисков.
 
Планируется ли поддержка многотомных rar или 7z с запросом частей на следующих дисках? Это позволило бы решить проблему разбивки уже после упаковки.  
 

Всего записей: 76 | Зарегистр. 17-12-2005 | Отправлено: 16:38 12-07-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
manstopper

Цитата:
Планируется ли поддержка многотомных rar или 7z с запросом частей на следующих дисках? Это позволило бы решить проблему разбивки уже после упаковки.  

В многотомных рар-архивах чтобы узнать размер запакованных данных для определения процентов, необходимо просканировать все тома. Если же они будут находится на разных носителях, то это будет невозможно и соответственно корректное отображение процентов осуществить будет не реально. Не даром в самом WinRAR'е при распаковке многотомных архивов нет отображения общего прогресса. На счет многотомных 7z ничего не могу сказать, они в данный момент вообще не поддерживаются, тем более думаю с ними ситуация будет та же, что и с раром. Поэтому в этом направлении и не хочется копать)

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 17:07 12-07-2010
manstopper



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
В многотомных рар-архивах чтобы узнать размер запакованных данных для определения процентов, необходимо просканировать все тома. Если же они будут находится на разных носителях, то это будет невозможно и соответственно корректное отображение процентов осуществить будет не реально. Не даром в самом WinRAR'е при распаковке многотомных архивов нет отображения общего прогресса. На счет многотомных 7z ничего не могу сказать, они в данный момент вообще не поддерживаются, тем более думаю с ними ситуация будет та же, что и с раром. Поэтому в этом направлении и не хочется копать)
 

 
Хм... Я попытался решить проблему переносом распаковки на postinstall. Еще немного сдвинул оригинальный прогрессбар inno. Архив Freearc добавляется в Files без компрессии. Так можно средствами inno разбить на нужные размеры. Только в этом случае происходит некорректная деинсталляция в случае ошибки. Что нужно поправить в скрипте?
 
кусок скрипта с изменениями
 
Больше ничего не правил.

Всего записей: 76 | Зарегистр. 17-12-2005 | Отправлено: 17:25 12-07-2010 | Исправлено: manstopper, 21:39 12-07-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup плюс внешние упаковщики


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru