RVM问题记录 - Error running ‘__rvm_make -j10‘
文章目录
- 前言
- 开发环境
- 问题描述
- 问题分析
- 解决方案
- 最后
前言
公司新到一台电脑需要配置开发环境,在用RVM安装Ruby时遇到了一个奇怪的问题。
开发环境
- RVM: 1.29.12
- OpenSSL: 3.1.1
问题描述
执行命令安装Ruby 3.0版本:
rvm install ruby-3.0.0
在编译阶段出现报错:
ruby-3.0.0 - #compiling - please wait
Error running '__rvm_make -j10',
please read /Users/xxx/.rvm/log/1688010549_ruby-3.0.0/make.logThere has been an error while running make. Halting the installation.
问题分析
这个问题看起来有点熟悉,有点像以前遇到过的问题,不过那是在安装最新Ruby版本的时候遇到的:
Error running ' CFLAGS=-O3 ...',
please read /Users/xxx/.rvm/log/1679388668_ruby-3.2.1/configure.log
There has been an error while running configure. Halting the installation.
虽然报错内容不一样,但是也没找到什么好的解决办法。姑且一试这个问题的解决方法:
rvm install ruby-3.0.0 --with-openssl-dir=`brew --prefix openssl`
不出意外,还是报一样的错误。找来自己使用的电脑和新电脑进行开发环境对比,RVM版本是一致的,不过新电脑上的OpenSSL的版本竟然是当前最新的3.1.1版本:
OpenSSL 3.1.1 30 May 2023 (Library: OpenSSL 3.1.1 30 May 2023)
OpenSSL不是我主动安装的,应该是用HomeBrew安装某个软件时因为依赖了OpenSSL而自动安装的。那么是因为OpenSSL的版本导致的报错吗?
先用HomeBrew安装一个1.1版本的OpenSSL:
brew install openssl@1.1
安装成功后,指定OpenSSL的版本重新执行安装Ruby的命令:
rvm install ruby-3.0.0 --with-openssl-dir=`brew --prefix openssl@1.1`
结果还是不行,我怀疑指定的OpenSSL版本可能没生效,于是干脆通过brew uninstall openssl命令把最新版本的OpenSSL卸载了,再次执行上面的命令一切正常🎉!
经测试,当安装有最新版的OpenSSL(brew list中显示openssl@3)时,Ruby 3.0怎么安装都不成功,但是Ruby 3.2.1版本可以安装成功。
解决方案
如果不局限于安装Ruby 3.0版本,那么可以通过安装更高的Ruby版本解决该问题,可以参考这篇文章RVM - 安装最新Ruby版本。
如果一定要安装Ruby 3.0版本,请安装1.1版本的OpenSSL,并卸载最新版本,同时指定使用HomeBrew安装的OpenSSL完成安装:
- 安装
1.1版本的OpenSSL
brew install openssl@1.1
- 卸载最新版本的OpenSSL
brew uninstall openssl
- 指定使用HomeBrew安装的OpenSSL完成安装
rvm install ruby-3.0.0 --with-openssl-dir=`brew --prefix openssl`
如果不想卸载最新版本,可以通过brew link命令切换(链接)openssl的版本完成安装:
- 安装
1.1版本的OpenSSL
brew install openssl@1.1
- 切换OpenSSL的版本为
1.1
brew link --overwrite openssl@1.1
--overwrite参数的作用是强制切换。如果不使用该参数,可以先执行brew unlink openssl命令后再执行brew link openssl@1.1命令完成切换。
- 指定使用HomeBrew安装的OpenSSL完成安装
rvm install ruby-3.0.0 --with-openssl-dir=`brew --prefix openssl@1.1`
实测这里需要指定OpenSSL的版本为1.1,不然还是会报错。补充一点,如果想知道当前使用的OpenSSL是什么版本,可以通过openssl version命令查看。
最后
如果这篇文章对你有所帮助,请不要吝啬你的点赞👍加星🌟,谢谢~
相关文章:
RVM问题记录 - Error running ‘__rvm_make -j10‘
文章目录 前言开发环境问题描述问题分析解决方案最后 前言 公司新到一台电脑需要配置开发环境,在用RVM安装Ruby时遇到了一个奇怪的问题。 开发环境 RVM: 1.29.12OpenSSL: 3.1.1 问题描述 执行命令安装Ruby 3.0版本: rvm install ruby-3.0.0在编译阶…...
VIS for AI :ConvNetJS
1.简单介绍: ConvNetJS是由斯坦福大学计算机科学系的Andrej Karpathy开发的一个深度学习框架,用于在浏览器中运行卷积神经网络(ConvNet)。ConvNetJS可以帮助开发人员在客户端(浏览器)上进行深度学习任务&a…...
【Python入门系列】第二十篇:Python区块链和加密货币
文章目录 前言一、区块链基础知识1.1 什么是区块链1.2 区块链的工作原理 1.3 区块链的优势和应用场景二、Python实现区块链2.1 创建区块类2.2 创建区块链类2.3 添加区块和验证区块链 三、加密货币基础知识3.1 什么是加密货币3.2 加密货币的工作原理3.3 加密货币的挖矿和交易 四…...
MySQL 服务器的调优策略
点击上方↑“追梦 Java”关注,一起追梦! 在工作中,我们发现慢查询一般有2个途径,一个是被动的,一个是主动的。被动的是当业务人员反馈某个查询界面响应的时间特别长,你才去处理。主动的是通过通过分析慢查询…...
Educational Codeforces Round 152 (Rated for Div. 2)
B这个题目在20分钟的时候发现了取模的规律,但是在写法上我竟然犹豫了,这影响了我后面题目的心态 过于可惜了 但是没关系,现在不会,之后就会写了 这里强调一下,sort不会改变原先的顺序,就是说如果两个相等的…...
CSPM难度大吗?对比pmp怎么样?
CSPM证书是刚出来的,难度不会很大,大家都知道 PMP 证书是从国外引进的,近几年很热门,持证人数已经高达 90 余万了,但是目前我们和老美关系大家有目共睹,一直推国际标准和美国标准感觉有点奇怪。 现在新出台…...
Android.mk中的LOCAL_OVERRIDES_PACKAGES用法
Android.mk中的LOCAL_OVERRIDES_PACKAGES用法_mk local_over_觅风者的博客-CSDN博客 Android.mk中的LOCAL_OVERRIDES_PACKAGES的用法说明可以参考以下文章: Android.mk覆盖替换LOCAL_OVERRIDES_PACKAGES 此变量可以使其他的模块不加入编译 项目中遇到的问题&…...
Matlab遍历文件及直方图统计
参考链接: 使用MATLAB遍历文件 strtrim用法 strsplit用法 cell单元数据使用{} close all; dir_path C:/Users/; fileFolder ls(dir_path); fileNum length(fileFolder(:,1)) - 2; for i 3:(3fileNum-1)file_path strcat(dir_path, strtrim(fileFolder(i,:)))…...
为什么要格式化硬盘?硬盘格式化了数据怎么恢复
在计算机维护和数据管理中,格式化硬盘是一个常见的操作。本文将探讨为什么需要对硬盘进行格式化以及当数据丢失时如何恢复。 ▌格式化硬盘是什么意思: 硬盘格式化是对磁盘或其分区进行初始化的一种操作,它会清除磁盘或分区中的所有文件。因此…...
PHP注册、登陆、6套主页-带Thinkphp目录解析-【白嫖项目】
强撸项目系列总目录在000集 PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 上效果图主页注册,登陆 phpStudy 设置导数据库项目目录如图:代码部分:控制器前台的首页 其它配套页面展示直接给第二套方案的页面吧第三套…...
antDesignMobile中Switch配合Form使用无效解决方案
介绍 Form和Switch合起来使用无效的原因就是因为Form.Item给Switch的是value值,而Switch中监听的是checked;所以说我们只需要做一层二次封装即可。非常简单~如下本文以antd-mobile举例,其他antd框架解决方案一致!!&am…...
记录springboot在k8s下无法读取文件问题
//加载配置文件 File file ResourceUtils.getFile("classpath:/template/job.yaml"); /对象映射 V1Job v1Job (V1Job) Yaml.load(file); 开发的时候使用上面的方法可以读取文件数据,但是部署到k8s容器中之后,读取文件出现报错,…...
数据湖如何为企业带来9%的高增长?可否取代数据仓库?
什么是数据湖? 数据湖是一个集中的存储库,允许您以任何规模存储所有结构化和非结构化数据。您可以按原样存储数据,而不必首先构造数据,并运行不同类型的分析—从仪表板和可视化到大数据处理、实时分析和机器学习,以指…...
P2669 [NOIP2015 普及组] 金币
题目背景 NOIP2015 普及组 T1 题目描述 国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天&a…...
【2023】华为OD机试真题Java CC++ Python JS Go-题目0250-选修课
题目0250-选修课 题目描述 现有两门选修课,每门选修课都有一部分学生选修,每个学生都有选修课的成绩,需要你找出同时选修了两门选修课的学生,先按照班级进行划分,班级编号小的先输出,每个班级按照两门选修课成绩和的降序排序,成绩相同时按照学生的学号升序排序。 输入…...
lama cleaner
这里写自定义目录标题 安装参数包含的额外plugins 代码结构FreehandBackground RemovalInteractiveSeg 安装 conda create --name lamacleaner python3.10 pip install -r requirements.txt pip install gfpgan pip install realesrgan pip install rembg pip install .如果…...
制作一个简易的计算器app
github项目地址:https://github.com/13008451162/AndroidMoblieCalculator 1、Ui开发 笔者的Ui制作的制作的比较麻烦仅供参考,在这里使用了多个LinearLayout对屏幕进行了划分。不建议大家这样做最好使用GridLayout会更加快捷简单 笔者大致划分是这样的…...
48. 旋转图像
题目介绍 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在** 原地** 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix [[1,2,3],[4,5,6]…...
“深入解析Spring Boot:从入门到精通的完整指南“
标题:深入解析Spring Boot:从入门到精通的完整指南 摘要:本文将深入解析Spring Boot框架,从入门到精通,为读者提供全面的指南。我们将介绍Spring Boot的基本概念、核心特性以及使用方法,并通过示例代码演示…...
【C++】C++11——包装器
文章目录 1. function包装器1.1 遇到的问题1.2 包装器的定义1.3 解决问题1.4 包装器的其他应用 2. bind2.1 bind的定义2.2 bind包装器绑定固定参数2.3 bind包装器调整传参顺序2.4 bind包装器的意义 1. function包装器 1.1 遇到的问题 我们首先来看一行代码: ret …...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...
零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...
TJCTF 2025
还以为是天津的。这个比较容易,虽然绕了点弯,可还是把CP AK了,不过我会的别人也会,还是没啥名次。记录一下吧。 Crypto bacon-bits with open(flag.txt) as f: flag f.read().strip() with open(text.txt) as t: text t.read…...
