Собственная инсталяция
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Общие вопросы

#1: Собственная инсталяция Author: Toni PostPosted: Wed Aug 03, 2005 13:17
    —
Приветствую всех.

Никто не подскажет: - раньше (даа-аавно, уже, помню...) в разделе "крутые советы" была статья: - Как создать собственную инсталяцию ТС. Как-то раньше не нужно было, но помнил про оную. Теперь, вот, понадобилось, заглянул и... НЕТ ЕЕ ТАМ БОЛЬШЕ!? Никто не подскажет, где можно теперь найти эту статью/инфу?

 !  Avada:
Рассматривамый далее материал (ccылка) изрядно устарел, порядок работы инсталлятора TC с тех пор неколько раз менялся. В "Секретах и советах" оставлять это не имеет смысла, переносится в "Общие вопросы".

#2: используй Inno Setup Author: iov PostPosted: Wed Aug 03, 2005 23:50
    —
установи прогу Inno Setup создай папку C:\temp\
скопируй туда содержимое папки total и wincmd.ini из корня windows
создай там же текстовый файл total_Comander_setup.iss
запускай прогу выбирай --открыть существующий файл скрипта -> босьше файлов-- укажи C:\temp\total_Comander_setup.iss
компилируй (в проге всё есть) готово! после запуска запустится установка!!!!!!


содержимое файла
total_Comander_setup.iss
копировать отсюда и до конца.


; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
AppName=Total Commander
AppVerName=Total Commander
DefaultDirName={pf}\Total Commander
DefaultGroupName=Total Commander
AllowNoIcons=yes
Compression=lzma
SolidCompression=yes

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\temp\Totalcmd.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\temp\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
Source: "C:\temp\Wincmd.ini"; DestDir: "{win}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\Total Commander"; Filename: "{app}\Totalcmd.exe"
Name: "{group}\{cm:UninstallProgram,Total Commander}"; Filename: "{uninstallexe}"
Name: "{userdesktop}\Total Commander"; Filename: "{app}\Totalcmd.exe"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Total Commander"; Filename: "{app}\Totalcmd.exe"; Tasks: quicklaunchicon

[Run]
Filename: "{app}\Totalcmd.exe"; Description: "{cm:LaunchProgram,Total Commander}"; Flags: nowait postinstall skipifsilent

#3:  Author: ParcanLocation: Russian PostPosted: Thu Aug 04, 2005 09:14
    —
Toni
а вот и сама статья

Создание собственной инсталяции
Данная статья описывает то, каким образом можно создать свой собственный дистрибутив программы, содержащий все необходимые вам навороты, чтобы в будущем упростить себе жизнь в случае необходимости переустановки Total Commander.

Для выполнения данной операции вам потребуются, помимо прочего, архиватор WinRAR и любой архиватор, позволяющий создавать cab-архивы со вложенными папками внутри (например, PowerArchiver или Cabinet Manager. Входящий в состав Windows XP iexpress.exe тут, к сожалению, не подойдёт, поскольку он умеет запаковывать лишь содержимое одной папки и не видит подпапок).

Устанавливаем Total Commander
Последнюю версию этой замечательной программы можно всегда найти на сайте “производителя” — Кристиана Гислера из Швейцарии (http://www.ghisler.com). Установка программы “по умолчанию” уже позволяет воспользоваться большинством предложенных возможностей. Здесь надо отдать должное автору, создавшему своё произведение так, чтобы оно было максимально удобно в использовании.

Итак, для установки программы нужно всего лишь запустить исполнимый файл программы и ответить на простейшие вопросы в нескольких диалоговых окнах. Поскольку текущая цель установки программы — создать свою собственную инсталляцию, настроенную по своему вкусу, то в целях упрощения работы при начальной установке нужно задать расположение ini-файлов программы в папке самой программы (обычно это C:\wincmd\). Все остальные настройки здесь — на ваш вкус. Лично я обычно никогда не включаю файлы других языков, кроме английского — хотя это и не требует много места, этими файлами я всё равно никогда не пользуюсь. Впрочем, здесь вы можете поступить так, как сами считаете нужным.

После установки программы вы можете настроить её по своему вкусу — например, добавить архиваторные плагины, создать цветовые настройки, добавить или удалить кнопки на панели инструментов, установить и настроить InfranView, включить файлы поддержки русского языка — в общем, создать из программы свою собственную “рабочую среду”. Для этого я рекомендую вам посетить сайт http://wincmd.ru — русскоязычный сайт по TotalCommander, довольно часто обновляющийся и содержащий кроме ссылок на саму программу также множество аксессуаров — новейшие плагины, форум, советы и прочее. Этот сайт я настоятельно рекомендую вам добавить в “Избранное”, — а лучше — подписаться на рассылку этого сайта и всегда быть в курсе происходящего за счёт новостей. Если вам лень разбираться в том, что именно вам нужно, а что нет, вы можете посетить сайт http://totalcmd.nm.ru, где рассказывается как установить Total Commander со всеми наворотами и без лишнего шума, а также можно скачать все плагины, все утилиты, все архиваторы и т.д. одним файлом. Главная цель для нас сейчас — создать для себя полностью настроенную и максимально удобную программу.

Я рекомендую вам установить InfranView или другую программу, интегрируемую в качестве просмотрщика картинок в Total Commander непосредственно в папку программы, создав там для неё дополнительную подпапку (например, c:\wincmd\infranview\). Суть в том, чтобы все программы, которыми вы пользуетесь только как наворотами к Total Commander, установить непосредственно в дерево папок Total Commanderа.

Готовим собственную инсталляцию
Теперь перейдём ко второму этапу — созданию собственной инсталляции программы, чтобы в будущем можно было устанавливать её “со всеми наворотами” одним кликом мыши.

Во-первых, откройте файл wincmd.ini, содержащий настройки программы, и внимательно отредактируйте его. Пути ко всем плагинам, работающим с Total Commander можно сделать относительными — относительно исполнимого файла программы. То есть, к примеру, если плагины у меня лежат в папке c:\wincmd\plugins, а сама программа находится в c:\wincmd\, то я могу вместо полного пути плагина (c:\wincmd\plugins\...) писать относительный путь (plugins\...). Это удобно, поскольку позволяет сохранить структуру конфигурации при установке программы по другому пути. Это относится к архиваторным плагинам (секция [packerplugins]), плагинам файловой системы (секция [FileSystemPlugins]) и плагинам встроенной программы просмотра (секция [ListerPlugins]). К сожалению, такой фокус не пройдёт с путём к программе InfranView. Его придётся оставить абсолютным. Ещё — если вы работаете под Windows NT/2K/XP, и среди каталогов “быстрого вызова” у вас есть папки, находящиеся в профиле пользователя (например, “Мои документы”, “Temp” или “Рабочий стол”), то в секции [DirMenu] нужно заменить абсолютные пути на переменные окружения (т.е., к примеру, вместо “C:\Documents and Settings\Alexey\My Documents” нужно написать “%UserProfile%\My Documents”. Полный список всех установленных переменных окружения и соответствующие им значения вы можете узнать при помощи команды “set” без параметров, набранной в коммандной строке Windows. Кроме того, из файла можно удалить все ненужные строки, носящие временный характер (например, историю “путешествий” по папкам, историю командной строки, историю поисковых запросов и прочее). Суть всех этих изменений — максимально “оторвать” файл настроек Total Commandera от физического расположения программы, оставив его при этом полностью работоспособным. Это позволит в будущем, при установке программы в другую папку, вносить минимум правки в файл настройки, или не трогать его совсем.

Во-вторых, откройте файл Tcuninst.wul, находящийся в папке с программой, и отредактируйте его. Этот файл содержит пути ко всем файлам, которые необходимо удалить при удалении программы. Заметьте, что все пути в этом файле являются относительными, либо выражены при помощи переменных окружения. Вам нужно дописать в этот файл по строчке для каждого нового файла, добавленного в папку Total Commander при установке “наворотов” в папку программы. Также, если вы желаете удалить какие-либо файлы вне папки Total Commander-а (к примеру, если вы создали ярлык на рабочем столе к программе TweakTC, и хотите удалить его при удалении TotalCommander-а), то нужно прописать пути к этим файлам, используя переменные окружения (в последнем примере это может быть “$desktop$\Тонкая настройка Total Commander.lnk” — обратите внимание на знаки $ вокруг слова desktop).

В-третьих, создайте где-нибудь временную папку для складывания дистрибутива — например, c:\temp\totcmd\cab. В эту папку скопируйте полностью содержимое папки программы. Затем удалите из этой папки файл справки (обычно totalcmd.hlp), файл с описанием клавиатурных сокращений (keyboard.txt) и файл register.wri. После чего создайте ещё одну папку, и распакуйте в неё исходный дистрибутив TotalCommander. Для этого просто войдите в исполнимый файл дистрибутива, как в архив (нажмите на нём Ctrl+PageDown), затем выделите всё, что в нём содержится, и просто перенесите (распакуйте) в нужное место. Далее. В дистрибутиве войдите в архив Install.cab, и скопируйте из него папку Windows в нашу временную папку с нашим (не оригинальным) дистрибутивом.

Теперь вам нужно выделить всё содержимое подготовленной папки и сжать её в один cab-архив (для этого потребуется PowerArchiver или Cabinet Manager). Имя архива должно быть install.cab. Надеюсь, вы не забыли упаковать в архив также ключевой файл wincmd.key? Smile

Затем подготовьте ещё одну папку, в которую поместите вышеупомянутые файлы totalcmd.hlp, keyboard.txt и register.wri. Будет весьма неплохо, если вы найдёте русские переводы этих файлов и скопируете именно их. Затем запакуйте все эти файлы в архив installr.cab.

Далее. Скопируйте только что созданные файлы install.cab и installr.cab в папку с распакованным оригинальным дистрибутивом программы (файл install.cab нужно будет записать поверх имеющегося).

Структура дистрибутива следующая: общее “мясо” программы лежит в файле install.cab, а то, что относится к конкретному языку — в файлах installe.cab (английский) и installd.cab (немецкий). Мы только что перезаписали основной архив, а также добавили архив с русскими ресурсами - installr.cab. Кстати, если вам не нужен файл с немецкими ресурсами - installd.cab, то его можно удалить. Теперь осталось заставить программу-инсталлятор увидеть то, что мы ей предлагаем! Открываем в блокноте файл install.inf и редактируем его. Я приведу ниже лишь изменённые секции, которые я сделал для своей инсталляции:

[Languages]
Count=2
Default=2
1=English
2=Русский (Russian),r

[LangName]
langdir=language
0=wcmd_eng
r=wcmd_rus

Немного ниже я удалил секцию [Installd] со всем её содержимым, и прописал вместо неё следующую секцию:

[Installr]
1=installr.cab,c
2=install.cab,c

(если вам нужны немецкие ресурсы, вы можете не удалять секцию installd, а просто дописать русскую секцию, или не прописывать ничего)

Далее. Изменения в секции DeskTop. Здесь вы можете прописать дополнительные иконки. Например, иконку для TweakTC:

[Desktop]
...
2=tweak\tweaktc.exe","Тонкая настройка Total Commander.lnk"

Наконец, в секции [ini] добавляем русскую секцию:

[inir]
1=wincmd.ini,configuration,languageini,wcmd_rus.lng
2=wincmd.ini,configuration,Mainmenu,wcmd_rus.mnu

Также, если нужно, удаляем все остальные секции, кроме [ini]. Не забудьте сохранить изменения в отредактированном файле.

Последние штрихи...
Созданный дистрибутив Total Commander уже полностью работоспособен. Вы можете сами убедиться в этом, запустив файл install.exe. Однако для полного счастья вы можете запаковать полученный дистрибутив WinRaR-ом так, чтобы получился самораспаковывающийся архив — чтобы при запуске он “молча” распаковывался во временную папку и запускал там файл install.exe. Ещё можно назначить этому архиву оригинальную иконку от Total Commander (её можно вытащить любым редактором ресурсов, или, например, вытащить с данной статьи).

Что в итоге получилось? Установив программу мы получаем полностью работоспособный, русифицированный, и максимально навороченный Total Commander со всеми приладами! Ну разве не прелесть?!

#4:  Author: Toni PostPosted: Thu Aug 04, 2005 12:23
    —
Огромный сэнкс!!!

#5:  Author: LocKtaR-o-DarKLocation: Москва PostPosted: Fri Aug 12, 2005 04:30
    —
Привет, мужики.
Может подскажете как сделать
установку любимого тотала в nsis?
Предел мечтаний.
Если не трудно... А?

#6:  Author: hackrusLocation: Moscow PostPosted: Tue Oct 18, 2005 06:33
    —

Ну, самое простое в NSIS создать самораспаковывающийся архив (не путать с инсталляцией). Делается это так: берешь папку с Тоталом архивируешь Zip`ом так, чтобы файл приложения был в корне архива, а потом берешь zip2.exe из NSIS`а и создаешь самораспаковывающийся архив Smile(типа инсталляшки Very Happy ). От себя замечу, что в 2.08-2.09, можно использовать солид Lzma сжатие. Это иногда хорошо дожимает вес Smile. Делается это так:

- в программных файлах NSIS`а заходишь в папку Contrib\zip2exe, ищешь файл Base.nsh, открываешь блокнотом. Находишь строку: «SetCompressor lzma» и заменяешь на «SetCompressor /solid lzma»

- чтобы самораспаковывающийся архив был русским в файле Modern.nsh заменяешь «!insertmacro MUI_LANGUAGE "English"» на «!insertmacro MUI_LANGUAGE "Russian"»
После этих операций ты без проблем сможешь конвертировать zip-архивы в exe с высокой степенью сжатия Very Happy

Теперь о самой инсталляции:
Сложность инсталляции и набор функций зависит ТОЛЬКО от тебя Smile, я лишь здесь приведу небольшой пример как это можно сделать.

И так преступим:

Берешь блокнот и создаешь файл (типа install_total.nsi) и прописываешь следующее :

Name "Total Commander XP" ; - название инсталляции
OutFile "setup_total.exe" ; - имя выходного файла инсталляции
InstallDir "$PROGRAMFILES\Total Commander XP" ; - папка инсталляции программы по умалчиванию
InstallDirRegKey HKCU "Software\Total Commander XP" "" ; - ключ в реестре для установки
InstType "Полная" ; - тип установки
InstType "Минимальная" ; - тип установки
SetCompressor /solid lzma ; - использовать непрерывное сжатие Lzma
SetDatablockOptimize on ; - включить оптимизацию данных блока
CRCCheck off ; - не проверять контрольную сумму инсталлятора
WindowIcon off ; - выключаем иконку у окна инсталлятора
XPStyle on ; - включаем использование стиля XP
SetOverwrite on ; - возможность перезаписи файлов включена
AllowRootDirInstall false ; - отменяем возможность установки программы в корень
AutoCloseWindow false ; - отмена автозакрытия инсталлятора после выполнения всех действий


!include "MUI.nsh" ; - это модуль "модной" оболочки

; Настройка интерфейса
BrandingText "Total Commander" ; - текст внизу инсталляции
BGGradient 0x0000FF 0x000080 0x0080FF ; - устанавливаем фон установки (верхний/нижний/цвет текста)
!define MUI_HEADERIMAGE ; - возможность запихнуть в заголовок рисунок
!define MUI_HEADERIMAGE_BITMAP "modern-header.bmp" ; - сам рисунок в заголовке
!define MUI_HEADERIMAGE_RIGHT ; - рисунок в заголовке будет находиться справа
!define MUI_ICON "Install.ico" ; - иконка инсталлятора
!define MUI_UNICON "UnInstall.ico" ; - иконка деинсталлятора
!define MUI_COMPONENTSPAGE_SMALLDESC ; - увеличивает место под компоненты
!define MUI_ABORTWARNING ; - предупреждать об отмене установки
!define MUI_LICENSEPAGE_RADIOBUTTONS ; - Использовать радиокнопки на странице лицензии


; Страницы установки
!insertmacro MUI_PAGE_WELCOME ; - Страница приветствия
!insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\Modern UI\License.txt" ; - Страница с лицензией
!insertmacro MUI_PAGE_COMPONENTS ; - страница компонентов
!insertmacro MUI_PAGE_DIRECTORY ; - страница выбора папки установки

Var MUI_TEMP ; - две переменные для хранения пути для ярлыков в меню Пуск
Var STARTMENU_FOLDER

!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Total Commander XP"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Label"
!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER ; - страница с выбором группы ярлыков
!insertmacro MUI_PAGE_INSTFILES ; - страница хода выполнения установки
!insertmacro MUI_UNPAGE_CONFIRM ; - страница проверки пути деинсталлятором
!insertmacro MUI_UNPAGE_INSTFILES; - страница хода выполнения удаления


;Языки
!insertmacro MUI_LANGUAGE "Russian" ; - выбераем русский Very Happy

; Секции компонентов для установки

Section "Total Commander" Total ; - Секция установки основной программы со ссылкой на описание
SectionIn RO ; - Секция только для чтения, т.е. ее нельзя отключить
SetOutPath "$INSTDIR" ;папка для выполнения операций
File "TOTALCMD.EXE" ; Распаковываем этот файл в папку $INSTDIR

;Создание ярлыков
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Total Commander XP" "$INSTDIR\TOTALCMD.EXE"
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Удаление Total Commander XP.lnk" "$INSTDIR\Uninstall.exe"
!insertmacro MUI_STARTMENU_WRITE_END

;Сохраняем путь к программе в реестре
WriteRegStr HKCU "Software\Total Commander XP" "" "$INSTDIR"

;Создаем uninstall'ятор и записываем его в папку, куда устанавливаем программу
WriteUninstaller "$INSTDIR\Uninstall.exe"

SectionEnd ; - так заканчивается любая из секций

Section !Плагины Plugins ; - Знак "!" означает, что пункт жирным текстом
SectionIn 1 ; - Принадлежность секции к полной установки
SetOutPath "$INSTDIR\Plugins\" ;папка для выполнения операций
File "Plugin.exe" ; - Распаковываем этот файл в папку $INSTDIR\Plugins
SectionEnd

; Описания программых модулей
; В этой секции написаны макросы, которые позволяют при наведении на компонент для установки показывать его
; описание


!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${Total} "Здесь сам Total Smile"
!insertmacro MUI_DESCRIPTION_TEXT ${Plugins} "А здесь плугу к нему"
!insertmacro MUI_FUNCTION_DESCRIPTION_END

Section "Uninstall" ; данная секция необходима для описания деинсталлятора

Delete "$INSTDIR\Uninstall.exe" ; удаление файлов
Delete "$INSTDIR\Plugins\Plugin.exe"
Delete "$INSTDIR\TOTALCMD.exe"

!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP ; выдираем из реестра путь к ярлыкам и удаляем их
Delete "$SMPROGRAMS\$MUI_TEMP\Total Commander XP"
Delete "$SMPROGRAMS\$MUI_TEMP\Удаление Total Commander XP.lnk"

;Удаляем ненужные пункты меню Пуск
StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"

startMenuDeleteLoop:
RMDir $MUI_TEMP
GetFullPathName $MUI_TEMP "$MUI_TEMP\.."

IfErrors startMenuDeleteLoopDone

StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop
startMenuDeleteLoopDone:

RMDir "$INSTDIR\Plugins\" ; - Удаляем папки (пустые)
RMDir "$INSTDIR"

DeleteRegKey /ifempty HKCU "Software\Total Commander XP" ; удаляем ключ из реестра...
SectionEnd

Ну вот наверное и все самое основное.... Very Happy Здесь я правда не описал действия с ini-файлами... Это может потребоватьсь для подглючения плагинов к Тоталу... Это как-нибудь в другой раз... Smile Если возникнут вопросы - пиши на мыло hackrus@narod.ru или в аську 334-590-563

P.S. Самое удобное создавать скрипты в HM NIS Edit http://hmne.sourceforge.net/, хотя тоже не плохая программа и Venis IX http://www.spaceblue.com/venis/ - Это кому как нравиться Very Happy



Total Commander -> Общие вопросы


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group