mac 系统更新ruby

news/2024/10/20 17:07:35

mac 系统更新ruby

mac 系统更新遇到的机器坑爹的情况:

无法更新ruby 的情况,就是更新的时候提示版本过低无法更新

前提知晓:

Homebrew

Homebrew 是 macOS 和 Linux 系统上的一个流行的包管理器,用于简化软件的安装、管理和配置。它允许用户通过简单的命令行界面来安装、更新和卸载各种软件包(包括命令行工具、库和应用程序)。以下是关于 Homebrew 的一些重要信息:

gem

是 Ruby 编程语言的一个软件包管理系统,用于分发和管理 Ruby 库和应用程序的组件。以下是对 gem 的一些重要说明:

更新的几个方式:

gem update --system​ 行直接更新

Updating rubygems-update
ERROR:  While executing gem ... (Gem::FilePermissionError)You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.

alerson@192 opt % sudo  gem update --system
Password:
Updating rubygems-update
ERROR:  Error installing rubygems-update:There are no versions of rubygems-update (= 3.5.22) compatible with your Ruby & RubyGemsrubygems-update requires Ruby version >= 3.0.0. The current ruby version is 2.6.10.210.
ERROR:  While executing gem ... (NoMethodError)undefined method `version' for nil:NilClass

坑爹, 要更新直接报错 版本不支持

直接安装插件 gem install rubygems-update​ 也是一样版本过低

RVM(Ruby Version Manager)来管理和指定不同的 Ruby 版本以及与之关联的 gem 版本。以下是如何指定 gem 使用特定 Ruby 版本的方法:

安装依赖项

在安装 RVM 之前,您可能需要安装一些依赖项,尤其是一些用于构建 Ruby 的工具。运行以下命令:

brew install gpg
brew install curl

接下来,您可以通过以下命令安装 RVM:

\curl -sSL https://get.rvm.io | bash -s stable

上面⬆️ : 直接报错:

curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 8 ms: Couldn't connect to server

官网:https://rvm.io/

image

添加了GPG key :

gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

报错没发现gpg2,改成gpg

gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

成功后():

alerson@192 opt % gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
gpg: 密钥 105BD0E739499BDB: 1 个重复签名被移除
gpg: 密钥 105BD0E739499BDB:“Piotr Kuczynski <piotr.kuczynski@gmail.com>” 未改变
gpg: 密钥 3804BB82D39DC0E3:“Michal Papis (RVM signing) <mpapis@gmail.com>” 未改变
gpg: 处理的总数:2
gpg:              未改变:2d方式

在次运行:\curl -sSL https://get.rvm.io | bash -s stable 依旧报错 :

alerson@192 opt % \curl -sSL https://get.rvm.io | bash -s stable
curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 1 ms: Couldn't connect to server

没救了--0-

使用homebrew 安装 ruby

安装成功了

brew upgrade ruby 
==> Downloading https://mirrors.aliyun.com/homebrew/homebrew-bottles/api/formula.jws.json
##O=-#     #                                                                                                                                                                                
==> Downloading https://mirrors.aliyun.com/homebrew/homebrew-bottles/api/cask.jws.jsonWarning: ruby 3.3.5 already installed

-- 欣喜若狂;

但是ruby -v 还是版本2

 ruby -v
ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.x86_64-darwin23]

额 好难也

系统的ruby 和homebrew 安装的ruby 各管各的。。。。

接下来的思路就是: 把homebrew 安装的ruby识别到:

brew link ruby ​ 连接brew 的 ruby

alerson@192 opt % brew link ruby                                                                                                             
Warning: Refusing to link macOS provided/shadowed software: ruby
If you need to have ruby first in your PATH, run:echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrcFor compilers to find ruby you may need to set:export LDFLAGS="-L/usr/local/opt/ruby/lib"export CPPFLAGS="-I/usr/local/opt/ruby/include"

是不是 一下子豁然开朗 直接运行上面着三个命令就可以了, 但是实际还是有坑:

执行了:

echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrcexport LDFLAGS="-L/usr/local/opt/ruby/lib"export CPPFLAGS="-I/usr/local/opt/ruby/include"

之后在此ruby -v 依旧是旧版本:

image

原因是。。。当我们进入/usr/local/opt brew 的软件装路经下会发现。。。 没有ruby这个文件夹, 只有ruby@2, ruby@3.3

image

最后就是把上面要执行的内容 路经改成ruby@3.3

echo 'export PATH="/usr/local/opt/ruby@3.3/bin:$PATH"' >> ~/.zshrc

export LDFLAGS="-L/usr/local/opt/ruby@3.3/lib"

export CPPFLAGS="-I/usr/local/opt/ruby@3.3/include"

最后 在运行 :source ~/.zshrc​ 用来生效配置

source ~/.zshrc   # 如果你是使用 zsh
# 或者
source ~/.bash_profile  # 如果你是使用 bash

如果是用bash:

编辑 ~/.bash_profile​ 或 ~/.bashrc​ 文件 进行配置

总结

用homebrew 安装新版本ruby 后续配置链接

安装:

brew upgrade ruby 

链接:

brew link ruby 

根据提示查看路经(brew link ruby 的时候会提示,需要查看对应路经 修改ruby的文件夹)

echo 'export PATH="/usr/local/opt/ruby@3.3/bin:$PATH"' >> ~/.zshrcexport LDFLAGS="-L/usr/local/opt/ruby@3.3/lib"export CPPFLAGS="-I/usr/local/opt/ruby@3.3/include"

最后生效配置:

source ~/.zshrc   # 如果你是使用 zsh
# 或者
source ~/.bash_profile  # 如果你是使用 bash

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/73872.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

【蓝桥杯】C++ 第20场 小白入门赛

一、四个亲戚 题目 四个亲戚 题目分析 字面意思:Daiyu+‘kind’ 代码#include <iostream> using namespace std; int main() {cout<<"Daiyukind";return 0; }二、黛玉泡茶 题目 黛玉泡茶 题目分析 1.我们可以c 2.然后c 3.计算c,如果不能,整除后的答案…

2024-2025-1 20241314 《计算机基础与程序设计》第四周学习总结

2024-2025-1 20241314 《计算机基础与程序设计》第四周学习总结 作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 2024-2025-1计算机基础与程序设计第四周作业作业正文 正文教材学习内容总结 计算机系统计算机组成:中央处理器(CPU):负责…

【学校训练记录】10月个人训练赛4个人题解

A:要使s,t相等只要互相删除对方没有的字母即可,即找到a-z字母拥有最少的 #include <bits/stdc++.h> #define endl "\n" #define int long long using namespace std;string s1, s2; int a1[30], a2[30]; void solve(){cin >> s1 >> s2;for(int i …

CSP 模拟 50

A 小 h 的几何 简单证一下圆心,九点圆就不写了。首先画出单位圆,圆形为 \(\text{O}\),随便找到一个内接三角形 \(\triangle_{\text{ABC}}\),然后找到中点连接出四个三角形,分成的四个三角形全等,且 \(\triangle_{\text{AEF}}\) 与 \(\triangle_{\text{EFG}}\) 关于 \(\te…

低功耗4G模组:RSA算法示例

​ 今天我们学习合宙低功耗4G模组Air780EP_LuatOS_rsa示例,文末【阅读原文】获取最新资料。 一、简介 RSA算法的安全性基于:将两个大质数相乘很容易,但是想要将其乘积分解成原始的质数因子却非常困难。关联文档和使用工具:LuatOS 固件获取rsa-demoLuatools下载调试工具开发…

怎么修改公司网站

修改公司网站通常涉及多个步骤,包括设计、开发、测试和部署。以下是一个详细的流程,帮助你顺利完成网站的修改工作: 1. 确定需求明确目标:确定你需要修改的内容,比如更新文本、添加新功能、改进设计等。 收集反馈:从内部员工和外部用户那里收集反馈,了解他们对现有网站的…

数据采集与融合技术实践--作业二

数据采集与融合技术作业二 📌1.相关信息及链接名称 信息及链接学号姓名 102202108 王露洁本次作业要求链接 https://edu.cnblogs.com/campus/fzu/2024DataCollectionandFusiontechnology/homework/13285作业①所在码云链接 https://gitee.com/wanglujieeee/crawl_project/tre…