Я только что попытался запустить скрипт ruby на FreeBSD-компьютере, который я давно не использовал, и получил сообщение "ruby: Command not found". Поэтому я решил, что просто не установил его ранее. Перешел в /usr/ports/lang/ruby22 и выполнил make install clean. Это сказало мне, что ruby22 уже установлен.
Итак, я сделал pkg version -v, что показало мне, что он действительно установлен. Затем я подумал, что, возможно, у него есть каталог bin, который по какой-то причине был удален из $PATH, или что-то в этом роде, поэтому я сделал make deinstall, а затем make install. Он утверждал, что установился просто отлично, но я все равно получаю ошибку "ruby: Command not found".
Если разобраться, то он установил исполняемый файл /usr/local/bin/ruby22, и я думаю, что могу просто сделать символическую ссылку на него, но... что-то тут не так? Возможно, есть какой-то шаг установки, который я не выполнил, который дал бы FreeBSD знать, что я действительно, действительно хочу использовать эту конкретную версию Ruby в качестве "ruby" машины по умолчанию?
Если это имеет значение, это 10.1 RELEASE amd64, и дерево портов полностью обновлено, как и все установленные пакеты.
решение1
Согласно /usr/ports/UPDATING:20150301
, версия Ruby по умолчанию в настоящее время 2.1. Если вы хотите использовать версию 2.2 по умолчанию, вам следует обновить DEFAULT_VERSIONS
ручку в /etc/make.conf
:
DEFAULT_VERSIONS+=ruby=2.2
Затем вам потребуется переустановить Ruby 2.2, чтобы убедиться, что двоичные файлы и скрипты установлены с ожидаемыми именами (т. е. без суффикса версии).