![尽管已安装 FreeBSD,但“ruby:未找到命令”](https://linux22.com/image/76674/%E5%B0%BD%E7%AE%A1%E5%B7%B2%E5%AE%89%E8%A3%85%20FreeBSD%EF%BC%8C%E4%BD%86%E2%80%9Cruby%EF%BC%9A%E6%9C%AA%E6%89%BE%E5%88%B0%E5%91%BD%E4%BB%A4%E2%80%9D.png)
我只是尝试在我有一段时间没有使用的 FreeBSD 机器上运行 ruby 脚本,并得到“ruby:找不到命令”。所以我想我只是之前没有安装它。转到 /usr/ports/lang/ruby22 并执行 make install clean。这告诉我 ruby22 已经安装了。
然后我做了一个 pkg version -v,这表明它实际上已经安装了。然后我想它可能有一个 bin 目录,由于某种原因从 $PATH 中删除了,或者类似的东西,所以我做了一个 make deinstall,然后做了一个 make install。它声称已经安装得很好,但我仍然收到“ruby:找不到命令”错误。
进一步调查,它确实安装了 /usr/local/bin/ruby22 可执行文件,我想我可以创建一个指向它的符号链接,但是......这里出了什么问题吗?是否有一些我没有采取的安装步骤可以让 FreeBSD 知道我真的非常想使用这个特定版本的 Ruby 作为机器的默认“ruby”?
如果重要的话,这是 10.1 RELEASE amd64,并且 ports 树是完全最新的,所有安装的软件包也是如此。
答案1
据介绍/usr/ports/UPDATING:20150301
,目前 Ruby 的默认版本是 2.1。如果您想使用 2.2 作为默认值,您应该更新以下DEFAULT_VERSIONS
旋钮/etc/make.conf
:
DEFAULT_VERSIONS+=ruby=2.2
然后,您需要重新安装 Ruby 2.2,以确保安装的二进制文件和脚本具有预期的名称(即没有版本后缀)。