首页 文章

Gem安装在共享VirtualBox文件夹上失败

提问于
浏览
3

有一个Windows主机和一个使用VirtualBox的Ubuntu客户机 .

我们可以在Ubuntu上为各个宝石安装gem . 跑步时

bundle install --path vendor

对于在Ubuntu中的共享文件夹上的应用程序,它失败了 .

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /usr/local/rvm/rubies/ruby-2.1.1/bin/ruby extconf.rb 
/var/www/chef-playground/vendor/ruby/2.1.0/gems/mini_portile-0.5.2/lib/mini_portile.rb:226: warning: Insecure world writable dir /opt/chef/embedded/bin in PATH, mode 040777
Extracting libxml2-2.8.0.tar.gz into tmp/x86_64-linux-gnu/ports/libxml2/2.8.0... OK
Running 'configure' for libxml2 2.8.0... OK
Running 'compile' for libxml2 2.8.0... OK
Running 'install' for libxml2 2.8.0... OK
Activating libxml2 2.8.0 (from /var/www/chef-playground/vendor/ruby/2.1.0/gems/nokogiri-1.6.1/ports/x86_64-linux-gnu/libxml2/2.8.0)...
Extracting libxslt-1.1.26.tar.gz into tmp/x86_64-linux-gnu/ports/libxslt/1.1.26... OK
Running 'configure' for libxslt 1.1.26... OK
Running 'compile' for libxslt 1.1.26... OK
Running 'install' for libxslt 1.1.26... OK
Activating libxslt 1.1.26 (from /var/www/chef-playground/vendor/ruby/2.1.0/gems/nokogiri-1.6.1/ports/x86_64-linux-gnu/libxslt/1.1.26)...
checking for libxml/parser.h... yes
checking for libxslt/xslt.h... yes
checking for libexslt/exslt.h... yes
checking for iconv_open() in iconv.h... yes
checking for xmlParseDoc() in -lxml2... yes
checking for xsltParseStylesheetDoc() in -lxslt... yes
checking for exsltFuncRegister() in -lexslt... yes
checking for xmlHasFeature()... yes
checking for xmlFirstElementChild()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetValidStructuredErrors()... yes
checking for xmlSchemaSetValidStructuredErrors()... yes
checking for xmlSchemaSetParserStructuredErrors()... yes
creating Makefile

Text file busy @ unlink_internal - ./siteconf20140313-27134-167s4eq.rb

Gem files will remain installed in /var/www/chef-playground/vendor/ruby/2.1.0/gems/nokogiri-1.6.1 for inspection.
Results logged to /var/www/chef-playground/vendor/ruby/2.1.0/extensions/x86_64-linux/2.1.0/nokogiri-1.6.1/gem_make.out
An error occurred while installing nokogiri (1.6.1), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.1'` succeeds before bundling

2 回答

  • 0

    堆栈跟踪的最后一行有解释 .

    An error occurred while installing nokogiri (1.6.1), and Bundler cannot continue.
    Make sure that `gem install nokogiri -v '1.6.1'` succeeds before bundling
    

    我在Fedora 20上使用它时遇到了同样的错误 . 如何在nokogiri网站上克服它有一个很好的解释 .

    我运行了以下2个命令然后 bundle install 工作:

    sudo yum install -y rubygem-nokogiri
    sudo yum install -y gcc ruby-devel libxml2 libxml2-devel libxslt libxslt-devel
    
  • 0

    可能是因为这个原因:

    Text file busy @ unlink_internal - ./siteconf20140313-27134-167s4eq.rb
    

    对于共享文件夹,Virtualbox和Windows主机,这显然是一个存在的问题 . 看起来他们一直在指责Window咄咄逼人的文件处理 .

    https://github.com/mitchellh/vagrant/issues/2282

    Ansible text file busy error

    https://unix.stackexchange.com/questions/52951/gedit-wont-save-a-file-on-a-virtualbox-share-text-file-busy

    您可以尝试通过在客户机上的某个位置而不是在共享文件夹内安装gem来解决方法,即在您的主目录中安装您的gem: bundle install --path ~/vendor . 您可能必须重新配置 .bundle/config 以确保指向正确的目录 .

相关问题