Mars Installer

13
Mars Installer - Um frontend para seus scripts (Parte 1) Um Administrador de Sistemas/Suporte/Analista precisa possuir alguns requisitos para ser realmente bom em sua função. No blog GuraveHaato tem uma série de dicas interessantes para ser um bom Sysadmin e uma, em especial, me chamou a atenção: Dica 4 - "Scriptize" tudo . O pessoal de linux já conhece há muito tempo a importância dos scripts para o suporte. Eles garantem a execução de tarefas rotineiras de maneira cômoda, rápida (nem sempre, mas na maioria), precisa e eficiente. No windows, por ter sua interface gráfica supervalorizada, poucas pessoas utilizam o Prompt de Comando para realizar algumas tarefas que são relativamente fáceis e que agregam todas as vantagens dos scripts. Nesse sentido, resolvi postar um tutorial básico do Mars Installer , um software que serve de frontend para comandos em lote (scripts do Prompt de Comando e até mais alguma coisa), com uma interface gráfica digna de instaladores profissionais (e até bem melhor do que alguns que eu já vi). O Mars Installer está atualmente na versão 1.4, é um Donateware (se for útil pra vc, não custa nada ajudar - o software é muito bom!), compatível com Windows 2000, Windows XP e Vista. Sua grande vantagem é que ele permite uma customização fácil e completa, bastando editar um arquivo .INI para isso. Abaixo encontra-se um screenshot de uma customização que eu fiz para instalação de aplicativos diversos (todos freewares/open-source - diga não à pirataria!):

description

TUTORIAL WPI

Transcript of Mars Installer

Mars Installer - Um frontend para seus scripts (Parte 1)

Um Administrador de Sistemas/Suporte/Analista precisa possuir alguns requisitos para ser realmente bom em sua funo. No blog GuraveHaato tem uma srie de dicas interessantes para ser um bom Sysadmin e uma, em especial, me chamou a ateno: Dica 4 - "Scriptize" tudo.

O pessoal de linux j conhece h muito tempo a importncia dos scripts para o suporte. Eles garantem a execuo de tarefas rotineiras de maneira cmoda, rpida (nem sempre, mas na maioria), precisa e eficiente. No windows, por ter sua interface grfica supervalorizada, poucas pessoas utilizam o Prompt de Comando para realizar algumas tarefas que so relativamente fceis e que agregam todas as vantagens dos scripts.

Nesse sentido, resolvi postar um tutorial bsico do Mars Installer, um software que serve de frontend para comandos em lote (scripts do Prompt de Comando e at mais alguma coisa), com uma interface grfica digna de instaladores profissionais (e at bem melhor do que alguns que eu j vi).

O Mars Installer est atualmente na verso 1.4, um Donateware (se for til pra vc, no custa nada ajudar - o software muito bom!), compatvel com Windows 2000, Windows XP e Vista. Sua grande vantagem que ele permite uma customizao fcil e completa, bastando editar um arquivo .INI para isso. Abaixo encontra-se um screenshot de uma customizao que eu fiz para instalao de aplicativos diversos (todos freewares/open-source - diga no pirataria!):

Com esse software fica muito mais fcil levantar uma imagem de um micro ou reinstalar um aplicativo, pois tudo que for necessrio para sua instalao/configurao estar includo no .INI, da pode-se deixar o Installer fazer o trabalho pesado enquanto fazemos algo mais produtivo (como tomar um cafezinho, por exemplo...).

Quando se faz o download do site do fabricante, o mesmo acompanha dois arquivos de configurao como exemplo, um com todas as opes, outro com as opes mnimas para uso. Nesse post eu vou listar as sees (com o link para cada uma delas), dizendo quais so opcionais e podem ser suprimidas. Vamos l:

1. Seo Options (Opcional): Configura diversas opes bsicas;

2. Seo Language (Opcional): Permite traduzir as mensagens do front-end, inclusive pemitindo traduz-lo para mais de um idioma no mesmo arquivo .INI. Pessoalmente eu achei uma seo poderosa, pois permite mais do que s configurar a linguagem. Explico: imagine que um mesmo software precise ser instalado para o setor de vendas que acessa o servidor X e para o setor de pessoal que acessa o servidor Y, com essa seo podemos criar dois modos de instalao, no mesmo arquivo .INI, onde modifica-se apenas o script com o servidor X ou Y (ficar mais claro na seo de scripts).

3. Seo Category (Opcional): Permite definir diversos grupos para organizar os scripts. Pode-se ver que no screenshot acima os scripts esto divididos nos grupos Imagens, Media, Office, Rede etc.

4. Seo de Scripts (Obrigatria, lgico): As sees anteriores foram somente recursos extras. Aqui que ocorre toda a ao do frontend e onde reside 90% do trabalho.

5. Final: Algumas dicas legais!

Acreditem, a parte de configurao do Installer a parte fcil!!! Na minha humilde opinio, a parte difcil achar quais as linhas de comando certas para configurar os aplicativos. Para que no ficasse um post muito grande, dividi em 5 partes.

Mars Installer - Seo Options (Parte 2)

Na parte 1 foi realizada uma introduo do Mars Installer, nessa segunda parte do tutorial, irei explicar as funes da seo options (Eu sei que essa parte deve ser meio chatinha, se vc estiver com pressa, abaixo tem as configuraes):

Root: pasta principal das instalaes, representada pela varivel %ROOT%, %BDRV% representa a letra do drive onde est o executvel marsinst.exe;

FindCD: procura por determinada pasta nos drives de CD-Rom e, ao encontrar, define a varivel %CDROM% para a letra desse drive;

LogFile: define o caminho do arquivo de log (se WriteLog=1), mas a linha de comando /L tem prioridade sobre este;

WriteLog: grava um log dos scripts executados (0-desativado, 1-ativado, se no definido, o log ser criado no %SYSTEMROOT%);

Reboot: reinicia windows aps terminar as instalaes (0-desativado, 1-ativado);

Delay: tempo em segundos antes de iniciar as instalaes (0-no inicia automaticamente, 1-imediatamente)

DelayExit: tempo em segundos antes de sair ou reiniciar aps terminar as instalaes

Resizable: permite que a janela seja redimensionada (0-desativado, 1-ativado);

StayOnTop: janela sempre no topo (0-janela normal, 1-ativado);

Color: cor de fundo da janela principal;

Width: largura da janela prinicipal;

TreeColor1: cor de fundo da rvore de seleo;

TreeColor2: cor de fundo das categoriaas da rvore de seleo;

SmallFontColor: cor da fonte da descrio pequena;

SelectionColor: cor do item selecionado

SelBorderColor: cor da borda do item selecionado

SelTextColor: cor da fonte do texto principal selecionado

SelSmallTextColor: cor da fonte da descrio do item selecionado;

URLIconType: tipo do cone para URL (valor 1, 2, 3 disponveis);

LockSystem: Sistema ser bloqueado enquanto os scripts so executados (ainda no implementado;

CanStop: permite cancelar a execuo dos scripts (0-desativado, 1-ativado);

DefLang: lngua padro do frontend (se houver mais de uma lngua definida no arquivo);

Debug: modo de debug - o frontend exibir uma mensagem com a linha de comando a ser executada em vez de execut-la (0-desativado, 1-ativado);

Como eu disse, essa uma parte um pouco mais chatinha, mas depois de configurada a primeira vez, no precisamos mais nos preocupar. Abaixo segue as configuraes que eu uso. Basta copiar e colar no seu arquivo:

[Options]Root=%BPATH%FindCD=marsinst.exeLogFile=%TEMP%\marsinst.logWriteLog=1Reboot=0Delay=30DelayExit=20Resizable=1StayOnTop=0Color=$49DDEFWidth=550SelectionColor=$55AAFFSelBorderColor=$0088FFSelTextColor=$000000SelSmallTextColor=$666666URLIconType=3CanStop=1DefLang=1Debug=0

Ainda no chegamos na parte trabalhosa.. Na parte 3, eu mostrarei como fazer a traduo do Installer!

Mars Installer - Seo Language (Parte 3)

Na parte 2, foi mostrada a seo de opes bsicas. Nessa parte, mostrarei logo a configurao que eu uso e vcs vero que no tem muito mistrio a seo Language:

[Language1]

Name=Setor de Vendas (Aqui est a sacada: em vez de usar para traduzir o frontend, eu prefiro usar para customizar as instalaes, veja na imagem mais abaixo)Codepage=1252Title=Instalao de Aplicativos DiversosInfo=Selecione o software para instalar:BTN_Install=InstalarBTN_Stop=PararBTN_Exit=SairBNT_Reboot=ReiniciarTXT_About=&SobreTXT_Installing=Instalando software selecionados:TXT_Complete=Instalao finalizada!TXT_Programs=Softwares a instalar:TXT_Of=deTXT_CheckAll=Selecionar tudoTXT_UnCheckAll=Desmarcar tudoTXT_ExpandAll=Expandir todasTXT_CollapseAll=Fechar todasTXT_Default=PadroTXT_Version=VersoTXT_AutoInst=Instalao Automatizada de SoftwareTXT_Copyright=Copyright porMSG_SureToStop=Deseja realmente parar a instalao?A instalao atual ser finalizada!

Efeito de mais de um Language definido no .INI

Deu pra entender, certo? Se quisermos criar um [Language2], basta copiar o mesmo contedo e mudar o que for necessrio.

Se omitirmos essa seo, o Installer vir em ingls. Na parte 4, vcs vero que pode-se usar um recurso para, baseado na opo de Language, usar uma ou outra linha de comando e customizar sua instalao (esse Mars Installer bom ou no ?).

Mars Installer - Seo Grupos e Scripts (Parte 4)

Agora chegou a hora da ao de verdade. Na parte 3, foi mostrado como traduzir o Mars Installer. Agora vamos ver os grupos e os scripts.

Name1: nome do grupo se a Language1 estiver selecionada (ex.: Media);

Name2: nome do grupo se a Language2 estiver selecionada (e por a vai... depende da quantidade de Languages existentes);

Root: outra opo super interessante - permite que vc defina qual a varivel %ROOTC% para o grupo atual, assim vc pode organizar seus scripts em uma pasta e quando precisar us-los nos scripts, basta referenciar pelo %ROOTC% (ex.: Root=%ROOT%\Media\)

Collapsed: grupo aparece recolhido como padro (0-desativado, 1-ativado);

Checkbox: exibe o checkbox para selecionar o grupo inteiro a executar (0 - desativado, 1-ativado);

Icon: permite selecionar um cone interno ao frontend para representar o grupo (veja na parte 5);

Abaixo segue um exemplo das minhas configuraes:

[Category1]Name1=ImagensRoot=%ROOT%\Imagens\Checkbox=1Icon=8

[Category2]Name1=MediaRoot=%ROOT%\Media\Checkbox=1Icon=3

E, finalmente, os scripts:

Name: ttulo do script (aparecer do mesmo jeito em todas as Languages);

Desc1: pequena descrio para a [Language1] (use 'Desc1=' se no houver Languages definidas ou somente uma definida);

Desc2: pequena descrio para a [Language2] e por a vai...

URL: exibe um cone com um link para um site na internet

Radio: permite a criao de um radio box (seleo mutuamente exclusiva), definidas por grupos (ex.: Radio=2 - todos os scripts que tiverem essa linha sero mutuamente exclusivos - somente um deles poder ser selecionado por vez);

Category: a qual grupo o script pertence;

Default: script aparecer selecionado como padro;

Visible: script ser exibido na lista de seleo para o usurio (ele pode ser invisvel ao usurio, mas se Default=1 ser executado junto com os demais);

Enabled: permite que o usurio selecione o script (0-desativado, 1-ativado);

Icon: permite selecionar um cone interno ao frontend para representar o script (veja na parte 5)

Folder: define a varivel %FOLDER% para apontar a uma determinada pasta (ex.: Folder=%ROOTC%\Irfanview);

Run1: primeira linha de comando a executar - quando for nomes extensos, coloque sempre entre aspas duplas (ex.: Run1="%Folder%\iview420_setup.exe" /silent /desktop=0 /group=1 /allusers=1 assocallusers=1);

Run2: segunda linha de comando a executar (ex.: Run2="%Folder%\irfanview_plugins_420_setup.exe" /silent);

Run3: olha a sacada - podemos usar a Language1 selecionada assim: (ex.: Run3=|lng1|'copy "%Folder%\vendas\i_view32.ini" "%PROGRAMFILES%\IrfanView\" /y');

Run4: se a Language2 estiver selecionada, ento a linha anterior no ser executada, mas essa ser: (ex.: Run4=|lng2|'copy "%Folder%\pessoal\i_view32.ini" "%PROGRAMFILES%\IrfanView\" /y');

Viram s como poderoso o recurso do Language? Eu apenas copiei um arquivo .INI do Irfanview, mas poderia fazer outras coisas, como configurar um IP no Registro do Windows para acesso a um determinado servidor etc. As possibilidades so inmeras com poucas linhas de configurao. Exemplo do meu arquivo de configurao:

[1]

Name=IrfanView 4.20Desc1=URL=http://www.irfanview.com/Category=1Default=1Visible=1Enabled=1Icon=8Folder=%ROOTC%\IrfanViewRun1="%Folder%\iview420_setup.exe" /silent /desktop=0 /group=1 /allusers=1 /assocallusers=1Run2="%Folder%\irfanview_plugins_420_setup.exe" /silentRun3=|lng1|'copy "%Folder%\vendas\i_view32.ini" "%PROGRAMFILES%\IrfanView\" /y'Run4=|lng2|'copy "%Folder%\pessoal\i_view32.ini" "%PROGRAMFILES%\IrfanView\" /y'

[2]

Name=CodecsDesc1=URL=http://www.free-codecs.comCategory=2Default=1Visible=1Enabled=1Icon=21Folder=%ROOTC%\CodecsRun1='"%FOLDER%\klmcodec434.exe" /verysilent /norestart /LoadInf="%FOLDER%\klmcp.ini"'

Antes de todo script, tem que ter um nmero sequencial (aquele [1] e [2] que aparecem). Como j disse anteriormente, configurar o Installer a parte fcil. Saber qual a linha de comando para instalao silenciosa que o difcil.. Na parte 5 e final mostrarei algumas informaes teis e, aos poucos, alguns comandos para instalao silenciosa de alguns aplicativos.

Mars Installer - Dicas (Parte 5 - Final)

Agora que vc j sabe configurar o Mars Installer, podemos finalizar com algumas informaes teis:

Cdigo de cones:

-1 - Sem cone;

0 - Padro;

1 - Antivrus;

2 - Compactadores;

3 - Audio;

4 - Gravadores de CD;

5 - Diagnstico;

6 - Drivers;

7 - Jogos;

8 - Grficos/Imagens;

9 - Informaes;

10 - Internet;

11 - Matemtica;

12 - Portables;

13 - Rede;

14 - Office;

15 - Recuperao;

16 - Proteo de Tela;

17 - Segurana;

18 - Sistema;

19 - Themes;

20 - Tweaks;

21 - Video;

22 - Windows.

Variveis com o caminho s pastas dos sistema (Ateno - somente o %ROOT%, %ROOTC% e %FOLDER% podem ser configurado. As demais so automticas):

%ROOT% - caminho da pasta principal (seo Options);

%ROOTC% - caminho da pasta do grupo (seo Category);

%FOLDER% - caminho da pasta do script (seo Script);

%BDRV% - letra da unidade de onde o marsinst.exe foi executado (ex.: E:);

%BPATH% - caminho completo de onde o marsinst.exe foi executado (ex.: E:\AutoInstall);

%CDROM% - se FindCD no for definido (seo Options), letra do primeiro drive de CD ou disco removvel;

%WINDIR% ou %SYSTEMROOT% - caminho do Windows (ex.: C:\WINDOWS);

%SYSTEMDIR% - caminho do Windows System (ex.: C:\WINDOWS\System32);

%APPDATA% - caminho do Applications Data

%ALLAPPDATA% - caminho do Applications Data de All Users

%PROGRAMFILES% - caminho do Arquivos de Programas (ex.: C:\Arquivos de Programas);

%PROGRAMFILES64% - caminho do Arquivos de Programas x64 em SO x64;

%STARTMENU% - caminho do Menu Iniciar;

%ALLSTARTMENU% - caminho do Menu Iniciar de All Users;

%QUICKLAUNCH% - caminho da barra de Inicializao Rpida;

%DESKTOP% - caminho do Desktop;

%ALLDESKTOP% - caminho do Desktop de All Users;

%SYSTEMDRIVE% - unidade do drive onde o windows est instalado (normalmente C:);

%DOCUMENTS% - caminho dos Meus Documentos;

%ALLDOCUMENTS% - caminho dos Meus Documentos de All Users;

%STARTUP% - caminho da pasta Inicializar (Iniciar->Programas->Inicializar);

%ALLSTARTUP% - caminho da pasta Inicializar de All Users;

%TEMP% - caminho dos Temporrios do Windows (do usurio atual);

Outras dicas:

s vezes o Installer no consegue executar uma linha de comando com nomes extensos, mas basta colocar todo o comando entre aspas simples que ele executa (ex.: Run1='"%FOLDER%\klmcodec434.exe" /verysilent /norestart /LoadInf="%FOLDER%\klmcp.ini"');

Se vc j tiver um SETUP.BAT contendo seus scripts (como eu j tinha...) e ele no funcionar direito, lembre-se do seguinte: o Installer no inicia o .BAT diretamente da pasta onde este se encontra. Ele inicia da %FOLDER%. Eu recomendaria importar todos os seus .BAT para o .INI (no tem nenhuma ferramenta que faa isso - tem que ser feito na munheca - pode parecer trabalhoso, mas evita muita dor de cabea, acredite!);

No Windows 2000 s vezes aparece uma mensagem de erro ao executar o Installer, pedindo por um arquivo GDIPLUS.DLL. Baixe ele aqui e descompacte para o mesmo local do marsinst.exe e seja feliz;

O Windows 2000 no vem com o aplicativo REG.EXE (para configurar o Registro pelo Prompt) como padro. necessrio copi-lo da pasta Support que vem no CD de instalao do W2k;

Eu recomendo deixar a opo de log ativada, ele muito til para debug. Normalmente eu defino para gravar no %TEMP%. O log tem um resumo das variveis, o comando executado e alguns erros que no so exibidos para o usurio ficam registrados l!

Ufa! Esse o final! Espero que esse tutorial seja til para facilitar o trabalho de algum. Depois criarei um post para funcionar como ndice dos comandos de instalao silenciosa que eu uso.