“ruby: Command not found” no FreeBSD, apesar de tê-lo instalado

“ruby: Command not found” no FreeBSD, apesar de tê-lo instalado

Eu apenas tentei executar um script Ruby em uma caixa do FreeBSD que não usava há algum tempo e recebi "Ruby: Comando não encontrado". Então percebi que não o tinha instalado anteriormente. Fui para /usr/ports/lang/ruby22 e fiz uma instalação limpa. Isso me disse que o Ruby22 já está instalado.

Então fiz um pkg version -v, que me mostrou que ele estava de fato instalado. Então pensei que talvez houvesse um diretório bin que por algum motivo foi removido de $PATH, ou algo parecido, então fiz um make deinstall e depois um make install. Ele alegou ter sido instalado perfeitamente, mas ainda recebo o erro "Ruby: Comando não encontrado".

Investigando mais, ele instalou um executável /usr/local/bin/ruby22 e acho que posso simplesmente criar um link simbólico para ele, mas... há algo errado aqui? Existe talvez alguma etapa de instalação que eu não executei que permitiria ao FreeBSD saber que eu realmente quero usar esta versão específica do Ruby como o "ruby" padrão da máquina?

Caso seja importante, este é o 10.1 RELEASE amd64, e a árvore de ports está completamente atualizada, assim como todos os pacotes instalados.

Responder1

De acordo com /usr/ports/UPDATING:20150301, a versão padrão do Ruby atualmente é 2.1. Se você quiser usar 2.2 como padrão, você deve atualizar o DEFAULT_VERSIONSbotão em /etc/make.conf:

DEFAULT_VERSIONS+=ruby=2.2

Você precisará então reinstalar o Ruby 2.2 para garantir que os binários e scripts sejam instalados com os nomes esperados (ou seja, sem o sufixo de versão).

informação relacionada