Problema 1: make
O primeiro problema é que o Ruby precisa ser compilado e isso geralmente é feito através de make
que lerá as configurações de um Makefile
e, em seguida, chamará o compilador. No OSX make
é instalado com Xcode
, que instala suas ferramentas em /Developer/usr/bin
, em vez de /usr/bin
, onde seria de se esperar. Este diretório não está no padrão $PATH
, portanto, quaisquer executáveis nele não são encontrados pelo shell.
Você pode corrigir isso para seu usuário adicionando esta linha ao seu ~/.bash_profile
(certifique-se de adicioná-lo antes de export $PATH
line):
PATH="/Developer/usr/bin:$PATH"
No entanto, isso ainda não estará acessível a nenhum comando executado como raiz (com sudo
, por exemplo). Eu recomendo que você adicione este diretório ao caminho padrão. Abra /etc/profile
, encontre a linha que define o caminho e adicione o diretório a ele. Eu estou em um sistema Linux, mas deve ser algo como isto:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Basta adicionar o diretório ao final para que fique assim:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/Developer/usr/bin"
Se você não quiser alterar o padrão, poderá vincular make
a um diretório que esteja no padrão $PATH
:
sudo ln -s /Developer/usr/bin/make /usr/bin
Você terá que fazer isso para tudo o que está em /Developer/usr/bin
, então eu realmente recomendo que você altere o padrão.
Problema 2: encontrar a nova versão
Neste ponto, você deve conseguir instalar o ruby com
$ sudo port install ruby19
Isso sai corretamente, mas sua versão do ruby parece não estar atualizada:
$ ruby --version
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin10.0]
Isso ocorre porque por padrão , port
instala seus arquivos em /opt/local
e instalará seu ruby executável como /opt/local/bin/ruby1.9
. Ainda outro diretório que não está no seu $PATH
. Assim, você pode repetir o processo acima e adicionar /opt/local/bin
ao seu $PATH
ou pode vincular o executável ruby1.9
a um diretório que esteja no seu caminho. Se você adicionar /opt/local/bin
ao seu $PATH
, poderá executar a v1.8 com ruby
e v1.9 com ruby1.9
. Se você quiser que todos os seus scripts existentes mudem para a v1.9, recomendo que você faça /usr/bin/ruby
apontar para a nova versão.
A versão antiga em /usr/bin
é na verdade um link simbólico:
$ ls -l /usr/bin/ruby
rwxr-xr-x 1 root wheel 76 25 Jun 2010 /usr/bin/ruby -> ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby
Isso significa que você pode excluí-lo com segurança e substituí-lo por um link para a nova versão:
$ sudo rm /usr/bin/ruby; sudo ln -s /opt/local/bin/ruby1.9 /usr/bin/ruby
Se você quiser reverter e executar ruby
run v1.8, basta executar o comando inverso:
$ sudo rm /usr/bin/ruby; sudo ln -s /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby /usr/bin/ruby
Se tudo tiver corrido bem, seu ruby
padrão agora é v1.9:
$ ruby --version
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin10]