介绍

在 macOS 蒙特雷 (x86_64-darwin-21) 下迷你赛车取决于libv8需要安装gem,总结一下解决方法

TL;博士

  • 无法在 macOS Monterey 下安装“libv8”gem (x86_64-darwin-21)
  • 很容易获取 macOS Big Sur (x86_64-darwin-20) 的文件并应用补丁进行设置。

为什么不能在 macOS Monterey 上轻松安装?

所有版本的 libv8未提供 x86_64-darwin-21 的二进制文件。
没有提供二进制文件 = 需要从源代码构建

libv8README中描述的Platform只有以下,在x86_64-darwin-21环境下无法轻松安装

  • x86_64-darwin-19
  • x86_64-darwin-18
  • x86_64-darwin-17
  • x86_64-linux
  • x86-linux

另外,虽然自述文件中没有提到x86_64-darwin-20,但提供了x86_64-darwin-20 的二进制文件,并且在x86_64-darwin-20 环境中安装成功。
已为此问题创建了一个问题,但建议的解决方案是迷你赛车通过更新libv8指某东西的用途libv8 节点建议改为

libv8什么时候libv8 节点关于

libv8什么时候libv8 节点(什么时候红宝石赛车手),请参考以下文章

如何安装

不建议包含Gemfile.lock,这会导致版本控制或生产部署的差异
包含差异,生产部署时请注意

要做的工作如下

  • 获取问题注释中提到的 shell 脚本
  • 更改shell脚本的权限并执行
  • libv8 (8.4.255.0-x86_64-darwin-21) 添加到 Gemfile.lock

获取问题注释中描述的 shell 脚本

少于libv8在存储库中创建的问题中获取 shell 脚本
缺少 macOS Monterey 构建 (x86_64-darwin-21) 问题 #318 ruby​​js/libv8 - ksylvest 评论
将获取的shell脚本保存到本地为gem-install-libv8-darwin-20.sh

更改shell脚本的权限并执行

更改之前保存的shell脚本的权限

$ chmod +x gem-install-libv8-darwin-20.sh

权限更改完成后执行shell脚本
执行时会下载libv8-8.4.255.0-x86_64-darwin-20.gemspec,打上补丁后会安装libv8-8.4.255.0-x86_64-darwin-21.gemspec

$ ./gem-install-libv8-darwin-20.sh
 *** detecting
/path_to_rbenv/rbenv/versions/x.x.x/lib/ruby/gems/x.x.x
x86_64-darwin-21
x86_64-darwin
libv8 8.4.255.0: x86_64-darwin-20 => x86_64-darwin-21
 *** downloading
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 17.0M  100 17.0M    0     0  11.3M      0  0:00:01  0:00:01 --:--:-- 11.3M
 *** cleaning
// 一部省略...
 *** installing
Successfully installed libv8-8.4.255.0-x86_64-darwin-20
Building YARD (yri) index for libv8-8.4.255.0-x86_64-darwin-20...
Done installing documentation for libv8 after 0 seconds
1 gem installed
 *** patching
/path_to_rbenv/redeem/env/rbenv/versions/x.x.x/lib/ruby/gems/x.x.x/specifications/libv8-8.4.255.0-x86_64-darwin-20.gemspec -> /path_to_rbenv/rbenv/versions/x.x.x/lib/ruby/gems/x.x.x/specifications/libv8-8.4.255.0-x86_64-darwin-21.gemspec
/path_to_rbenv/rbenv/versions/x.x.x/lib/ruby/gems/x.x.x/doc/libv8-8.4.255.0-x86_64-darwin-20 -> /path_to_rbenv/redeem/env/rbenv/versions/x.x.x/lib/ruby/gems/x.x.x/doc/libv8-8.4.255.0-x86_64-darwin-21
/path_to_rbenv/redeem/env/rbenv/versions/x.x.x/lib/ruby/gems/x.x.x/gems/libv8-8.4.255.0-x86_64-darwin-20 -> /path_to_rbenv/redeem/env/rbenv/versions/x.x.x/lib/ruby/gems/x.x.x/gems/libv8-8.4.255.0-x86_64-darwin-21
/path_to_rbenv/redeem/env/rbenv/versions/x.x.x/lib/ruby/gems/x.x.x/cache/libv8-8.4.255.0-x86_64-darwin-20.gem -> /path_to_rbenv/redeem/env/rbenv/versions/x.x.x/lib/ruby/gems/x.x.x/cache/libv8-8.4.255.0-x86_64-darwin-21.gem
 *** result
// 一部省略...

确保在执行完成时安装了libv8 (8.4.255.0 x86_64-darwin-21)

$ gem list | grep libv8
libv8 (8.4.255.0 x86_64-darwin-21)

libv8 (8.4.255.0-x86_64-darwin-21) 添加到 Gemfile.lock

在macOS Monterey (x86_64-darwin-21) 环境下安装libv8 时为Gemfile.lock 添加定义

  libv8 (8.4.255.0)
  libv8 (8.4.255.0-universal-darwin-20)
  libv8 (8.4.255.0-x86_64-darwin-20)
+ libv8 (8.4.255.0-x86_64-darwin-21)
  libv8 (8.4.255.0-x86_64-linux)

添加定义后,执行bundle install,检查gem是否被正确识别

参考


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308626537.html

相关文章:

  • 2022-03-04
  • 2021-10-26
  • 2021-12-09
  • 2021-12-12
  • 2021-11-29
  • 2021-12-21
  • 2022-01-22
猜你喜欢
  • 2022-12-23
  • 2022-02-22
  • 2021-12-03
  • 2022-12-23
  • 2021-12-04
  • 2021-12-31
相关资源
相似解决方案