Ao tentar instalar o MySql com Homebrew no meu MacOS Snow Leopard 10.6.4 obtive o seguinte erro:
macos-snow ~ $ brew install mysql
==> Downloading ftp://ftp.cwru.edu/pub/bash/readline-6.0.tar.gz
curl: (7) couldn't connect to host
Este erro pode ocorrer se você re-instalou o seu SO ou está com uma máquina nova porque o MySql depende do bash e o Readline é um componente para edição e histórico da linha de comando por isso o Readline é instalado antes da instalação do MySql.
A solução mais rápida foi editar a fórmula para instalação do Readline em /usr/local/Library/Formula/readline.rb e trocar o endereço ftp://ftp.cwru.edu/pub/bash/readline-6.0.tar.gz por ftp://ftp.gnu.org/pub/gnu/readline/readline-6.0.tar.gz, no meu caso isto aconteceu porque o primeiro endereço não estava respondendo.
class Readline Formula
url 'ftp://ftp.cwru.edu/pub/bash/readline-6.0.tar.gz'
md5 'b7f65a48add447693be6e86f04a63019'
homepage 'http://tiswww.case.edu/php/chet/readline/rltop.html'
...
OS X provides the BSD Readline library. In order to prevent conflicts when
programs look for libreadline we are defaulting this GNU Readline installation
to keg-only.
...
Fica aqui a dica também se você quiser editar fórmulas para instalar com o Homebrew, no diretório /usr/local/Library/Formula/ irá encontrá-las. Para criar novas fórmulas visite Wiki do Homebrew ou leia este post do AkitaOnRails.
Mais informações:
– Bash-4.0 available for FTP
- Use readline instead of libedit
Esses dias configurei meus sistemas operacionais para usar RVM que serve para gerenciar diferentes instalações do Ruby na mesma máquina.
Para instalar no Snow Leopard segui o tutorial do Akita “Limpando meu Ambiente de Desenvolvimento” e para instalar no Ubuntu segui o post do Barenko “Preparando o Ubuntu para múltiplos ambientes Ruby utilizando RVM” que é mais ou menos uma “tradução” do post do Akita para Ubuntu. Deixei tudo igual com exceção da linha onde tem “/var/lib/gems/1.8/bin/rvm-install” que alterei para
~/rvm-install
Porém como eu uso Git uma coisa que estava me incomodando é que o prompt do Bash em ambos SO não estavam adequados para mostrar a versão da RVM e o branch atual do Git ao mesmo tempo, então fiz algumas e alterações e encontrei algumas “frescuras a mais” para personalizar o prompt.
Substitua a linha que começa com “expost PS1=’….” no arquivo ~/.bashrc (Ubuntu) ou ~/.bash_profile (MacOS) para:
sudo gedit ~/.bashrc
export PS1='\[\033[38m\]\u\[\033[32m\] \w \[\033[1;33m\]`~/.rvm/bin/rvm-prompt i v
`\[\033[0;31m\] `git branch 2> /dev/null | grep -e ^* | sed -E s/^\\\\\*\ \(.+\)$/\(\\\\\1\)\ /
`\[\033[37m\]$\[\033[00m\] '
Com isto o prompt ficará assim
seu_usuario ~/projetos/blog ruby-ree ( working ) $
Segue uma tabela com as cores existentes, se você quiser deixar a fonte em negrito use 1; ao invés de 0;
"\033[0;32m"
"\033[1;32m"
Cores
corPadrao=”\033[0m”
preto=”\033[0;30m”
vermelho=”\033[0;31m”
verde=”\033[0;32m”
marrom=”\033[0;33m”
azul=”\033[0;34m”
purple=”\033[0;35m”
cyan=”\033[0;36m”
cinzaClaro=”\033[0;37m”
amarelo=”\033[0;33m”
branco=”\033[1;37m”
Aproveitando que este post é sobre RVM, se alguém tiver dificuldades em rodar o script/console dentro de algum ambiente de RVM dá uma olhada neste post que tem uma solução para este problema.
Referências:
Limpando meu Ambiente de Desenvolvimento
Preparando o Ubuntu para múltiplos ambientes ruby utilizando RVM
http://ubuntuforums.org/archive/index.php/t-31247.html
http://www.vivaolinux.com.br/dica/Shell-script-com-texto-colorido
No dia-a-dia utilizar recursos das ferramentas certas ajudam a agilizar nosso trabalho, tratando-se de controle de versões o Git tem diversos truques interessantes. Vou resumir de forma rápida alguns comandos que utilizo diariamente, a idéia é concentrar aqui novas dicas que forem aparecendo, então sugestões são bem vindas.
INSTAWEB
Um dos comandos mais úteis e interessantes que tenho utilizado ultimamente para fazer revisão de código ou para ter um histórico do projeto é o “instaweb” que inicia um servidor local onde podemos navegar (http://127.0.0.1:1234/?p=.git;a=shortlog) pelos commits e verificar as diferenças do repositório de uma forma bem simples e clara. É importante lembrar que ao subir o serviço o terminal fica liberado sendo necessário parar o servidor após utilizar senão o processo continuará “rodando”.
git instaweb --httpd webrick
git instaweb --httpd webrick --stop
STASH
O comando “stash” é útil quando estamos trabalhando em algum código que ainda não está concluído e precisamos atualizar o projeto com as últmas atualizações, então colocamos nossas alterações em área isolada com git stash, atualizamos o projeto e aplicamos novamente nossas alterações com git stash apply. Exemplo:
git stash
git stash apply
AMEND
O comando “amend” é utilizado para corrigir ou re-editar a mensagem do último commit desde que ele não tenha sido enviado para o repositório. Exemplo:
git commit -m "Alguma mensagem errada"
git commit --amend -m "Correção da mensagem"
GREP
Com “grep” encontramos palavras dentro dos arquivos do projeto, combinado com -n é possível saber em qual linha a palavra ou o conjunto delas foi encontrado.
git grep -n "palavra ou frase procurada"
RESET
Reset pode ser utilizado basicamente para duas situações, uma delas é desfazer um commit mantendo as alterações realizadas no código com “–soft” e para desfazer um commit completamente incluindo as alterações com “–hard”. Exemplo:
git reset --soft HEAD~1
git reset --hard HEAD~1
LOG
Temos diversas formas para verificar os logs de commits do projeto, abaixo alguns tipos de formatações para exibí-los. O último “shortlog” mostra a quantidade de commits do projeto.
git log --pretty=oneline --graph --all
git log --pretty=oneline --abbrev-commit
git whatchanged -n 1
git shortlog -s -n
Para complementar, uma dica para mostrar o branch atual no terminal. No arquivo ~/.bashrc no Ubuntu ou ~/.bash_profile no MacOS inclua as linhas abaixo, feche o terminal e abra novamente para que as alterações sejam aplicadas.
export PS1="\[\033[38m\]\u\[\033[32m\] \w \[\033[31m\]\`ruby -e
\"print (%x{git branch 2> /dev/null}.grep(/^\*/).first ||
'').gsub(/^\* (.+)$/, '(\1) ')\"\`\[\033[37m\]$\[\033[00m\] "
O terminal ficará assim:
user ~/projects/blog (master) $
Referências:
http://gitready.com/
http://book.git-scm.com/
http://learn.github.com/p/intro.html
http://book.git-scm.com/4_tracking_branches.html
http://cheat.errtheblog.com/s/git
http://book.git-scm.com/4_ignoring_files.html