Luckean's blog Luckean's blog
首页
  • 前端文章

    • JavaScript
  • 项目笔记

    • 项目笔记
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • flutter 布局
  • dart 数组的定义
  • java目录
  • jenkins配置
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • vscode vim 结合使用
  • vscode vim 汇总
  • vscode快捷键
  • vscode自定义快捷键
  • typora 使用技巧
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

Luckean

前端界的小学生
首页
  • 前端文章

    • JavaScript
  • 项目笔记

    • 项目笔记
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • flutter 布局
  • dart 数组的定义
  • java目录
  • jenkins配置
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • vscode vim 结合使用
  • vscode vim 汇总
  • vscode快捷键
  • vscode自定义快捷键
  • typora 使用技巧
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • 项目

  • widget

  • dart

  • ios

  • andriod

  • app上架

  • plug

  • 安装

    • android studio 安装
    • Mac安装Homebrew(Mac系统升级后)
    • Mac关于Ruby安装权限问题汇总
      • Mac关于Ruby安装权限问题汇总
  • 错误信息记录

  • Flutter
  • 安装
Luckean
2022-06-19
目录

Mac关于Ruby安装权限问题汇总

# Mac关于Ruby安装权限问题汇总

在iOS开发过程中,在使用Pod或者Fastlane 自动化插件配置的时候都要安装ruby环境,由于Mac自带一套ruby环境,所以理论上可以直接拿来进行使用。但是在使用过程中,总会报权限的问题,比如:

Error loading plugin 'fastlane-plugin-fir_cli': 
You don't have write permissions for the /usr/bin directory.

# You don't have write permissions for the /Library/Ruby/Gems/2.3.0 
directory. (mac user)

......
1
2
3
4
5
6
7

点击并拖拽以移动

类似的这样的权限问题,弄得一头雾水,所以这里特意理了一下相关的逻辑内容。因为ruby环境系统自带,所以Mac系统为了保证自身环境的问题,对权限进行了限制,最终导致一般用户无法对系统的ruby环境相关的文件读写内容。所以解决点也就在这了。

原理:再次安装一套ruby环境供普通用户使用,系统继续用自己的ruby环境,用户使用自己的一套ruby环境,这样互不干扰

所以大体也就分成三步了:

  1. 安装针对于用户所使用的ruby环境
  2. 导入新的ruby环境的环境变量
  3. 查看是否ruby环境是否安装成功

在进行安装之前,我们通过以下命令进行排查,查看当前的ruby环境是否是用的系统自带的环境

which ruby
1

点击并拖拽以移动

如果ruby使用的路径如下,那么此时就是用的系统自带的ruby环境了

/usr/bin
1

点击并拖拽以移动

安装ruby环境

推荐使用homebrew安装ruby环境,如果没有安装homebrew`,可以通过以下命令安装:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
1

点击并拖拽以移动

假定已经安装了homebrew环境了,使用以下命令进行ruby的安装

brew install ruby
1

点击并拖拽以移动

当ruby安装完成之后,会提醒你将ruby的路径导入到环境变量中,如下提示:

==> Reinstalling ruby
==> Downloading https://homebrew.bintray.com/bottles/ruby-2.7.1_2.catalina.bottle.tar.gz
Already downloaded: /Users/lichenchen/Library/Caches/Homebrew/downloads/1a9255e83b1fb1738532e9156b16bc750b493bbef40486552db5f7fa5b8ff08d--ruby-2.7.1_2.catalina.bottle.tar.gz
==> Pouring ruby-2.7.1_2.catalina.bottle.tar.gz
==> Caveats
By default, binaries installed by gem will be placed into:
  /usr/local/lib/ruby/gems/2.7.0/bin

You may want to add this to your PATH.

ruby is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.

If you need to have ruby first in your PATH run:
  echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc

For 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"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

点击并拖拽以移动

这里,我们按照提示,直接导入到环境变量就好了,执行以下命令:

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

source ~/.zshrc
1
2
3
4
5

点击并拖拽以移动

最后我们再使用which命令看一下当前的ruby使用的是哪个路径下的ruby。

which ruby
#变成如下的路径就替换了我们自己所安装的ruby了
/usr/local/opt/ruby/bin/ruby
1
2
3

点击并拖拽以移动

至此,系统中就有了两套ruby环境,我们使用的时候用我们自己安装的一套就好了,也就从根本上解决了权限的问题。

上次更新: 2022/12/11, 02:32:13
Mac安装Homebrew(Mac系统升级后)
Flutter问题记录2 (持续更新) (apple m1 arm64插件报错)

← Mac安装Homebrew(Mac系统升级后) Flutter问题记录2 (持续更新) (apple m1 arm64插件报错)→

最近更新
01
Mac配置nginx+php
08-23
02
p12文件的生成
08-22
03
mac 程序安装失败解决
08-18
更多文章>
Theme by Vdoing | Copyright © 2022-2023 Lucking | 粤ICP备2022078904号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式