当在Windows Subsystem for Linux上安装带有本地扩展的Ruby gems时,是否有可靠的方法来避免权限拒绝错误?

问题描述 投票:4回答:1

我希望WSL2能够解决这些问题,并在未来6个月左右的时间里让这个问题变得过时,但与此同时,我觉得在我的主要笔记本电脑上运行Windows的出血边缘或其他预览版本并不舒服。

有时,当我在安装Ruby gem (bundle installbundle install --path=vendor/bundle)的内部,我得到的是 Permission denied 当安装带有本地扩展的 gem 时,会出现错误。

这个错误的最新化身是这样的。

Permission denied @ rb_file_s_rename - (./.gem.20191006-12131-11th7ub/byebug, /home/thomasowens/project/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0-static/byebug-11.0.1/byebug)

为了解决这个问题,我简单地删除了 /home/thomasowens/project/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0-static/byebug-11.0.1/byebug,重新运行bundle命令,它成功了。有时,我需要多次这样做,但通常会成功。

最后,我可以让所有的宝石正确安装,但是当建立一个新的项目,并且有许多宝石与本地扩展时,这很难。同样的,当我要引入一个新的宝石或者更新一个宝石,导致需要更新原生的依赖关系。

我还没有找到很多关于这个问题的资料,但我想知道是否有什么办法可以减轻我需要执行 bundle install 多次让一个项目在WSL下设置和运行。

ruby-on-rails ruby bundler windows-subsystem-for-linux
1个回答
2
投票

我遇到的问题可能与Visual Studio Code的文件观察有关。它反映在两个针对WSL的GitHub问题中--。19563395. Visual Studio代码有 remote.WSL.fileWatcher.polling启用后,可以解决这个问题。然而, 文件指出,大型工作空间的性能会受到影响。 而且可能还需要调整 remote.WSL.fileWatcher.pollingInterval 设置。WSL2将解决这些问题。

自从启用这个标志后,我在使用VS Code运行时没有看到这个错误。

© www.soinside.com 2019 - 2024. All rights reserved.