# Instalação Desassistida do OpenOffice.org (AKA BrOffice.org) para Windows # # v2.1.3 - 2007/10/10 (Qua) 13:10:29 (BRST) # Paulo R. Bagatini <arkanon@ceat.net> # # A última versão deste documento pode ser obtida em # <http://www.ceat.net/~arkanon/instalacao_desassistida_ooo/> # # Eventualmente, mais coisas úteis/inúteis/curiosas sobre vários assuntos podem vir a ser disponibilizadas (não quer dizer # que estão ou serão) em <http://www.ceat.net/~arkanon/> # Essa é uma versão beta da nova versão do tutorial. Vou publicar assim como está, pois estou meio sem tempo, e, se ficar # segurando, é capaz do arquivo final nunca ir ao ar. Sempre que for possível, vou trabalhar nele. # # Devido ao fato de eu finalmente aprender a usar as característica do M$ Installer, 99,9% do processo foi simplificado. # Basicamente, agora tudo se resume a um comando (ou dois) :-( :-p # # Em contra-partida, será possível transformar o tutorial num script, tanto pelo ambiente Linux, quanto Windows, afinal somente # instalar o OOo numa rede com muitas estações pode não ser suficiente... ;-). # # Por coincidência, paralelamente às minhas descobertas, Frank Peters <fpe@openoffice.org>, gerente de Documentação da Sun # Microsystems in Hamburg, publicou em 2 de outubro de 2007 informações muito semelhantes às minhas novas, no Wiki do OOo. # Vocês podem vê-las em <http://wiki.services.openoffice.org/wiki/Documentation/How_Tos/Automatic_Installation_on_Windows>. # Eu já incorporei algumas dessas informações no texto abaixo. # # É isso aí. # [Para os apressadinhos] 7z x BrOo_2.3.0_Win32Intel_install_pt-BR.exe msiexec /qn /norestart /l install.log /i brofficeorg23.msi \ INSTALLLOCATION="c:\\broo-2.3.0" \ USERNAME="Free User" \ COMPANYNAME="Free Company" \ ADDLOCAL="ALL" \ SELECT_WORD=1 \ SELECT_EXCEL=1 \ SELECT_POWERPOINT=1 # Pelo Windows, pode-se precisar "start /wait" antes do comando "msiexec ..." # Pronto. # # O resto abaixo é uma mistura de outras informações relacionadas a instalação que podem ser úteis, mas que eu vou # organizar com tempo. # ( # Ao longo do texto, nos comentários, existem valores constantes que, por motivo de legibilidade, não devem ser abstraídos com o # uso de variáveis, como nos comandos Linux. Para chamar a atenção a eles, foram colocados entre [[ ]]. Isso vai me lembrar de # alterá-los em novas versões do tutorial e alertar o leitor de que podem ser diferentes na máquina dele. Portanto, leiam esses # valores sempre sem os dois abre e fecha colchetes :-p # ) # [TODO] # # Cogroo # JRE # LangPack # SlackBuild # Dicionarios Tematicos # Viewers da M$ # ODF Viewer # .reg para remover o OOo # .reg para instalar e remover os viewers da M$ # [Apresentação] # # Esse tutorial é fruto de experiências pessoais ao longo de vários anos de trabalho em rede mista com Slackware Linux # e Windows 95..2003 no Colégio Evangélico Alberto Torres <http://www.ceat.net/>, Lajeado <http://www.lajeado-rs.com.br/>, # RS <http://www.estado.rs.gov.br/>. Ele começou na época do StarOffice 5.1 e chegou à presente forma com a versão 2.0 de # 30/06/2007 para participar do "1º Concurso de Dicas e Tutoriais para o BrOffice.org" <http://broffice.org/concurso/>, # realizado no período de 4 de fevereiro a 30 de junho de 2007. # [Uso deste documento] # # O procedimento apresentado foi exaustivamente testado, e funciona perfeitamente na MINHA máquina, com a minha configuração # e com as versões dos softwares listados abaixo. Mesmo assim, em se tratando de informática, a Lei de Murphy prevalece, # sendo 101% certo que se você tentar executá-lo na SUA máquina, ele não vai funcionar de primeira. Por isso, não assumo # qualquer responsabilidade por qualquer dano físico, lógico ou moral que o uso dele possa acarretar em sua máquina, instalação, # rede ou cérebro. Utilize as informações aqui presentes por sua própria conta e risco. # # LEMBRE-SE: se você ainda não consegue entender o que as partes desse procedimento fazem, pode não conseguir ajustá-lo facilmente # para se adaptar a sua situação, e, portanto, não pode reclamar se alguma coisa sair errado. # # Infelizmente, apesar da cara de script desse arquivo, ele não funcionará se for salvo, tornado executável e executado, # simplesmente porque nesse processo há passos que não podem ser automatizados, como, por exemplo, o preenchimento dos campos # do instalador do BrOo e a exportação das propriedades do MSI :-( Mesmo assim, o formato dele é muito cômodo, pois se # formos copiando e colando parte a parte, separadas pelos passos não automatizáveis, quase não teremos trabalho para # atingir o objetivo que o tutorial se propõe a auxiliar. Também é necessário parametrizar certos valores, como o nome de # alguns arquivos, para que o procedimento funcione tanto para o BrOo quanto para o OOo. # # Você é livre para usar, copiar, modificar e passar adiante esse tutorial; tudo o que eu peço é que mantenha os créditos # originais. Se encontrar erros ou tiver sugestões que possam melhorá-lo ou ajustá-lo a outras situações, sinta-se a vontade # para publicá-los ou enviá-los para mim. # # Aviso logo de início que eu gosto de tirar sarro da Microsoft. Quem se ofende com isso, quem acha que é falta de # profissionalismo, pode parar de ler e ir instalar o BrOffice.org a mão... bem ao estilo M$ >:-) # # Versões dos principais softwares utilizados: # # - Slackware [[12.0]] *sem* GNOME # - Kernel [[2.6.22.9]] compilado por mim com os parâmetros do Kernel [[2.6.21.5]] Huge SMP default do Slackware [[12.0]] # - XOrg [[1.3.0]] com a extensão GLX ativada # - GNU sed [[4.1.5]] # - GNU bash [[3.1.17(2)]] # - GNU Wget [[1.10.2]] # - Lynx [[2.8.6rel.5]], libwww-FM [[2.14]], SSL-MM [[1.4.1]], OpenSSL [[0.9.8e]], ncurses [[5.6.20070217(wide)]] # - 7-Zip [[4.55 beta]], oriundo do [[repositório italiano Slacky]] # <http://www.slacky.eu/repository/slackware-12.0/system/p7zip/4.55/> # - WINE [[0.9.46]], oriundo do [[repositório italiano Slacky]] # <http://www.slacky.eu/repository/slackware-12.0/utilities/wine/0.9.46/> # - BrOffice.org [[2.3.0]] (de [[22/09/2007]]) para Windows, oriundo do [[mirror LinOrg]] # <http://linorg.usp.br/OpenOffice.org/localized/pt-BR/2.3.0/> # - conta de usuário comum # # Na sua máquina: ( cat /etc/slackware-version gnome-about --version uname -sr Xorg -version 2>&1 | head -2 | tail -1 Xorg :999 -probeonly -verbose 2>&1 | grep extensions sed --version | head -1 bash --version | head -1 wget --version | head -1 lynx --version | head -2 | sed '$!N;s/\n/, /' 7z | head -2 | tail -1 wine --version ) # [Introdução] # # Qualquer pessoa que se torna responsável por manter em funcionamento, com as devidas e freqüentes atualizações, # um conjunto considerável de servidores e/ou estações, rodando qualquer sistema operacional que seja, logo percebe # as vantagens que uma instalação desassistida apresenta: automação, rapidez, redução de erro humano e padronização # são algumas que me ocorrem no momento. # # No mundo Unix, instalações e manutenções desse tipo são a regra, e são triviais de se fazer. Apenas quando se é # obrigado a usar Windows é que elas podem se tornar bichos de 7 cabeças, devido a vários fatores, mas principalmente # ao fato dos instaladores espalharem entradas por todo o registro e não apresentarem ferramentas que permitam fazer # isso sem que se instale o aplicativo com o instalador. Então o administrador (ou usuário, eventualmente) fica de mãos # atadas. # # Na minha percepção, essa é uma grande falha dos desenvolvedores que preparam pacotes para Windows. Nossa vida seria # muito mais fácil, e esse tutorial se tornaria inútil :-p, se tais desenvolvedores fornecessem junto com o aplicativo # uma ferramenta que permitisse programar o registro do Windows da mesma forma que o instalador do pacote, mas sem # ter que realizar a instalação propriamente dita. Na verdade, isso deveria ser função do gerenciador de instalação. # O desenvolvedor mandaria junto um arquivo de configuração em texto plano que o msiexec (no caso) leria e executaria, # fazendo o papel do final da instalação do pacote. # # Mas aí nós já estamos querendo algo mais que apenas um aplicativo livre. Estamos querendo um Sistema Operacional livre :-D # # O artifício técnico (= enjambra :) que apresentarei pode ser aplicado para qualquer software que seja instalado por # meio de um pacote MSI. Dois exemplos próximos são o Firefox e o Thunderbird. # # A idéia exposta nesse tutorial envolve 4 passos básicos: # - instalar o BrOo UMA vez, em qualquer diretório (não precisa nem mesmo ser aquele do qual se pretende rodá-lo); # - extrair do .msi da instalação do BrOo as alterações de registro do Windows e gerar um .reg com elas, utilizando # a informação do diretório de onde se pretende rodar o BrOo; # - copiar os arquivos do BrOo instalado para o diretório final, preferível, mas não obrigatoriamente, de rede; # - aplicar o .reg ao registro do Windows. # # Realizei todos os passos num Slackware com WINE, conforme a configuração citada acima, mas nada impede que boa parte # deles seja executada a partir do Windows. A vantagem de se executar o processo usando o WINE é que, além de não estar # usando Windows :-p, dessa forma não poluímos o registro dele e podemos fazer n testes sem preocupações quanto a isso. # # Apenas o passo da geração do .reg exige um sistema *nix. Talvez pelo Windows se possa usar o CygWin ou talvez então # alguém se aventure a realizá-lo com outras ferramentas mais "mundanas" :-p # [Preparando o terreno] # Uma variável auxiliar, útil para quando formos refazer tudo isso com outra versão do BrOo ;-) broo_ver="2.3.0" broo_ver_major=`echo $broo_ver | cut -d. -f1` broo_ver_minor=`echo $broo_ver | cut -d. -f2` broo_ver_patch=`echo $broo_ver | cut -d. -f3` # No home do usuário, vamos manter todos os arquivos do processo. Até o final, para a versão [[2.3.0]] do BrOo serão # necessários pelo menos [[500 MiB]] (incluídos aí [[3.5 MiB]] para o diretório do WINE). #mkdir -p $HOME/broo-$broo_ver/{setup,files} mkdir -p $HOME/broo-$broo_ver # Preparamos uma estrutura limpa do WINE, separada de qualquer estrutura padrão dele, e linkamos o diretório, onde todos # os arquivos vão ficar, para o drive c: do WINE. # # Por default, o WINE será configurado como Windows 2000. Nao sei se é possível escolher não interativamente outra # versão de Windows, mas esse default é satisfatório para o BrOo. Nos casos onde uma versão específica de Windows é # exigida, podemos setá-la usando o configurador interativo do WINE: 'winecfg' export WINEPREFIX="$HOME/.wine-broo" wineprefixcreate cd $WINEPREFIX/drive_c ln -s $HOME/broo-$broo_ver . cd broo-$broo_ver # Rodando o 'winecfg', podemos perceber que, eventualmente, ele está com algum problema na fonte dos textos das janelas. # A solução é simples. Editamos o arquivo '$WINEPREFIX/system.reg' e substituimos # "MS Shell Dlg"="Tahoma" # "MS Shell Dlg 2"="Tahoma" # por # "MS Shell Dlg"="MS Sans Serif" # "MS Shell Dlg 2"="MS Sans Serif" # # Ou, melhor ainda, como root, editamos o arquivo '/usr/share/wine/wine.inf', acrescentamos a linha # HKLM,%FontSubStr%,"MS Shell Dlg",,"MS Sans Serif" # e alteramos # HKLM,%FontSubStr%,"MS Shell Dlg 2",,"Tahoma" # por # HKLM,%FontSubStr%,"MS Shell Dlg 2",,"MS Sans Serif" # # As configurações desse arquivo são o default para todos os usuários que ainda não tem uma configuração pessoal do WINE. # Para os que já têm, ou apagamos e recriamos o $WINEPREFIX ou usamos o esquema acima. # [Baixando o pacote do BrOo para Windows] # site="ftp://broffice.org/stable/$broo_ver" # site="http://linorg.usp.br/BrOffice.org/stable/$broo_ver" site="http://ftp.ceat.net/pub/windows" file="BrOo_${broo_ver}_Win32Intel_install_pt-BR.exe" # [[107 MiB]] log="l.$file.log" timeout=60 # s wait=5 # s tries=0 # infinito wget -w $wait --random-wait -c -t $tries -T $timeout -a $log "$site/$file" # [Descompactando e instalando (*NOVO*)] # strings $file | grep -i version # # Pelo retorno do comando acima, vemos que o executável é um compactado auto-descompactável, criado com o Nullsoft (NSIS, NullSoft # Installation System, v[[2.04]]). Um pouco de Google e descobrimos que o 7-Zip descompacta arquivos NSIS. Alias, ele também # descompacta .cab e .msi, o que é muito interessante :-) # # O 7-Zip é um compactador de arquivos com alta taxa de compressão. É um software livre, distribuído sob a GNU LGPL. # Segundo o site, "Geralmente o 7-Zip comprime para o formato 7z de 30 a 70% melhor que no formato zip. E o 7-Zip comprime para o # formato zip de 2 a 10% melhor que outro programa compatível com o zip." # # <http://www.7-zip.org/pt-br/> # # Se o 7-Zip não estiver instalado no seu sistema, pode ser obtido num dos endereços abaixo. # # Código fonte e binário para Windows (até a versão 4.55, na data desse documento) # <http://sourceforge.net/project/showfiles.php?group_id=14481> # # Código fonte e binário para Linux (até a versão 4.55, na data desse documento) # <http://sourceforge.net/project/showfiles.php?group_id=111810> # # Pacote para Slackware 12 # <http://www.slacky.eu/repository/slackware-12.0/system/p7zip/> 7z x -osetup $file msi="brofficeorg${broo_ver_major}${broo_ver_minor}.msi" # 7z x -otables $msi # 7z x -ocab1 brofficeorg1.cab # 7z x -ocab2 brofficeorg2.cab # 7z x -ocab3 brofficeorg3.cab # 7z x -ocab4 brofficeorg4.cab # <http://www.microsoft.com/technet/prodtechnol/windowsserver2003/pt-br/library/ServerHelp/9361d377-9011-4e21-8011-db371fa220ba.mspx> # <http://msdn2.microsoft.com/en-us/library/aa367832.aspx> # <http://helpnet.installshield.com/robo/projects/HelpLibDevStudio9/IHelpCmdLineMSI.htm> # <http://wiki.services.openoffice.org/wiki/Documentation/How_Tos/Automatic_Installation_on_Windows> # <http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment-guide/silent.html> # Usando diretamente o msiexec, tornam-se desnecessários os seguintes objetos: cd setup rm -rf \$PLUGINSDIR setup.* instmsi* licenses/ readmes/ cd rm -rf $WINEPREFIX wineprefixcreate cd $WINEPREFIX/drive_c ln -s $HOME/broo-$broo_ver . cd broo-$broo_ver/setup INSTALLLOCATION="c:\\broo-$broo_ver\\files" COMPANYNAME="Free Company" USERNAME="Free User" ADDLOCAL="ALL" REMOVE="ALL" SELECT_WORD=1 SELECT_EXCEL=1 SELECT_POWERPOINT=1 # Instalação administrativa msiexec /qn /norestart /l install.log /a $msi \ INSTALLLOCATION="$INSTALLLOCATION" \ COMPANYNAME="$COMPANYNAME" \ USERNAME="$USERNAME" \ ADDLOCAL="$ADDLOCAL" \ SELECT_WORD=$SELECT_WORD \ SELECT_EXCEL=$SELECT_EXCEL \ SELECT_POWERPOINT=$SELECT_POWERPOINT # Remover msiexec /qn /l remove.log /x $msi # Registrar msiexec /qn /l register.log /fum $msi # [ODF Viewer] <http://opendocumentfellowship.org/odfviewer/> # [O corretor ortográfico e afins] # # Se quisermos atualizar/instalar o corretor ortográfico: # # <http://broffice.org/verortografico/> # <http://www.deso-se.com.br/downloads/download.php?arquivo=pt_BR-2007-04-11> # # Em files/share/dict/ooo residem os arquivos de # correção ortográfica: pt_BR.{aff,dic} # hifenização: hyph_pt_BR.dic # sinônimos: th_pt_BR_v2.{dat,idx} # temáticos: # # Inserir, se necessário, no arquivo dictionary.lst: # DICT pt BR pt_BR # # Para os arquivos de hifenização e de sinônimos (thesaurus) as entradas no arquivo dictionary.lst sao: # HYPH pt BR hyph_pt_BR # THES pt BR th_pt_BR_v2 last="pt_BR-2007-04-11" # [[1.3 MiB]] # É possível descobrir automaticamente a data da última atualização do corretor: site="http://broffice.org/verortografico" # site="http://ftp.ceat.net/pub/windows" last=`lynx -dump $site | grep arquivo=pt_BR | cut -d= -f2` # Baixamos o pacote site="http://www.deso-se.com.br/downloads" # site="http://ftp.ceat.net/pub/windows" file="$last.zip" log="l.$file.log" timeout=60 # s wait=5 # s tries=0 # infinito wget -w $wait --random-wait -c -t $tries -T $timeout -a $log "$site/$file" cd files/share/dict/ooo unzip ../../../../$file mv README.TXT README_pt_BR.txt # Caso o dicionário ainda não exista na lista de dicionários (como no caso da versão 2.2.1 do BrOo), adicionamos: tab=$'\x09' grep -q "DICT[ $tab]*pt[ $tab]*BR[ $tab]*pt_BR" dictionary.lst || echo "DICT pt BR pt_BR" | todos >> dictionary.lst # No caso dos arquivos de hifenização e de sinônimos, o processo é idêntico. # Não consegui descobrir o site oficial para download desses arquivos, por isso é possível que eles não estejam mais sendo # atualizados. Se for esse o caso, e eles não estiverem presentes na versão do BrOo que está sendo instalada (como a 2.2.1), # é só pega-los de alguma instalação antiga. # # Uma vez rodando o BrOo, ele deve automaticamente reconhecer palavras em pt_BR ortograficamente erradas; senão, no menu # Ferramentas > Opções|Configurações de Idioma|Idiomas # selecionamos 'Português (Brasil)'. Ele deve, então, começar a usar os arquivos *pt_BR*. Verificamos isso indo em # Ferramentas > Opções|Configurações de Idioma|Recursos de Verificação Ortográfica|Editar # Ele deve listar a língua e os arquivos que estão sendo usados. # <http://www.broffice.org/dicionarios_tematicos> lynx -dump -listonly http://www.broffice.org/dicionarios_tematicos | grep files | cut -d. -f2- cd ../../../.. # [O corretor ortográfico e afins pelo ambiente Windows] # # (Esta seção é equivalente à anterior. Se a seção anterior resolveu o seu problema, as informações desta são completamente # redundantes para você.) # # Se você não entendeu os passos da seção acima ou é obrigado a usar Windows e não tem acesso a uma máquina com Linux, # esta seção mostra uma forma manual equivalente, usando o Windows Explorer e o Notepad: # # - certifique-se que o BrOo está com todas as suas instâncias fechadas para todos os usuários da máquina. Talvez isso # não seja realmente necessário, mas não dói nada garantir ;) # # - pelo Windows Explorer, acesse, dentro do diretório de instalação do BrOo, o diretório 'share/dict/ooo' # # - verifique se o diretório contém os seguintes arquivos: # dictionary.lst # hyph_pt_BR.dic # pt_BR.aff # pt_BR.dic # th_pt_BR_v2.zip # Ao invés de 'th_pt_BR_v2.zip', ele pode conter o arquivo 'th_pt_BR_v2.dat', que é o conteudo do arquivo zip. # Eventualmente pode conter também um arquivo 'th_pt_BR_v2.idx', e tudo o que sei a respeito dele, é que, ou não é mais # necessário, ou é gerado automaticamente. # # - como dito na seção anterior, # dictionary.lst é o arquivo de configuração dos vários dicionários nas várias línguas instalados no BrOo # hyph_<lang>.dic são arquivos de hifenização, # <lang>.* são arquivos do corretor ortográfico e # th_<lang>_v2.* são arquivos do dicionário de sinônimos (thesaurus). # Cada um dele é independente, e você pode instalá-los ou não, conforme seu desejo e necessidade, com exceção, # obviamente, do arquivo de configuração, que é obrigatório ;-) # # - procure em alguma instalação anterior do BrOo os arquivos faltantes que você deseja instalar e copie-os para o diretório, # ou baixe a última versão do arquivo do corretor ortográfico. Ele pode ser encontrado em: # <http://broffice.org/verortografico/> # # - abra o Notepad e arraste para cima dele o arquivo 'dictionary.lst' (ou vá em Arquivo, Abrir, e ache esse arquivo) # # - o arquivo deve conter, entre outras linhas relacionadas a outras linguas, as seguintes: # DICT pt BR pt_BR # HYPH pt BR hyph_pt_BR # THES pt BR th_pt_BR_v2 # # - se alguma delas não existir, acrescente-a # # - salve as alterações e feche o Notepad # # - Execute o BrOo (seu iniciador rápido e crie ou abra um arquivo, ou abra algum dos aplicativos) # # - Se ele não reconhecer palavras em português erradas, vá no menu Ferramentas > Opções|Configurações de Idioma|Idiomas e # selecione 'Português (Brasil)'. Ele deve automaticamente começar a usar os arquivos *pt_BR*. Verifique isso indo em # Ferramentas > Opções|Configurações de Idioma|Recursos de Verificação Ortográfica|Editar. Ele deve listar a língua e os # arquivos que estão sendo usados. # A linguagem em que uma porção de texto foi escrita faz parte das configurações do caracter. Assim, textos escritos antes # que o BrOo tenha incorporado os arquivos de ortografia em pt_BR, ou com a língua configurada para outra que não pt_BR, # podem não ter suas palavras em português erradas reconhecidas de forma adequada. # # Nesse caso, selecionamos o texto cujos erros não são identificados, vamos no menu Formatar > Caracter|Fonte|Idioma e # selecionamos 'Português (Brasil)'. # [O corretor gramatical (*EM DESENVOLVIMENTO*)] # # CoGrOO - Corretor Gramatical acoplável ao OpenOffice.org <http://cogroo.sf.net/> # for i in server gui do site="http://cogroo.sourceforge.net/download/current.html" # site="http://ftp.ceat.net/pub/windows" file=`lynx -dump $site | grep "http.*\.rpm$" | grep $i | awk -F/ '{print$NF}'` site="http://downloads.sourceforge.net/cogroo" # site="http://ftp.ceat.net/pub/windows" log="l.$file.log" timeout=60 # s wait=5 # s tries=0 # infinito wget -w $wait --random-wait -c -t $tries -T $timeout -a $log "$site/$file" rpm2tgz $file rm -f $file basename=`basename $file .rpm` mkdir -p $basename ( cd $basename tar zxvf ../$basename.tgz ) done # [Editando o MSI] # # Agora, no WINE, o diretório 'c:\broo-[[2.3.0]]\files' contém uma instalação completa do BrOo. Mais adiante, seu conteúdo será # copiado para o local definitivo, de onde o BrOo será executado. # # Falta apenas gerar o .reg que fará o papel do instalador nas máquinas que rodarão o BrOo. # # Essa é a parte legal e mentalmente estimulante. Infelizmente ainda é um pouco braçal, por precisar de uma ferramenta feita # pela Microsoft, que, como tudo que ela faz, valoriza as pernas, mas não a cabeça. # # Precisamos saber que alterações o instalador faz no registro do Windows. Certamente elas estão guardadas no arquivo .msi, # já que, como vimos, o setup.exe é "inutil". Perguntamos ao Oráculo que programa podemos usar para ver ou editar as # propriedades de um arquivo .msi e ele, em sua benevolência, nos responde: o rrr... c aaaaaa... :-) # # O Orca é um editor extremamente básico das propriedades de um MSI, criado pela M$ só para não dizerem que ela criou mais # um "padrão" e não deu suporte a ele. # <http://support.microsoft.com/kb/255905/pt-br> # # Tem o manual: # <http://msdn2.microsoft.com/En-US/library/aa370557.aspx> # # que equivale a: # wine <orca_exe> -? # que apenas prova que a Micro$oft não oferece nada de especial, pelo menos de graca :-p # # A documentação da M$ sugere usar o Orca que vem com o PSDK (Windows Server 2003 SP1 Platform SDK), mas a versão [[0.9.46]] do # WINE não consegue instalá-lo, nem ao .msi contido no executável. # # Por sorte(?) é possivel encontrar apenas o Orca (.msi) para download: # <http://www.brentnorris.net/orca.msi> versão 3.1.4000.2049 # # Vamos baixá-lo. Esse passo não precisará ser novamente realizado para outras versões do BrOo, claro. Inclusive, guardando # o diretório onde o Orca for instalado, mesmo perdendo a configuração do WINE, não seré preciso instalá-lo novamente. # Ainda bem... # site="http://www.brentnorris.net" site="http://ftp.ceat.net/pub/windows" file="orca.msi" # [[1.9 MiB]] log="l.$file.log" timeout=60 # s wait=5 # s tries=0 # infinito wget -w $wait --random-wait -c -t $tries -T $timeout -a $log "$site/$file" # Instalamos o Orca. # # Essa é a terceira parte não automatizável do procedimento. Nem preciso dizer por que... >:-p # wine msiexec /i orca.msi # Instalamos em 'c:\broo-$broo_ver\orca' # Tentamos rodar, só pra ver a cara dele: wine orca/Orca.exe # err:module:import_dll Library MFC42u.dll (which is needed by L"Z:\\home\\arkanon\\broo-[[2.3.0]]\\orca\\Orca.exe") not found # O Orca, dependendo da versão, utiliza a dll 'mfc42.dll' ou 'mfc42u.dll'. # Se o sistema não as possui (WINE, basicamente), podem ser encontradas nos links abaixo: # <http://www.dll-files.com/dllindex/pop.php?mfc42> # <http://www.dll-files.com/dllindex/pop.php?mfc42u> # Baixamos, descompactamos e colocamos no diretório onde o Orca foi instalado. # O download dessas DLL's pode ser automatizado: site="http://www.dll-files.com/dllindex/pop.php" dll="mfc42u" # [[456 kiB]] url=`lynx -dump $site?$dll | grep download.php | awk -F\ '{print$NF}'` log="l.$dll.zip.log" timeout=60 # s wait=5 # s tries=0 # infinito wget -w $wait --random-wait -c -t $tries -T $timeout -a $log -O $dll.zip $url unzip -qo $dll.zip cat readme.txt rm -f readme.txt mv $dll.dll orca # Agora, provavelmente ele roda :-) # [Gerando as entradas para o registro] # # Essa eh a quarta parte não automatizável. A menos que o Orca tenha parâmetros não documentados, como o fdisk :-p # # Precisamos editar o arquivo MSI do BrOo no Orca e exportar a tabela 'Registry'. wine orca/Orca.exe setup/*.msi # # - menu Tables, opção Export Tables # - output directory: o desejado. Provavelmente o default é adequado. # - usar nomes longos: caso o nome da tabela tenha mais de 8 caracteres, que não é o nosso caso # - na lista de tabelas, selecionar: Registry # - ok # Será gerado um arquivo Registry.idt em . (c:\broo-[[2.3.0]]) idt_file="Registry.idt" # A tabela Registry contém todas as alterações que o MSI vai realizar no registro do Windows. # O que precisamos fazer agora, é converter o arquivo .idt para o formato .reg (Windows Registry Patch) # # Analizando a estrutura do arquivo .idt, constatamos: # # 1. ele tem 6 colunas, separadas por um TAB # 2. as três primeiras linhas são especiais # - a primeira é o rótulo de cada coluna # Registry Root Key Name Value Component_ # - a segunda é o tipo e tamanho de dado em cada coluna # s72 i2 l255 L255 L0 s72 # - a terceira diz: # Registry Registry # :-p # 3. somente as colunas 2 *a* 5 nos interessam # 4. observando a coluna Root, vemos que (pelo menos nesse caso) só apresenta dois valores: 0 e -1 # Pelo tipo de chaves (coluna Key) que estão associadas a esses valores, concluímos que # 0 representa o ramo CLASSES_ROOT do registro # -1 representa o ramo LOCAL_MACHINE do registro # 5. algumas linhas não tem valor na coluna Name. Nesse caso, a experiência de vida :-p nos diz que # Name = @ (default value, no registro) # 6. o diretório de instalação do BrOo é representado por uma string: [INSTALLLOCATION] # Todas as strings que representam variáveis, aliás, aparecem entre colchetes. Podemos facilmente indentificá-las: cat $idt_file | cut -f5 | grep -E "\[.*\]" | sort | uniq # # Então, o que temos que fazer é deixar cada linha do .idt da forma: # # [HKEY_$root\$key] # "$name"="$value" # # substituindo as ocorrências de [INSTALLLOCATION] pelo caminho onde o BrOo será encontrado no ambiente Windows. # Barbada! Mãos à obra: # Um arquivo .reg tem que ter linhas terminadas com CR+LF, já que pertence ao Mundo M$. Por isso teremos que converter # qualquer arquivo gerado pelo Linux usando o comando 'todos'. Por outro lado, se ele tiver sido gerado no Windows e # for trabalhado no Linux (como o caso do arquivo .idt), é preciso convertê-lo usando o comando 'fromdos'. # Inicializamos o arquivo .reg echo -e "REGEDIT4\n" | todos >| setup.reg idt_str="INSTALLLOCATION" # string no arquivo .idt que representa o caminho de instalação do aplicativo win_dir="h:/ooo/$broo_ver" # caminho de instalação do aplicativo no ambiente Windows, com slashes ao invés de backslashes # Abaixo, o comando 'cut' seleciona as colunas 2 a 5, considerando o separador padrão de campo (tab) cat $idt_file \ | fromdos \ | cut -f2-5 \ | sed ' 1,3d # deletamos as 3 primeiras linhas s;^0\t;CLASSES_ROOT\t; # trocamos '0' no início da linha por CLASSES_ROOT s;^-1\t;LOCAL_MACHINE\t; # trocamos '-1' no início da linha por LOCAL_MACHINE s;\t\t;\t@\t; # 2 tabs em seqüência só acontecem se a coluna Name é vazia, ou seja, Name = @ s;\([^\t]*\)\t\([^\t]*\)\t\([^\t]*\)\t\([^\t]*\);[HKEY_\1\\\2]\n§\3§=§\4§\n; # quebramos cada linha no formato de uma entrada de .reg, mas ao invés de colocar # entre aspas, colocamos entre §. Isso vai facilitar muito os próximos passos. # Depois a gente troca por aspas como deve ser. s;\['$idt_str'\];£'$win_dir'/; # substituímos a string idt que representa o dir de instalação pelo valor # desejado. Deixamos um caracter £ temporariamente no lugar, para futura referência ' \ | sed ' /£/s;\\;/;g # nas linhas com £, substituímos os backslashes por slashes, para combinar com o valor de $win_dir s;//;/; # se houver alguma ocorrência de 2 slashes em seqüência, substituímos por apenas um # a princípio, isso nunca vai acontecer, nem faria mal se acontecesse. É apenas purismo :-p /£/s;/;\\\\;g # agora, onde houver £, trocamos cada slash por 2 backslashes, deixando o caminho como deve ser num .reg s;\";\\\";g # colocamos um backslash à frente de qualquer ocorrência de aspas (por isso que deixamos § no lugar de # aspas no passo anterior) s;§;";g # e agora sim, trocamos os § por aspas. s;£;; # e como não precisamos mais dos £, nos livramos deles. ' \ | todos \ >> setup.reg # Voilá! Como eu sempre digo: a mão que programa o registro, é a mão que domina o Windows :-) # Está feito. Agora é só copiar o conteúdo do diretório 'files' para o diretório especificado em $win_dir, e, nas máquinas # que vão rodar o BrOo, mandar ler o .reg manualmente, ou no Iniciar (Inicializar), ou no RunOnce do registro ou no script # de logon (bat ou vbs). # # Fazer isso é a quinta e última etapa não automatizável (se bem que colocar no script de logon pode ser feito # automaticamente :-p) # # Manual ou automático, o resultado deve ser equivalente a: regedit /s setup.reg # [Usando a mesma configuração do BrOo e do OOo no Windows e no Linux] # # Ainda resta um pequeno detalhe, que pode ajudar bastante quem usa, ou usou, ou vai usar o OpenOffice.org juntamente # com o BrOo. # # No ambiente Windows, o OOo guarda os arquivos de configuração do usuário em # c:\documents and settings\<username>\dados de aplicativos\openoffice.org[[2]] # ou algo equivalente, dependendo do idioma e da configuração do sistema. Eu, por exemplo, configurei o home dos usuários # no Linux, como um drive de rede u: no 2003 e dentro dele, um diretório .windows com o conteúdo que ficaria em # "c:\documents and settings\<username>". Evita o roaming das configurações e poupa muito tempo ;-) # # Já o BrOo cria um diretório broffice.org[[2]]. # # Como o OOo e o BrOo são essencialmente o mesmo software, não há porque manter duas versões da mesma configuração. # # Para centralizar isso, no BrOo alteramos o arquivo 'program/bootstrap.ini', e onde diz '$SYSUSERCONFIG/BrOffice.org[[2]]' # colocamos '$SYSUSERCONFIG/OpenOffice.org[[2]]'. Ou então, no OOo, alteramos o mesmo arquivo, e onde diz # '$SYSUSERCONFIG/OpenOffice.org[[2]]' colocamos '$SYSUSERCONFIG/BrOffice.org[[2]]'. bootstrap="files/program/bootstrap.ini" cat $bootstrap | sed "s;/BrOffice;/OpenOffice;" >| $bootstrap.tmp mv $bootstrap.tmp $bootstrap # Ou, ainda mais radical, em ambos os aplicativos, colocamos uma terceira coisa: um caminho de rede apontando para o # diretório de configuração do OOo do Linux, e no arquivo 'program/bootstraprc' do BrOo para Linux, colocamos o nome do # diretório do OOo do Linux, e com isso, centralizamos a configuração de tudo: do BrOo e do OOo para Linux e para Windows. # # Isso é possivel, pois, como todo o software multi-plataforma BEM FEITO, o BrOo abstrai completamente os caminhos do filesystem # nos arquivos de configuração, de forma que estes servem tanto para uma plataforma como para outra :-D # # Legal né? ;-) # Ah, e tem mais uma coisa. # # (puts, essa dica não acaba mais...) # # Também é preciso de um .reg para registrar os tipos padrão do M$ Office, para que sejam abertos com o BrOo. # Esse é fácil: cat << EOT | todos >| msoffice.reg REGEDIT4 [HKEY_CLASSES_ROOT\.pps] @="opendocument.ImpressDocument.1" [HKEY_CLASSES_ROOT\.ppt] @="opendocument.ImpressDocument.1" [HKEY_CLASSES_ROOT\.xls] @="opendocument.CalcDocument.1" [HKEY_CLASSES_ROOT\.xlt] @="opendocument.CalcDocument.1" [HKEY_CLASSES_ROOT\.doc] @="opendocument.WriterDocument.1" [HKEY_CLASSES_ROOT\.dot] @="opendocument.WriterDocument.1" EOT # E pelo Windows: regedit /s msoffice.reg # Vale lembrar que não precisamos de nada que a instalação do BrOo aplicou ao Registro do WINE. Apesar de ser mais fácil # vasculhar ele que o registro do Windows, ainda não é uma coisa muito simples, principalnmente devido à grande quantidade # de alterações que são feitas. Tudo o que precisamos está nos dois .reg's acima. # Agora acho que deu :-) # :-p # # Também dá pra fazer um .reg pra remover todas as entradas que o .reg de setup gerou no registro, um pra configurar os # visualizadores freeware do M$ Office como aplicativos secundários, outro pra outras coisas, etc, mas como já está mais que # na hora dessa dica acabar, acho que vou deixar pra outra oportunidade...
![Valid XHTML 1.0 Transitional [Valid XHTML 1.0 Transitional]](image/valid-xhtml10.png)
![Valid XHTML 1.0 Transitional [Valid XHTML 1.0 Transitional]](image/vcss.png)
[Comentários]