美文网首页iOS开发札记iOS新手学习iOS
-bash: rvm: command not found之刨根

-bash: rvm: command not found之刨根

作者: 叶小合 | 来源:发表于2018-03-01 14:06 被阅读1243次

    本想着学习一下大神的关于即时通讯的项目,使用CocoaPods命令集成网络库的时出现以下错误


    错误命令

    这种情况下检查一下自己rvm环境


    检查rvm环境.png
    竟然找不到rvm环境,郁闷了。

    后来想到,上周末重装系统后,本地的安装环境全都丢失。

    我们在使用CocoaPods集成的时候,检查开发环境的正常顺序如下

    Xcode --- HomeBrew --- RVM --- Ruby --- CocoaPods
    

    Homebrew、Rvm、Ruby、CocoaPods 简介

    · 1、官网及相关链接

    Rvm 官网 : https://www.rvm.io/

    Ruby 官网 :https://rubygems.org/

    CocoaPods 官网 :https://cocoapods.org/

    Rvm 安装指南 :https://rvm.io/rvm/install

    Homebrew 官网 :http://brew.sh/index_zh-cn.html

    ruby 镜像 - taobao:https://ruby.taobao.org/

    ruby 镜像 - china:https://gems.ruby-china.org/

    · 2、Homebrew 介绍

    • Homebrew 是一个软件包管理器,用于在mac上安装一些os x上没有的UNiX工具;类似于360软件管理器。

    · 3、Rvm 介绍

    • Rvm 全称 Ruby Version Manager ,是安装和管理 ruby 的一种工具。
    • 摘录:RVM is a command-line tool which allows you to easily install, manage, and work with multiple ruby environments from interpreters to sets of gems.

    · 4、Ruby 介绍

    • Ruby 是一种面向对象的脚本语言,简单易用,功能强大。能跨平台和可移植性好等等。其实就是种脚本语言。
    • Ruby 的软件源使用的是亚马逊的云服务,国内网络环境下载时可能会出现各种不稳定和超时,所以自带的需要翻墙,可以将 官方 ruby 源 替换成国内 淘宝 ruby 源(https://ruby.taobao.org/ )或者是由 China ruby 源 (https://gems.ruby-china.org/ )。据消息了解,2016.06 淘宝源 暂停维护了,建议使用 China ruby 源。

    · 5、CocoaPods 介绍

    • CocoaPods 是 iOS 最常用的第三方类库管理工具,绝大部分有名的开源类库都支持 CocoaPods。
    • CocoaPods 是用 ruby 实现的,要想使用它首先需要有 ruby 的环境。幸运的是OS X系统默认已经可以运行 ruby 了。但是有时候 ruby 版本过低是无法正常支持 CocoaPods 的使用,所以需要先安装更新升级 rvm 和 ruby。

    RVM的操作

    • 检查rvm安装环境
    rvm -v
    

    存在的情况下

     rvm 1.29.3 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
    

    不存在的情况下

    -bash: rvm: command not found
    
    • 输出-bash: rvm: command not found之后,需要开始安装rvm
    curl -L https://get.[rvm.io](http://rvm.io) | bash -s stable
    
    • 载入rvm环境
    source ~/.rvm/scripts/rvm
    

    安装完成后,重复上述检查操作

    rvm -v
    

    ruby的操作

    • 查询已知ruby环境
    rvm list known
    

    输出结果


    输出结果.png

    *安装ruby

    rvm install 2.3.0
    

    输出结果


    安装ruby.png

    出现问题


    安装2.2.2版本.png
    接下来,我们安装Terminal指定的版本
    rvm install 2.2.2
    
    • 查询已知安装的ruby
    rvm list
    
    • 查看当前ruby版本
    ruby –v
    
    查看当前ruby版本.png
    • 检查ruby源
    gem sources -l
    
    检查源.png

    至此,ruby安装,可以愉快的去使用CocoaPods了。

    补充操作

    • 移除源
    gem sources --remove [https://rubygems.org/](https://rubygems.org/)
    
    

    替换添加国内镜像源 ruby-china 源,因为上面已经提到国内镜像源 taobao 源 已经停止维护了,所以此处替换的是 ruby-china 源,且尽量确保只有一个 ruby-china 源

    • 添加替换源
    gem sources --add https://gems.[ruby-china.org](http://ruby-china.org)
    
    • 升级更新
    sudo gem update —system
    

    CocoaPods的安装使用

    这里不多介绍,code4app一篇文章总结的很完善了,如下:
    CocoaPods安装和使用教程
    安装成功之后如下
    *

    cocoapods安装成功.jpg
    意外状况补充:

    刨根问底,刨个稀烂

    安装需要第三方库的时候,出现了以下错误

    • [!] Unable to find a specification for CocoaAysncSocket
      或者
    • [!] Unable to find a pod with name, author, summary, or description matching CocoaAysncSocket

    执行 pod setup,将https://github.com/CocoaPods/Specs上的Specs项目clone到/Users/用户名/.cocoapods/repos目录下

    pod setup 
    

    还是错误的话,继续执行

    rm ~/Library/Caches/CocoaPods/search_index.json 
    

    删除~/Library/Caches/CocoaPods目录下的search_index.json文件


    search.png

    还是错误的话,集成指定的版本

    platform :ios,"8.0"
    target "cyCocoaSyncSocket" do
    pod 'CocoaAsyncSocket', '~> 7.6.2'
    end
    

    常用命令

    pod install
    

    使用环境

    • 这个是第一次在工程里面使用pods的时候使用,并且,也是每次你编辑你的Podfile(添加、移除、更新)的时候使用。
    • 每次运行pod install命令的时候,在下载、安装新的库的同时,也会把你安装的每个库的版本都写在了Podfile.lock文件里面。这个文件记录你每个安装库的版本号,并且锁定了这些版本。
    • 当你使用pod install它只解决了pods里面,但不在Podfile.lock文件里面的那些库之间的依赖。对于在Podfile.lock里面所列出的那些库,会下载在Podfile.lock里面明确的版本,并不会去检查是否该库有新的版本。对于还不在Podfile.lock里面的库,会找到Podfile里面描述对应版本(例如:pod "MyPod", "~>1.2”)。
    pod update
    

    使用环境

    • 当你运行 pod update PODNAME 命令时,CocoaPods会帮你更新到这个库的新版本,而不需要考虑Podfile.lock里面的限制,它会更新到这个库尽可能的新版本,只要符合Podfile里面的版本限制。
    • 如果你运行pod update,后面没有跟库的名字,CocoaPods就会更新每一个Podfile里面的库到尽可能的最新版本。
    • 你应该使用pod update PODNAME去只更新某个特定的库(检查是否有新版本,并尽可能更新到新的版本)。对应的,你应该使用pod install,这个命令不会更新那些已经安装了的库。
    • 当你在你的Podfile里面添加了一个库的时候,你应该使用pod install,而不是pod update,这样既安装了这个库,也不需要去更新其它的已安装库。
      以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:
    pod install --verbose --no-repo-update
    

    更新

    pod update --verbose --no-repo-update
    

    参考文章:
    【iOS工具】rvm、Ruby环境和CocoaPods安装使用及相关报错问题解决

    相关文章

      网友评论

        本文标题:-bash: rvm: command not found之刨根

        本文链接:https://www.haomeiwen.com/subject/ebsgxftx.html