Inicialmente este blog foi criado para armazenar algumas dicas e links de UNIX/Linux, OpenVMS, linguagem C, Assembly, TCP/IP e nerdezas afins. No entanto devido ao autor ter abandonado o seu plano de ser um super hacker e dominar o mundo (devido esposa, família, filhos, trabalho), a partir de 2012 este blog tem um tipo de nerdeza mais light (Android, Linux, RetroPie (retrogames), produtividade, e por aí vai). Estas dicas raramente serão criações minhas.

Mostrando postagens com marcador cygwin. Mostrar todas as postagens
Mostrando postagens com marcador cygwin. Mostrar todas as postagens

quarta-feira, 2 de julho de 2008

colando com CTRL+V no cygwin

Essa veio de http://iwiwdsmi.blogspot.com/search/label/cygwin.

Adicione esta linha no ~/.bashrc

stty lnext ^q stop undef start undef


Adicione esta linha no ~/.inputrc
"\C-v": paste-from-clipboard


Mas lembre-se: isso só funciona no bash. Nos outros aplicativos que testei (vim, lynx, nc, cat) o CTRL+V não cola. Mas mesmo assim já é uma mão na roda! ;-)

sexta-feira, 6 de junho de 2008

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
  • terça-feira, 22 de abril de 2008

    cygwin minimo

    Pacotes que tornam o cygwin minimamente útil para mim:

    alternatives
    ash
    base-files
    base-passwd
    bash
    binutils
    bzip2
    coreutils
    crypt
    cygutils
    cygwin
    cygwin-doc
    editrights
    findutils
    gawk
    gcc
    gcc-mingw
    gettext
    grep
    groff
    gzip
    less
    libiconv
    login
    make
    man
    mingw-runtime
    ncurses
    netcat
    pcre
    popt
    readline
    rebase
    run
    screen
    sed
    tar
    termcap
    terminfo
    texinfo
    tzcode
    vim
    w32api
    which

    tags