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:
Ainda existe uma vertente deste último caso que é a seguinte:
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:
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-->
6 comentários:
Obrigado, estava querendo isso a algum tempo e não encontrava um tutorial que funcionasse.
Vou testar e depois aviso.
big Meleuuu....
vou testar depois essa dica aki
vlw veiu...
nesse cygwin nao tem o comando tree nao??
flw meleuuuu
paulo diogo UCAM
Isso que é o foda de vocês linuxers: não tem respeito por ninguém e ainda se acham o máximo, exemplo disso são os motivos citados no ínicio: porque não tem lá um motivo "Programadores de verdade que são obrigados a aprender shell script para receber um maldito diploma".
Nunca vi um windowser se importar com o sistema que outra pessoa usa mas em compensação nunca vi um linuxer capaz de aceitar que outras pessoas não usem o linux.
No mais o post e o blog estão perfeito exceto, claro, pelas partes ofensivas e desrespeitosas. Mas valeu pela iniciativa.
o Cygwin.bat bem mais fácil e funciona. O que esta no artigo testei e não funciona o meu deixei assim e funciona que é uma maravilha.
@echo off
echo Configurando o Ambiente....
set drive=%CD:~,2%
set home=%drive%\cygwin\home\work
%drive%
chdir %drive%\cygwin\bin
echo Entrando no bash
bash --login -i
E uma excelente dica!
Mas para quem não quer ter muito
trabalho pode tentar o "gow" pacote
que não precisa configurar,mas o bash não funciona.
Outra opção e shell.32-ix86 , neste
caso e so modificar start_shell.bat
e configurar uma home qualquer no pendrive e também fazer alguns ajustes finos em .bashrc e ele roda perfeitamente.So não vai ter startx :-(.
Um abraço.
Postar um comentário