我确信这是一个初学者的错误,因为我对终端等还不熟悉。我正在尝试罗盘在我的 Mac 上工作,我已经安装了 sass 并使其运行,但是当我尝试安装 compass 时,即使它可以运行,我也无法运行它......
computer-name:~ me$ sudo gem install compass
Password:
Successfully installed compass-0.12.2
Parsing documentation for compass-0.12.2
1 gem installed
computer-name:~ me$ compass -v
-bash: compass: command not found
computer-name:~ me$ sass -v
Sass 3.2.12 (Media Mark)
输入:
gem list
还返回:
compass (0.12.2)
我在想一些事情,也许是我遇到了冲突,我最初尝试在没有它的情况下安装sudo
并且成功了,我再次尝试使用sudo
但仍然没有成功。
我的 $PATH 有:
computer-name:~ me$ echo $PATH
/usr/local/bin:/usr/local/sbin:~/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Users/me/.rvm/bin
最后一个 .rvm/bin 似乎是 ruby,但不包含 compass(尽管 sass 也不在那里......)
我找到了指南针,usr/local/Cellar/ruby/2.0.0-p247/bin/
但看了教程后发现它似乎应该可以运行,我假设我做了一些破坏正常功能的事情,我想知道如何测试或修复它。
注意:sass 在同一个文件夹中并sass -v
显示版本,所以我假设它以某种方式位于路径中(也许 ruby 找到它...)
答案1
在 OS X 上运行两个或更多版本的 Ruby 时,有一件非常重要的事情:如果你使用sudo gem
,你将使用 中的 OS X 默认设置gem
。/usr/bin/gem
这不是你想要的。
如果你gem
单独使用(不带sudo
),你通常应该使用新安装的gem
(例如来自 Ruby OS X 安装程序的,或者来自 RVM、rbenv 的,无论你使用什么方法运行另一个 Ruby 版本)。通过运行来确认这which -a gem
一点。它应该返回类似以下内容:
/Users/your-username/.rvm/bin/gem
/usr/bin/gem
如果您gem
从 RVM 中新建的不是默认的(即列表中的第一个),则您的 RVM 安装已损坏。否则,任何对 的调用(gem
即使没有sudo
)仍将使用/usr/bin/gem
,随后会因权限不足而失败。
因此,请确保对ruby
和的所有调用gem
都是 RVM 版本,而不是系统版本。并且绝不再次使用sudo
来安装某些东西,因为它将进入你的默认 OS X Ruby。
对于 RVM,请检查其来源后所有的 PATH 操作都是在 shell 的配置文件中完成的(通常.profile
在.bash_profile
OS X 上,不确定 RVM 修改了哪一个)。
答案2
我遇到了同样的事情。为了让指南针命令正常工作,我做了以下操作:我添加了一个符号链接(我有 .12.6,将其更改为您的 .12.2):
ln -s /usr/local/lib/ruby/gems/2.0.0/gems/compass-0.12.2/bin/compass /usr/local/bin/compass
答案3
我遇到了类似的问题并发现这gem list compass -d
允许我找到并符号链接指南针。
答案4
我觉得这并不能真正回答我的问题,但目前它确实有效......我在我的系统中发现了指南针,/usr/local/Cellar/ruby/2.0.0-p247/lib/ruby/gems/2.0.0/gems/compass-0.12.2/bin/
所以我~/.bash_profile
在开始时将它添加到了export PATH="<here>:/usr/local/bin:other paths"
,所以现在我可以运行该功能,但我仍然不知道如何诊断系统并找出问题的原因或修复它,所以感觉像是黑客攻击。
我从中得到了一些有用的信息这里 (stackoverflow),这里 (apple.stackoverflow)和ruby rvm 帮助站点