Pages

Mostrando postagens com marcador Ruby on Rails. Mostrar todas as postagens
Mostrando postagens com marcador Ruby on Rails. Mostrar todas as postagens

sábado, 12 de setembro de 2009

Erro ao rodar rake db:migrate

Se ao rodar o comando rake db:migrate você está tendo o seguinte erro:

rake aborted!
undefined method 'reenable' for [environment]>:Rake::Task

Pode estar tendo o mesmo problema que eu tive.

Quando estava montando um ambiente de desenvolvimento para Ruby on Rails em minha máquina, provavelmente dei uma noobada e instalei o rake com o apt-get ou ele entrou como dependência de alguma coisa e eu não parcebi.

Enfim, estava instalado no sistema como pacote Debian a versão 0.8.1 do rake e também como gem a versão 0.8.7

Para resolver isso, bastou desinstalar o rake do sistema com o comando:

sudo apt-get remove rake
Após ter feito isso, o rake rodou normalmente. Para testar rode:

rake --version
Se após isso ele indicar que o pacote não está instalado ou algo do tipo, dê uma olhada nesse post: Chamando aplicativos instalados com o ruby gem com um comando no terminal

[ ]'s

sexta-feira, 11 de setembro de 2009

Chamando aplicativos instalados com o ruby gem com um comando no terminal

Primeiramente um conselho: Tudo que puder instalar para desenvolvimento Ruby via ruby gem instale (melhor ainda se usar o rvm). Evite instalar qualquer coisa no sistema via apt-get. Isso pode gerar uma série de conflitos e, além disso, geralmente o repositório do synaptic demora um tempo para ser atualizado. Assim, instalando as gems você terá um sistema mais limpo e os frameworks/aplicativos mais atualizados, além da facilidade de manutenção.

Para que você possa chamar os aplicativos instalados via ruby gem (gem install "aplicativo"), você pode adicionar o path dos binários destes aplicativos rodando os seguinte comandos no terminal (neste caso utiliznado o ruby 1.8):

sudo su
echo "export PATH=\"\$PATH:/var/lib/gems/1.8/bin\"" >> /etc/bash.bashrc
exit

Isso fará com a linha export PATH="$PATH:/var/lib/gems/1.8/bin" seja adicionada ao aquivo /etc/bash.bashrc. Assim, toda vez que for iniciado o bash, sua variável ambiente $PATH receberá também o caminho dos binários instalados via ruby gem que ficam contidos na pasta /var/lib/gems/1.8/bin.

Contudo, na versão 9.10 do Ubuntu (se você utiliza outra versão, procure saber), o comando sudo foi compilado com a opção --with-secure-path. Assim, mudanças realizadas na variável não surtem efeito quando utilizado o comando sudo. Para contornar isso faça:

echo "alias sudo='sudo env PATH=\$PATH'" >> ~/.bashrc
Desta forma a variável $PATH será a mesma usando o comando sudo ou não.

Com isso, se eu instalar o rails assim:

sudo gem install rails
e poderei chamar o rails no terminal simplesmente rodando:

rails
As mudanças apenas surtirão efeito ao reiniciar seu terminal ou fazendo:

source /etc/bash.bashrc
source ~/.bashrc

[ ]'s