Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Собственная инсталяция

 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
Toni



Joined: 13 Jul 2005
Posts: 26

Post (Separately) Posted: Wed Aug 03, 2005 13:17    Post subject: Собственная инсталяция Reply with quote

Приветствую всех.

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

 !  Avada:
Рассматривамый далее материал (ccылка) изрядно устарел, порядок работы инсталлятора TC с тех пор неколько раз менялся. В "Секретах и советах" оставлять это не имеет смысла, переносится в "Общие вопросы".
Back to top
View user's profile Send private message
iov



Joined: 17 Mar 2005
Posts: 51

Post (Separately) Posted: Wed Aug 03, 2005 23:50    Post subject: используй Inno Setup Reply with quote

установи прогу 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
Back to top
View user's profile Send private message
Parcan



Joined: 15 Dec 2004
Posts: 398
Location: Russian

Post (Separately) Posted: Thu Aug 04, 2005 09:14    Post subject: Reply with quote

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 со всеми приладами! Ну разве не прелесть?!
Back to top
View user's profile Send private message
Toni



Joined: 13 Jul 2005
Posts: 26

Post (Separately) Posted: Thu Aug 04, 2005 12:23    Post subject: Reply with quote

Огромный сэнкс!!!
Back to top
View user's profile Send private message
LocKtaR-o-DarK



Joined: 12 Aug 2005
Posts: 349
Location: Москва

Post (Separately) Posted: Fri Aug 12, 2005 04:30    Post subject: Reply with quote

Привет, мужики.
Может подскажете как сделать
установку любимого тотала в nsis?
Предел мечтаний.
Если не трудно... А?
_________________
        
Back to top
View user's profile Send private message
hackrus



Joined: 18 Oct 2005
Posts: 7
Location: Moscow

Post (Separately) Posted: Tue Oct 18, 2005 06:33    Post subject: Reply with quote


Ну, самое простое в 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
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group