Mac中gem安装与移除

Mac中gem安装与移除,第1张

Hi,

本文主讲,Mac中使用gem命令来安装、移除某个Ruby库。

我是做iOS开发的,经常会用到CocoaPods,不了解CocoaPods的,我建议去官网( https://cocoapods.org )看看,相对来说是全面的。

首先,简单介绍下背景。

RubyGems(简称 gems)是一个用于对 Ruby组件进行打包的 Ruby打包系统。 它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具。Gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem(如 http://rubygems.org/ )源来查找、安装、升级和卸载软件包,非常的便捷。

本文基于你的Mac已经安装了RVM、李简Ruby(自带Gem)环境。

先查看你已经安装了哪些Ruby库,终端中 gem list

以哪核裤我的电脑为例,效果如下图所示:

使用gem来安装Ruby库,有两种方式。

1、gem install libName -v versionNumber

    比如:gem install cocoapods-packager -v 1.5.0

2、sudo gem install libName -v versionNumber

    比如:sudo gem install cocoapods -v 1.2.1

    如果gem install cocoapods-packager,默认会安装最新版本,建议查看好你需要的版本再安装。

相对应的,移除某个Ruby库,也有两种方氏昌法,需注意的是怎么安装的,怎么移除。

1、gem uninstall libName -v versionNumber

    比如:gem uninstall cocoapods-packager -v 1.5.0

2、sudo gem install libName -v versionNumber

    比如:sudo gem uninstall cocoapods -v 1.2.1

redis-cluster安装需要通过gem install redis来安装相关依赖。否则报错。

通过gem install redis执行后会出现两个问题:

1、缺少zlib依赖

问题:

ERROR: Loading command: install (LoadError)

cannot load such file -- zlib

ERROR: While executing gem ... (NoMethodError)

undefined method 'invoke_with_build_args' for nil:NilClass

解决:

通过yum install zlib-devel 安装zlib库

然后集成zlib库到ruby环境

cd /usr/local/ruby-2.2.7/ext/zlib

ruby extconf.rb

重要:ext/openssl/Makefile 增加 top_srcdir = ../..

//这一步如果不修改,make时会爆团陵出另外一个塌拦戚错误

//make:*** No rule to make target '衡简/include/ruby.h', needed by 'zlib.o'. Stop

make &&make install

2、缺少openssl库

问题:

ERROR: While executing gem ... (Gem::Exception)

Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources

解决:

通过yum install openssl-devel 安装openssl库

然后集成到ruby环境

cd /usr/local/ruby-2.2.7/ext/zlib

ruby extconf.rb

重要:ext/openssl/Makefile 增加 top_srcdir = ../..

//修改Makefile中的$(top_srcdir)为../..

make &&make install

再次运行gem install redis,出现下图则表示安装成功


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12433383.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存