【问题标题】:undefined method `stubs_for' for Gem::Specification:Class (NoMethodError) Did you mean? stubsGem::Specification:Class (NoMethodError) 的未定义方法 `stubs_for' 你的意思是?存根
【发布时间】:2021-03-03 21:16:05
【问题描述】:

您好,我正在学习 Ruby on Rails 教程这本书。根据教程,我尝试从Tutorial 安装 Gemfile,但在尝试运行时遇到了一些问题

捆绑安装

  1. 第一个问题是

It is likely that you need to grant write permissions for that path.

然后我通过这个topic解决了它

  1. 第二个问题是

在任何来源中都找不到 sassc-2.4.0

  `Building native extensions. This could take a while...ERROR: Error installing sassc:ERROR: Failed to build gem native extension.current directory: /var/lib/gems/2.5.0/gems/sassc-2.4.0/ext/usr/bin/ruby2.5`
  1. 现在我有

    3:来自/var/lib/gems/2.5.0/gems/bundler-2.2.12/lib/bundler/source/metadata.rb:7:in specs' 2: from /var/lib/gems/2.5.0/gems/bundler-2.2.12/lib/bundler/index.rb:9:in build' 1:来自/var/lib/gems/2.5.0/gems/bundler-2.2.12/lib/bundler/source/metadata.rb:28:in block in specs' /var/lib/gems/2.5.0/gems/bundler-2.2.12/lib/bundler/rubygems_integration.rb:588:in find_name':Gem 的未定义方法“stubs_for”::规格

我的操作系统 - Linux mint 19.1 红宝石 v - 2.5.1 Rails v - 6.1.3

【问题讨论】:

  • 为了它的价值,我复制了你的Gemfile,它安装没有问题。在我看来,您安装了一个不可靠的 ruby​​,可能是因为您在教程中运行了 sudo,然后尝试追溯修复权限??
  • 我可以看到其他人遇到过that exact error before,所以你可以试试他们的解决方案。或者,卸载ruby 并重新开始而不运行任何不可靠的chmodsudo 可能会更容易?
  • 我已经尝试了所有这些解决方案,但我认为你是对的。卸载并重新启动会更容易
  • 我建议安装或使用 ruby​​ 版本管理器,rvm 或 rbenv 是很好的起点。 rbenv 是我个人的选择。使用 sudo(系统范围)安装开发 gem 不是一个好主意。

标签: ruby-on-rails ruby


【解决方案1】:

有几个可能的问题:

  1. 您可能已将 bundler 用作 root,在这种情况下,捆绑程序预期的文件所有权将不正确。
  2. 您的gem 版本可能已过期,并且您还没有运行gem update -system 来更新它。

您可能还缺少ruby-dev 包。这包含编译一些原生 gem 扩展所需的 c/c++ 头文件。您可能还需要其他库,例如 libstdc++ 等。

【讨论】:

  • 我已经更新了 gem 并安装了 ruby​​-dev。我的问题还在这里。重新安装所有软件包是个好主意吗?我想我在将bundlersudo 一起使用并使用此代码 chown -R fil ~/.bundle/cache 时犯了一个错误
  • 最好重新开始,是的。在系统上以 root 身份安装 ruby​​,但以您打算运行应用程序的用户身份安装 bundler 等。
猜你喜欢
  • 2016-03-10
  • 2022-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-23
相关资源
最近更新 更多