Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабораторныйПрактикум1.pdf
Скачиваний:
395
Добавлен:
02.02.2015
Размер:
4.76 Mб
Скачать

Рассмотрите возможность создания архива и распаковки архива с помощью горячих клавиш для файлов, папок и групп.

5.2.8. Создание пакета установки на основе самораспаковывающегося архива

Замечание: Для установки большинства программ пользователь должен состоять в группе администраторов. Для операций над папками и файлами используйте FAR.

Последовательность создания пакета установки:

1.Подготовка программы архиватора/установки

2.Подготовка устанавливаемых файлов

3.Подготовка сценария установки

4.Подготовка файла конфигурации

5.Создание архива и из него пакета установки

Пакет установки на основе архива 7z представляет собой специаль-

ную исполняемую программу распаковки, к которой дописаны файл конфигурации config.txt и архив файлов для установки. В файле конфигурации сохраняется заголовок окна и текст запроса при распаковке, а также командная срока для запуска после распаковки.

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

Впроцессе работы будет создан установщик FAR.

Вкорне виртуального диска создайте папки 7z и inst, в папке inst создайте папку FAR.

Для создания пакета установки понадобится специальная версия модуля самораспаковки36 (SFXs для инсталляторов). Зайдите на страницу http://7-zip.org.ua/ru/download.html и скачайте в корень виртуального диска последнюю версию (или найдите файл 7z*_extra.7z в разделе программ кафедрального сервера, звездочкой замещены цифры версии пакета). В левой панели FAR войдите в скопированный архив,

36 Дополнительную информацию см. на странице http://7zsfx.info/ru/

82

выделите файлы, расположенные в корне архива (папки не выделяйте), в правой панели войдите в папку F:\7z. Скопируйте (распакуйте) выделенные файлы из архива в папку 7z. Из папки Installer архива скопируйте (распакуйте) файлы config.txt и cr.bat в корень виртуального диска F:\.

Из папки C:\Program Files\FAR скопируйте в папку F:\inst\FAR все файлы и папки. В папке F:\inst создайте текстовый файл сценария run.cmd, установите в редакторе кодовую таблицу 866 (Shift+F8). Введите в него следующий текст:

@echo off

REM В случае наличия папки FAR установка прерывается if exist "%ProgramFiles%\FAR" GOTO BYPASS

REM Создание папки FAR

MD "%ProgramFiles%\FAR"

REM Копирование распакованной структуры папок

XCOPY /Y /Q /S /R /H "FAR\*.*" "%ProgramFiles%\FAR" REM Создание ярлыка вспомогательным сценарием

START "Shortcut" /WAIT "CreateShortcut.vbs"

REM Загрузка настроек программы для текущего пользователя

Setup=REG IMPORT "%ProgramFiles%\FAR\FarSave1.reg" REM Переход к выходу

GOTO END :BYPASS

ECHO Папка программы уже существует.

:END

В папке F:\inst создайте текстовый файл сценария CreateShortcut.vbs, установите в редакторе кодовую таблицу 1251 (Shift+F8). Введите в него следующий текст (номера строк вводить не надо, они приведены для обозначения начала строк):

1Dim objShell

2Dim shrtcut

3Dim targetfldr

4Dim progfldr

5Dim SysEnv

6Dim SystemDrive

7Set objShell = WScript.CreateObject("WScript.Shell")

8Set SysEnv = objShell.Environment("Process")

9targetfldr = objShell.SpecialFolders("AllUsersPrograms")

10progfldr = SysEnv("ProgramFiles")

11SystemDrive = SysEnv("SYSTEMDRIVE")

83

12Set shrtcut = objShell.CreateShortcut(targetfldr & "\FAR manager.lnk")

13Shrtcut.TargetPath = progfldr & "\FAR\FAR.exe"

14Shrtcut.IconLocation = progfldr & "\FAR\FAR.exe"

15Shrtcut.Description = "Консольный файловый менеджер для операционных систем семейства Windows. Программа предоставляет удобный интерфейс пользователя для работы с файловыми системами (реальными и эмулированными) и файлами: просматривать файлы и каталоги; редактировать, копировать и переименовывать файлы; и многое другое"

16Shrtcut.Hotkey = "Alt+Ctrl+F"

17Shrtcut.WorkingDirectory = progfldr & "\FAR"

18Shrtcut.WindowStyle = 1

19Shrtcut.Save

Самораспаковывающийся архив умеет запускать файлы, указанные в файле config.txt. Отредактируйте файл config.txt в корне виртуального диска так, чтобы он содержал следующий текст в кодировке UTF-8 (первая и последняя строки файла являются маркерами начала и конца параметров конфигурации, т.к. файл конфигурации будет находиться внутри пакета установки и его содержимое нужно будет найти):

;!@Install@!UTF-8! Title="FAR manager"

BeginPrompt="Установить FAR? (нужны полномочия администратора)" RunProgram="run.cmd"

;!@InstallEnd@!

Отредактируйте файл сценария cr.bat в корне виртуального диска так, чтобы он содержал следующий текст (номера строк не вносить):

del FAR.7z

del FAR_setup.exe cd inst

..\7z\7zr a ..\FAR.7z * -m0=BCJ2 -m1=LZMA:d25:fb255 -m2=LZMA:d19 - m3=LZMA:d19 -mb0:1 -mb0s1:2 -mb0s2:3 –mx -r

cd ..

copy /b 7z\7zS.sfx + config.txt + FAR.7z FAR_setup.exe

Запустите сценарий cr.bat.

Этот сценарий сначала удаляет предыдущие версии пакета установки если они есть, затем назначает папку inst текущей, из папки 7z запускается архиватор 7zr, который пакует все файлы и папки в inst, архив помещается в корень виртуального диска. После архивации

84