Atualizando Ruby no FreeBSD

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