Recentemente, tive o prazer de atualizar do FreeBSD 7.0 em fim de vida para o 9.1. Junto com ele, eu precisava atualizar para o Ruby 1.9.3 mais recente e recompilar todos os pacotes que dependiam dele. Aqui está o que você precisa fazer:
portsnap fetch
portsnap update
cd /usr/ports/lang/ruby19
make install clean
Agora que temos o Ruby mais recente, vamos reconstruir todos os pacotes dependentes. Primeiro, vamos adicionar a versão padrão do Ruby ao make.conf:
echo "RUBY_DEFAULT_VER=1.9" >> /etc/make.conf
Então, você precisa desabilitar o back-end Mongrel do rubygem-rails porque Mongrel NÃO funcionará com 1.9, além disso, você não deveria estar usando-o, existem muitas alternativas melhores como Thin, Unicorn ou Passenger:
cd /usr/ports/www/rubygem-rails
make config
E desmarque Mongrel.
NOTA : Eu encontrei um erro ao gerar documentação para i18n durante o processo de compilação, para evitar isso, você pode querer tentar definir esta variável de ambiente:
export RDOCOPT="--encoding=UTF-8"
E finalmente:
portmaster -Dr ruby
NOTA : Se o glob “ruby” corresponder a mais de uma porta, você precisará especificar o nome do diretório Ruby em / var / db / pkg explicitamente, por exemplo:
portmaster -Dr ruby-1.9.3.392
Você deve estar pronto para ir atrás disso. No meu caso ainda tenho o Ruby 1.8 instalado, para não quebrar outros pacotes que possam depender dele, nunca se sabe, e gosto de me sentir seguro. Mas se você está se sentindo otimista, o comando para substituir completamente o antigo Ruby pelo mais recente:
portmaster -o lang/ruby19 lang/ruby18