shperk: (Default)
shperk ([personal profile] shperk) wrote2005-12-04 08:26 am

Как вшить программу в дистрибутив Windows XP

Очень полезная статья для админов небольших сетей, содержащих разнородные компьютеры.
Особенно в школе, где детки постоянно что-нибудь портят.
Обычно я пользуюсь, естественно, созданием образов дисков с последующим их залитием №по требованию" . Но при разнородной сети это не очень удобно. Нужно либо хранить образы каждого диска (где найти столько места?), либо после презалития долго и нудно адаптировать для каждой машины. Описанный способ избавляет от этих хлопот. Интересно, работает ли это с 98?
Статья на kpnemo.ru

Как вшить программу в дистрибутив Windows XP
(перевод статьи + небольшая отсебятина «How To Create New ProgramAddons»)
Доброго времени дня. Сегодня хочу вам рассказать о том , как сделать пакет с любимой вам программой и внедрить (интегрировать) его в дистрибутив собранной вами Автоматической установки Windows XP.Процесс этот несложный и не требующий каких –либо дополнительных умственных затрат  Итак поехали.
Полагаю у вас могут возникнуть вопрос по поводу того , для чего нужно вшивать программу в дистрибутив и лишить пользователя возможности выбора программы для установки. Отвечу так – что многие (или даже подавляющее большинство) делает Unattended XP исключительно под себя .Я тоже не исключение. И по мне, намного удобнее вшить в дистрибутив те программы которые мне необходимы, чем делать после дополнительные мышедвижения и возиться с постинсталлерами (такой уж я ленивый человек). Да и к тому же все жизненно важные программы и утилиты , такие как – антивирус , архиватор , антиспай и другие просто необходимо внедрять и устанавливать насильно  … Надеюсь убедил .Хотя забыл еще один момент – это просто интересно и научиться этому несложно , так зачем же лишать себя такой возможности.

Шаг первый
Для начала нужно собрать SFX архив .О том как это сделать подробно описывалось в статье «Создание SFX архива» (которую можно найти в Учебнике Автоматической установки – скачать можно здесь или же найти ее на сайте unattended.oszone.net).Большое количество ключей для «тихой установки» приложений можно найти здесь на английском языке или поискать на форуме OsZone .
Шаг второй
Дальше создайте папку с любым именем. Внутри этой папки создайте еще одну под именем SVCPACK и поместите свой перепакованный инсталляционный пакет туда. Потом создайте в любом текстовом редакторе ini файл и сохраните его под именем ENTRIES_PROGRAMNAME.INI ,но не помещайте (ВАЖНО!!!) его в папку SVCPACK. Вместо PROGRAMNAME укажите название перепакованной программы (например ENTRIES_OPERA.INI ). Откройте созданный ini-файл и добавьте туда секции: [general] , [EditFile] и [AddProgram] .Пример заполнения ini-файла смотрите ниже.

Code:
[general]
builddate=12/01/2005
; дата выпуска (релиза) программы
description=Program description
;Описание программы
language=English
;язык интерфейса (насколько я понял)
title=Program
;название программы
version=1.0
; версия программы
website=http://www.programwebsite.com/
; вэб- сайт программы

[EditFile]
I386\SVCPACK.INF,SetupHotfixesToRun,AddProgram
;эту секцию оставьте без изменения

[AddProgram]
PROGRAM.EXE
;имя(название) перепакованного пакета , которой вы поместили в папку SVCPACK


Шаг последний

Итак у вас есть папка SVCPACK, в которую вы поместили перепакованный «тихий инсталл» и ini-файл ENTRIES_PROGRAMNAME.INI , он должен находиться вне папки SVCPACK . Теперь осталось только собрать все эти файлы в один CAB- файл. Сделать это можно командой makecab или любой программой умеющей сжимать файлы в CAB архив (например picozip или power archiver ) Я пользовался двумя способами командой makecab – правда пришлось попотеть и почитать ( здесь) .И второй способ – это плагин для TotalCommandera (забирать здесь )

У кого нет желания читать. Тогда повторяйте за мной. В папку с вашими заготовками поместите еще один файл (под любым коротким именем – cabm.txt) Содержание этого файла ниже :

1.С комментариями (ВАЖНО!!!) – не копируйте этот листинг , при запуске команды на исполнение получите море ошибок. Приведен только для ознакомления.
.Set Cabinet=on (включить режим сжатия всех файлов в один кабинет);
.Set Compress=on (включить сжатие);
.Set CompressionType=MSZIP (сжатие по алгоритму ZIP);
.Set CompressionLevel=7 (максимальный уровень сжатия);
.Set CabinetNameTemplate="My.CAB" (маска имени полученного файла);
.Set DiskDirectoryTemplate=".." (положить в каталог на уровень выше папки);
Далее идут абсолютные пути файлов для архивирования.
E:\Trash\CABFILES\SVCPACK\abiword.exe
E:\Trash\CABFILES\ENTRIES_ABIWORD.ini


2.Этот листинг можно скопировать. Здесь нужно исправить значение параметра .Set CabinetNameTemplate="My.CAB" если хотите получить название CAB файла .А также заменить абсолютные пути к файлам для архивирования.
.Set Cabinet=on;
.Set Compress=on;
.Set CompressionType=MSZIP;
.Set CompressionLevel=7;
.Set CabinetNameTemplate="ABICAB.CAB";
.Set DiskDirectoryTemplate="..";
E:\Trash\CABFILES\SVCPACK\abiword.exe
E:\Trash\CABFILES\ENTRIES_ABIWORD.ini


Остается только в командной строке набрать makecab /f cabm.txt и понаблюдать за таким вот окошком.

makecab.png (15.81 KB)


И на выходе получается ABICAB.CAB.

Или же в TotalCommandere выделяем наши файлы ,нажимаем F5 выскакивает такой диалог

CAB1.png (11.72 KB)


Жмем Enter и выбираем указанный на рисунке ключ в выпадающем списке второго диалога

CAB2.png (6.60 KB)


И жмем Enter повторно. Возможно вылетит еще такое окошко

CAB3.png (9.26 KB)


На него тоже отвечаем Enter-ом
Интеграция в дистрибутив полученного CAB файла осуществляется либо NLite

CAB4.png (27.74 KB)


Потом добавляем CAB файл

CAB5.png (21.80 KB)



И ждем. Или же RVM Integrator – ом

CAB6.png (13.59 KB)



Здесь вам нужно в первой строке указать путь к дистрибутиву ХР и в последнем свой CAB – файл. Если вы все проделали правильно , то файл из вашего перепакованного дистрибутива (у меня abiword.exe) должен быть в папке путь к вашему дистрибутиву ХР\I386\SVCPACK\ABIWORD.EXE. И еще в файле SVPACK.INF , который вы также найдете в папке I386 вашего дистрибутива (правда там он будет под другим именем SVPACK.IN_ , и для его просмотра его надо будет распаковать командой EXTRACT SVPACK.IN_) , в секции [SetupHotfixesToRun] вы должны увидеть строку с именем вашего перепакованного инсталла (у меня это abiword.exe /S) .

Вроде все .Если возникнут вопросы то пишите на zaurbb@gmail.com

С уважением , Заур Багиров ака Теплый Снег
Baku Azerbaijan 1/12/2005

P.S. Готовые программные аддоны можно найти здесь

Оффлайн версию этой статьи забирайте здесь


Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting