Primeiro de tudo, nada que você diga ou faça parecerá estúpido. Todos nós fomos iniciantes em algum momento.
A razão pela qual o seu Mac não reconheceu automaticamente a versão Ruby instalada pelo Homebrew é porque, por padrão, o computador procura apenas programas executáveis em determinados diretórios. A lista de diretórios e a ordem em que o computador os consulta é chamada de PATH
. Se você digitar echo $PATH
Terminal, verá a lista de diretórios separados por dois pontos. Por padrão, em uma nova instalação do macOS, acredito que a lista fique assim:
/usr/bin:/bin:/usr/sbin:/sbin
Durante a instalação do Homebrew, um novo diretório /usr/local/bin
é criado e adicionado ao início do PATH
. No entanto, quando você instala o Ruby com Homebrew, o Ruby é instalado /usr/local/opt/ruby/bin
, o que não é adicionado PATH
automaticamente. Eu sei disso porque é mencionado pelo Homebrew no final da instalação do Ruby. É certo que a mensagem pode não significar muito para um iniciante:
If you need to have ruby first in your PATH run:
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile
Desde a versão Homebrew de Ruby não estava na sua PATH
, quando digitado gem install [some gem]
, o computador olhou para o programa chamado gem
em /usr/local/bin
primeiro lugar e não encontrá-lo, então ele olhou para ele em /usr/bin
e achei porque é onde o sistema gem
(a versão do gem
que vem com o macOS) está instalado.
Se você deseja saber qual versão de um programa específico está sendo usada na sessão atual do Terminal, você pode usar o which
comando Por exemplo:
which ruby
which gem
Isso informará a localização do programa em que o computador o encontrou pela primeira vez.
Outro comando que você pode usar para verificar se está usando a versão correta do Ruby é:
ruby -v
Se você tivesse executado este comando:
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile
e, em seguida, abrisse uma nova janela ou guia do Terminal (ou executada source ~/.bash_profile
) para que as alterações entrassem em vigor. O diretório Homebrew Ruby seria o primeiro no seu PATH
, o que significa que o computador procuraria gem
lá primeiro e teria usado a versão Homebrew de Ruby.
Para explicar o comando acima, ele pega tudo entre aspas simples e o adiciona ( >>
) a um arquivo chamado .bash_profile
no diretório raiz do usuário ( ~/
). Toda vez que você abre uma nova janela ou guia do Terminal, .bash_profile
é lida e qualquer coisa definida lá é usada.
Da mesma forma, a razão pela qual o RVM não conseguiu reconhecer que o Ruby 2.6.1 foi instalado pelo Homebrew é porque o RVM e o Homebrew instalam o Ruby em dois locais separados que não se conhecem. Quando você instalou o RVM, ele instalou a versão 2.6.0. Não sei por que não instalou o 2.6.1, mas lembro-me no passado, quando usei o RVM, de que ele nem sempre instalava a versão mais recente. Pessoalmente, prefiro chruby
e ruby-install
gerencie versões do Ruby.
O legal de ferramentas como RVM, chruby e rbenv é que elas permitem a instalação de várias versões do Ruby no mesmo computador e você pode alternar de uma para outra facilmente. O Homebrew, por outro lado, pode gerenciar apenas uma versão do Ruby por vez.