cygwin no pendrive

Se você está lendo isso, provavelmente já sabe o que é o cygwin. Caso não saiba dê uma olhada em http://aurelio.net/cygwin/.

ATENÇÃO! Esta dica não funciona mais! Quando eu conseguir solucionar este problema atualizarei isso aqui.

A motivação de usar o cygwin é uma (ou várias juntas) das seguintes:

  • você tem medo de instalar o Linux na sua máquina;
  • você tem medo de particionar seu HD;
  • você não quer/não conhece o VMware;
  • você é obrigado a usar o Windows (trabalho/escola).

    Ainda existe uma vertente deste último caso que é a seguinte:
  • você é obrigado a usar o Windows e a política de TI da sua instituição não permite a instalação de softwares, se você desrespeitar pode ser penalizado ou o acesso cortado (ou alguma punição do tipo).

    Caso você se enquadre especialmente neste último caso, este texto é para você. Seguindo o que está descrito aqui você irá instalar o cygwin em um pendrive e poderá usá-lo em qualquer computador que plugá-lo. Isso mesmo! poderá executar o cygwin em computadores que não possuem ele instalado!

    Vale ressaltar que alguns pendrives tem tempo de acesso um pouco lento o que poderá ser um pouco irritante para quem é impaciente...

    Chega de blablabla, vamos pôr a mão na massa!

    Você vai precisar de:
  • Um computador onde você possa instalar o cygwin inicialmente (chamemos este computador de maquina1);
  • Um pendrive de 512MB atende tranquilamente a usuários medianos;
  • Outros computadores para plugar o pendrive e usar o cygwin ;-)


    Passo 1:
    Instale o cygwin do jeito que você bem entender na sua maquina1. Não cobrirei aqui como é feita a instalação. Se não sabe fazer isso consulte as referências.


    Passo 2:
    Após instalar copie inteiramente o diretório que você definiu como raiz (Root Directory) e cole na raiz do seu pendrive. Este diretório deve se chamar cygwin. Por exemplo: se você plugou o pendrive na maquina1 e a unidade do pendrive se chama 'E:', você deve colar o conteúdo do diretório raiz em 'E:\cygwin'.

    Só para deixar bem claro, após a cópia dos arquivos devem existir os diretórios 'E:\cygwin\bin', 'E:\cygwin\lib', 'E:\cygwin\usr', 'E:\cygwin\etc', e etc. Ah! E o mais importante, o arquivo 'E:\cygwin\cygwin.bat'.

    Lembrando: o drive E: é só um exemplo!


    Passo 3:

    Abra o arquivo \cygwin\cygwin.bat do seu pendrive para edição, apague o que estiver lá, copie e cole o que está a seguir (abaixo do <++> e acima do <-->):


    <++> cygwin.bat
    @echo off

    echo Configurando o ambiente...
    set drive=%CD:~,2%
    set desmonta=%drive%\cygwin\usr\local\etc\desmontar.bat

    set user=user
    set home=%drive%\cygwin\home\user
    set path=%drive%\cygwin\bin;%path%

    chdir %drive%\cygwin\bin

    echo umount -s --remove-all-mounts > %desmonta%
    mount -m >> %desmonta%

    umount -u --remove-all-mounts
    mount -u -b -f %drive%/cygwin/bin /usr/bin
    mount -u -b -f %drive%/cygwin/lib /usr/lib
    mount -u -b -f %drive%/cygwin/ /
    mount -c -u /cygdrive

    chdir %drive%\cygwin\home\user

    echo Entrando no bash...
    bash --login -i

    echo Saindo do cygwin e restaurando o ambiente...
    %desmonta%
    <-->


    Conheço pouquíssimo de programação .bat, e esse pouquíssimo que sei só aprendi devido a este desejo de executar o cygwin a partir do pendrive. Portanto não vou ficar explicando o que este cygwin.bat faz, até porque está bem intuitivo.

    Só gostaria de deixar claro que toda essa parafernália de %desmonta% serve tão somente para não bagunçar uma instalação local do cygwin. Explicando melhor: o %desmonta% serve para que quando você executar o cygwin a partir do pendrive em uma maquina que já tenha o cygwin instalado, este cygwin da máquina não fique bagunçado (diretórios montados em pontos errados).


    Passo 4:
    É necessário garantir que todos tenham acesso ao %desmonta%, ou seja '\cygwin\usr\local\etc\desmontar.bat' no seu pendrive. Isso pode ser feito com o cygwin do pendrive já em execução:


    prompt$ chmod 777 /usr/local/etc/desmontar.bat


    Isto serve para que não se tenha problemas de acesso ao desmontar.bat quando você executar o cygwin do pendrive em um computador como o usuario fulano, e depois que acabar o usuário siclano quiser usar. Se não fizer o isso o siclano terá acesso negado ao desmontar.bat quando quiser salvar seus "mount points" durante o "cygwin.bat".


    Passo 5:
    Desplugar o pendrive com segurança. Plugar no(s) computador(es) do seu trabalho/colégio/faculdade, abrir a "pasta" cygwin no seu pendrive e dar um duplo clique no "cygwin.bat". O resto é só alegria!


    Referências
    http://aurelio.net/cygwin/ - portal brasileiro de cygwin

    http://forums.qj.net/archive/index.php/t-138434.html - tem um cygwin.bat de um tal de sakya, usei-o como ponto de partida

    manpage do mount no cygwin - explica como usar o mount no cygwin

    help set no command.com - explica como fazer a substituição de variáveis nos arquivos .bat

  • tags: Cygwin

    comments powered by Disqus