ruby install Rails 报错 ---无法构建 gem 本机扩展。(Windows 平台)

2023-12-05

Ruby 新手,刚刚开始 Rails 之旅。

已经搜索过 stackoverflow 但很多这些问题都是很久以前的事了。我的英文不好,请耐心看我的描述。这是我的情况,希望我说清楚。

I'm on windows。 当我在线学习 Ruby 课程时,我安装了一个旧环境-- ruby​​2.7.4 与 Rails 7.0.1。

昨天我想用更新的 ruby​​ 环境完成一个新项目——所以我安装了 ruby​​3.1.0,但是当我尝试为这个新的 Ruby 版本安装 Rails,发生错误。

这是我的环境:

C:\Users\Administrator>uru ls
    274p191     : ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x64-mingw32]
    310p0       : ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x64-mingw-ucrt]

C:\Users\Administrator>ruby -v
ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x64-mingw-ucrt]

C:\Users\Administrator>gem -v
3.3.6

C:\Users\Administrator>d:

D:\>cd RubyDevkit

D:\RubyDevkit>ruby dk.rb install
[INFO] Skipping existing gem override for 'D:/Ruby27-x64'
[WARN] Skipping existing DevKit helper library for 'D:/Ruby27-x64'
[INFO] Skipping existing gem override for 'D:/Ruby31-x64'
[WARN] Skipping existing DevKit helper library for 'D:/Ruby31-x64'

D:\RubyDevkit>

如你所见,我当前的 ruby​​ 版本是 3.1.0,我想我已经安装了Devkit我的红宝石都成功了。

and I have intalled MSYS2 as well (although I dont know why ruby need it, but I have met another ERROR which remind me to install MSYS and add it to PATH) msys -Syu

我认为在遇到此错误之前我已经正确完成了所有操作:

C:\Users\Administrator>gem install rails
Building native extensions. This could take a while...
ERROR:  Error installing rails:
        ERROR: Failed to build gem native extension.

    current directory: D:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/websocket-driver-0.7.5/ext/websocket-driver
D:/Ruby31-x64/bin/ruby.exe -I D:/Ruby31-x64/lib/ruby/site_ruby/3.1.0 -r ./siteconf20220128-11340-9w9ez5.rb extconf.rb
creating Makefile

current directory: D:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/websocket-driver-0.7.5/ext/websocket-driver
make DESTDIR\= clean
current directory: D:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/websocket-driver-0.7.5/ext/websocket-driver
make DESTDIR\=
make failedNo such file or directory - make

Gem files will remain installed in D:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/websocket-driver-0.7.5 for inspection.
Results logged to D:/Ruby31-x64/lib/ruby/gems/3.1.0/extensions/x64-mingw-ucrt/3.1.0/websocket-driver-0.7.5/gem_make.out

我为ruby2.7.4安装rails时没有出现异常(同一命令刚刚完成,没有错误或警告)。

我在网上找不到类似的情况。有人可以帮忙吗?

-------------------01/29-----------------划分---------- ------------------

感谢评论,确实发人深省。遵循一些计划(虽然失败了) 我尝试安装 gemwebsocket-driver 分别地,得到同样的错误:

C:\Users\Administrator>gem install websocket-driver:0.7.5
Building native extensions. This could take a while...
ERROR:  Error installing websocket-driver:
        ERROR: Failed to build gem native extension.

    current directory: D:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/websocket-driver-0.7.5/ext/websocket-driver
D:/Ruby31-x64/bin/ruby.exe -I D:/Ruby31-x64/lib/ruby/site_ruby/3.1.0 -r ./siteconf20220129-3864-wqfhn2.rb extconf.rb
creating Makefile

current directory: D:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/websocket-driver-0.7.5/ext/websocket-driver
make DESTDIR\= clean
current directory: D:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/websocket-driver-0.7.5/ext/websocket-driver
make DESTDIR\=
make failedNo such file or directory - make

Gem files will remain installed in D:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/websocket-driver-0.7.5 for inspection.
Results logged to D:/Ruby31-x64/lib/ruby/gems/3.1.0/extensions/x64-mingw-ucrt/3.1.0/websocket-driver-0.7.5/gem_make.out

(delete这个 gem 来自根目录和重新安装也得到了相同的结果)

然后我厌倦了这个宝石形式Bundler.rubygems.org, and 本地安装。遇到同样的错误:

C:\Users\Administrator>d:

D:\>cd rubyDownloads

D:\rubyDownloads>gem install websocket-driver-0.7.5.gem --local
Building native extensions. This could take a while...
ERROR:  Error installing websocket-driver-0.7.5.gem:
        ERROR: Failed to build gem native extension.

    current directory: D:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/websocket-driver-0.7.5/ext/websocket-driver
D:/Ruby31-x64/bin/ruby.exe -I D:/Ruby31-x64/lib/ruby/site_ruby/3.1.0 -r ./siteconf20220129-5896-885p1m.rb extconf.rb
creating Makefile

current directory: D:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/websocket-driver-0.7.5/ext/websocket-driver
make DESTDIR\= clean
current directory: D:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/websocket-driver-0.7.5/ext/websocket-driver
make DESTDIR\=
make failedNo such file or directory - make

Gem files will remain installed in D:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/websocket-driver-0.7.5 for inspection.
Results logged to D:/Ruby31-x64/lib/ruby/gems/3.1.0/extensions/x64-mingw-ucrt/3.1.0/websocket-driver-0.7.5/gem_make.out

现在问题变成:the gem websocket-driver 任何其他依赖它的 gem 都无法成功安装,错误如上所示。


刚放假回来,假期期间这个问题就解决了。请原谅我到现在才记得关闭这个问题。XD

在Josien的评论的帮助下,问题已经缩小到gem install websocket-driver失败的。在stackoverflow上比较容易找到这个问题——尝试安装 gem websocket-driver-0.7.3 时出错

最后,我只通过输入解决了这个问题ridk install (使 MSYS2 适用于 ruby​​3.0.1)——我已经安装了MSYS2并使其在ruby2.7.4下工作,但如果你想让它同样适用于ruby3.0.1,你需要在ruby3.0.1下执行此命令。

安装MSYS2 for ruby​​ 3.0.1后,rails安装成功。

C:\Users\Administrator>Uru ls
    274p191     : ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x64-mingw32]
    310p0       : ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x64-mingw-ucrt]

C:\Users\Administrator>ruby -v
ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x64-mingw-ucrt]

C:\Users\Administrator>ridk install
 _____       _           _____           _        _ _         ___
|  __ \     | |         |_   _|         | |      | | |       |__ \
| |__) |   _| |__  _   _  | |  _ __  ___| |_ __ _| | | ___ _ __ ) |
|  _  / | | | '_ \| | | | | | | '_ \/ __| __/ _` | | |/ _ \ '__/ /
| | \ \ |_| | |_) | |_| |_| |_| | | \__ \ || (_| | | |  __/ | / /_
|_|  \_\__,_|_.__/ \__, |_____|_| |_|___/\__\__,_|_|_|\___|_||____|
                    __/ |           _
                   |___/          _|_ _  __   | | o __  _| _     _
                                   | (_) |    |^| | | |(_|(_)\^/_>

   1 - MSYS2 base installation
   2 - MSYS2 system update (optional)
   3 - MSYS2 and MINGW development toolchain

Which components shall be installed? If unsure press ENTER [1,3] 1,3

> sh -lc true
MSYS2 seems to be properly installed
Install MSYS2 and MINGW development toolchain ...
> pacman -S --needed --noconfirm autoconf autogen automake-wrapper diffutils file 
...
...
...
Install MSYS2 and MINGW development toolchain succeeded

   1 - MSYS2 base installation
   2 - MSYS2 system update (optional)
   3 - MSYS2 and MINGW development toolchain

Which components shall be installed? If unsure press ENTER []

C:\Users\Administrator>gem install rails
Building native extensions. This could take a while...
Successfully installed websocket-driver-0.7.5
Building native extensions. This could take a while...
Successfully installed nio4r-2.5.8
Successfully installed actioncable-7.0.2
Successfully installed rails-7.0.2
Parsing documentation for websocket-driver-0.7.5
Installing ri documentation for websocket-driver-0.7.5
Parsing documentation for nio4r-2.5.8
Installing ri documentation for nio4r-2.5.8
Parsing documentation for actioncable-7.0.2
Installing ri documentation for actioncable-7.0.2
Parsing documentation for rails-7.0.2
Installing ri documentation for rails-7.0.2
Done installing documentation for websocket-driver, nio4r, actioncable, rails after 2 seconds
4 gems installed

C:\Users\Administrator>rails -v
Rails 7.0.2

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ruby install Rails 报错 ---无法构建 gem 本机扩展。(Windows 平台) 的相关文章

随机推荐