我试图在Ubuntu Trusty(i386)的完全通用的安装上安装Middleman gem。 这是我的控制台input/输出:
vagrant@vagrant-ubuntu-trusty-32:~/rj$ which ruby /usr/bin/ruby vagrant@vagrant-ubuntu-trusty-32:~/rj$ ruby -v ruby 1.9.3p484 (2013-11-22 revision 43786) [i686-linux] vagrant@vagrant-ubuntu-trusty-32:~/rj$ gem install middleman Fetching: bundler-1.7.7.gem (100%) ERROR: While executing gem ... (Errno::EACCES) Permission denied - /var/lib/gems
正如你所看到的,在我的主机系统上出现类似的错误之后,我使用了一个Vagrant虚拟机。 (别人之前的问题的另一个答案已经指向了stream浪汉和Docker,每一个都给出了如上所述的输出。)有趣的是,即使使用sudo gem install middleman给我带来了问题。
(我想过把这个输出粘贴到这里,如果有人问,我仍然可能会这样做,但是说实话,我宁愿避免把外部的gem作为root来使用,而应该把注意力集中在上面的错误上。所有这些都是为了创build一组定义的输出,从而限制了对特权和自定义的需求。)
有没有人遇到过这样的错误?
======================
编辑:通过请求,这里是我使用sudo gem install middleman时的输出:
Fetching: bundler-1.7.7.gem (100%) Fetching: rack-1.5.2.gem (100%) Fetching: tilt-1.4.1.gem (100%) Fetching: erubis-2.7.0.gem (100%) Fetching: uber-0.0.11.gem (100%) Fetching: hooks-0.4.0.gem (100%) Fetching: rack-test-0.6.2.gem (100%) Fetching: thor-0.19.1.gem (100%) Fetching: i18n-0.6.11.gem (100%) Fetching: json-1.8.1.gem (100%) Building native extensions. This could take a while... ERROR: Error installing middleman: ERROR: Failed to build gem native extension. /usr/bin/ruby1.9.1 extconf.rb /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError) from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from extconf.rb:1:in `<main>' Gem files will remain installed in /var/lib/gems/1.9.1/gems/json-1.8.1 for inspection. Results logged to /var/lib/gems/1.9.1/gems/json-1.8.1/ext/json/ext/generator/gem_make.out
这听起来像你需要使用sudo运行这个gem install,因为它使用的是受限制的系统文件夹。
错误:执行gem时(Errno :: EACCES)权限被拒绝 – / var / lib / gems
尝试这样做:
sudo gem install middleman