symlink()NotImplementedError rabl [英] symlink() NotImplementedError rabl

查看:324
本文介绍了symlink()NotImplementedError rabl的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

添加到 gemfile 失败,因此我尝试了 gem install rabl 。它失败,出现以下错误消息,看起来像它的操作系统特定...我在Windows 7上,并在Rails 5 api上使用Ruby 2.2

  G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package.rb:388:在`symlink'中:symlink()函数在这台机器上未实现(NotImplementedError)
从G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package.rb:388:在`block(2级)in extract_tar_gz'
from G:/ Ruby / ruby​​ / lib / ruby / site_ruby / 2.2.0 / ruby​​gems / package / tar_reader.rb:65:在`each'
from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package.rb: 365:in`block in extract_tar_gz'
from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package.rb:459:in`block in open_tar_gz'
from G :/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package.rb:456:在`wrap'中
来自G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/ rubygems / package.rb:456:在`open_tar_gz'中
来自G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubyg ems / package.rb:364:在`extract_tar_gz'
from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package.rb:345:在`block(2 levels)in extract_files'
from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package/tar_reader.rb:65:在`each'
from G:/ Ruby / ruby​​ / lib / ruby​​ / site_ruby / 2.2.0 / ruby​​gems / package.rb:342:在`block in extract_files'
from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package/ file_source.rb:30:在`open'中
从G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package/file_source.rb:30:在`with_read_io'
从G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package.rb:339:在`extract_files'
从G:/Ruby/ruby/lib/ruby/site_ruby/2.2。 0 / ruby​​gems / installer.rb:772:在`extract_files'
from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/installer.rb:302:在`install'
from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/resolver/specification.rb:97:在`install'$ b中$ b from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/request_set.rb:166:在`block in install'
from G:/ Ruby / ruby​​ / lib / ruby​​ / site_ruby / 2.2.0 / ruby​​gems / request_set.rb:156:在`each'
from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/request_set.rb:156:在`从G安装'
':/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/commands/install_command.rb:205:'install_gem'
from G:/ Ruby / ruby​​ / lib / ruby​​ / site_ruby / 2.2.0 / ruby​​gems / commands / install_command.rb:255:在`block in install_gems'
from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/命令/ install_command.rb:251:在`每个'中
来自G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/commands/install_command.rb:251:在`install_gems'
from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/commands/install_command.rb:158:在`execute'
从G:/ Ruby / ruby​​ / lib / ruby​​ / site_ruby / 2.2.0 / ruby​​gems / command.rb:310:在`invoke_with_build_args'
从G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/command_manager.rb:169:在`process_args'
from G:/Ruby/ruby/lib/ruby/site_ruby/2.2。 0 / ruby​​gems / command_manager.rb:139:在'run'中
从G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/gem_runner.rb:55:在'run'中
from G:/ Ruby / ruby​​ / bin / gem:21:in< main>'



< hr>

编辑:大量搜索结果后,发现 symlink ()函数在此机器上未实现(NotImplementedError)
这是因为Ruby的底层File.symlink()方法不支持Windows。

在短期内,这应该在文档中提及。长期来看,我认为这可以通过链接指令工作的相同方式来解决。由于NTFS的限制,此方法可能无法用于软链接。


所以,它绝对是Windows特有的,但想知道为什么没有其他帖子或链接说明它与Windows不兼容。 在Windows中是不是可以修复

解决方案

这是有争议的,但有人说在Ruby 2.3上实现了符号链接。我会尝试先安装它。


Adding to gemfile failed and hence I tried gem install rabl. It fails with the following error message, looks like its OS specific... I'm on Windows 7 and using Ruby 2.2 on Rails 5 api

G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package.rb:388:in `symlink': symlink() function is unimplemented on this machine (NotImplementedError)
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package.rb:388:in `block (2 levels) in extract_tar_gz'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package/tar_reader.rb:65:in `each'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package.rb:365:in `block in extract_tar_gz'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package.rb:459:in `block in open_tar_gz'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package.rb:456:in `wrap'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package.rb:456:in `open_tar_gz'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package.rb:364:in `extract_tar_gz'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package.rb:345:in `block (2 levels) in extract_files'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package/tar_reader.rb:65:in `each'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package.rb:342:in `block in extract_files'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package/file_source.rb:30:in `open'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package/file_source.rb:30:in `with_read_io'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/package.rb:339:in `extract_files'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/installer.rb:772:in `extract_files'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/installer.rb:302:in `install'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/resolver/specification.rb:97:in `install'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/request_set.rb:166:in `block in install'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/request_set.rb:156:in `each'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/request_set.rb:156:in `install'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/commands/install_command.rb:205:in `install_gem'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/commands/install_command.rb:255:in `block in install_gems'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/commands/install_command.rb:251:in `each'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/commands/install_command.rb:251:in `install_gems'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/commands/install_command.rb:158:in `execute'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/command.rb:310:in `invoke_with_build_args'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/command_manager.rb:169:in `process_args'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/command_manager.rb:139:in `run'
        from G:/Ruby/ruby/lib/ruby/site_ruby/2.2.0/rubygems/gem_runner.rb:55:in `run'
        from G:/Ruby/ruby/bin/gem:21:in `<main>'


Edit: After lots of googling, found this here

Attempting to use the deploy resource on Windows fails with: symlink() function is unimplemented on this machine (NotImplementedError) This is because Ruby's underlying File.symlink() method does not support Windows.

In the short-term this should be mentioned in the docs. Longer term I think this could be fixed in the same way that the "link" directive works. This method may not work for soft links due to limitations with NTFS.

So, it is definitely Windows specific, but wondering why there's no other post or link explaining that its incompatible with Windows. Isn't this fixable in Windows?

解决方案

This is controversial, but some say symlinking has been implemented on Ruby 2.3. I would try installing it first.

这篇关于symlink()NotImplementedError rabl的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆