bundle exec pod install 很慢这个命令装要多长时间

irb, bundle exec irb, bundle console, rails console 的区别 · Ruby China
我们可以使用多种命令启动 Ruby console:
bundle exec irb
bundle console
bundle exec rails console
他们之间有什么关系呢?
使用 irb 时,它不关心你的 Gemfile 和 Gemfile.lock,它就是一个裸的 Ruby console,只加载 Ruby 的核心库。
你如果要使用 RestClient,手工 require 'rest_client'
你如果要使用 MySQL ,手工 require 'mysql2'
如果你要是用 Rack,手工 require 'rack'
并且当你在 irb 中 require 'rack' 时,它默认使用最高版本的 rack。
/Users/xiaoronglv [13:05]
& gem list rack
*** LOCAL GEMS ***
rack (1.5.2, 1.5.1)
rack-test (0.6.2)
/Users/xiaoronglv [13:05]
2.1.5 :001 & require 'rack'
2.1.5 :002 & Gem.loaded_specs["rack"].version.to_s
=& "1.5.2"
irb 不会考虑 Gemfile 和 Gemfile.lock;
require 默认使用最新的版本的 Gem。
Ruby 1.9.* 以上的版本默认集成了 .
require 最新版本的 gem 不是 Ruby 本来的的行为,是 rubygems 通过 monkey patch 重写了 kernal#require 方法。
2 bundle exec irb
& gem list rack
*** LOCAL GEMS ***
rack (1.5.2, 1.5.1)
rack-test (0.6.2)
# /tmp/christ/Gemfile
source 'http://ruby.taobao.org'
gem 'rack'
# /tmp/christ/Gemfile.lock
remote: http://ruby.taobao.org/
rack (1.5.1)
DEPENDENCIES
使用 bundle exec irb 时,bundler 会把当前文件夹下 Gemfile
和 Gemfile.lock 指定版本的 gems 列表添加到 $LOAD_PATH 中。
/tmp/christ [12:34]
& bundle exec irb
2.1.5 :001 & puts $LOAD_PATH
/Users/xiaoronglv/.rvm/gems/ruby-2.1.5/gems/rack-1.5.1/lib
当我 require 'rack' 时,会使用指定版本的 rack。
2.1.5 :001 & require 'rack'
2.1.5 :002 & Gem.loaded_specs["rack"].version.to_s
=& "1.5.1"
bundle exec irb 会把 Gemfile
Gemfile.lock,指定的版本的 gems 添加到 $LOAD_PATH。(Bundler.setup)
require gem 时,使用 Gemfile.lock 的版本号。
bundle console
bundle console 比 bundle exec irb 多做了一些工作。
Gemfle 和 Gemfile.lock 指定版本呢的 gems 添加到了 $LOAD_PATH。(Bundler.setup)
& bundle console
2.1.5 :001 & puts $LOAD_PATH
/Users/xiaoronglv/.rvm/gems/ruby-2.1.5/gems/rack-1.5.1/lib
require 所有的 gems。(Bundler.require)
2.1.5 :002 & puts $LOADED_FEATURES
/Users/xiaoronglv/.rvm/gems/ruby-2.1.5/gems/rack-1.5.1/lib/rack.rb
bundle exec rails console
bundle exec rails console 做的工作更多
require Gemfile 的 gem,并且严格遵守其版本号。
require 整个 rails 环境
setup autoloading
initialize app
这个命令我们平时用的最多。
为了便于比较,我做了一个表格。
备注: 此处的 gems 代指 Gemfile 和 Gemfile.lock 指定版本号的所有 gems。
还真是没有注意过这些,基本上使用最多的是 irb(pry) 和 rails console,做 sinatra 开发的话应该会用到中间两个
感谢翻译分享, 原文我也看过, 惭愧没想到翻译过来分享一下
原来 Bundler 的原理就是修改 $LOAD_PATH ?
另外提供一个启动 irb 的小技巧,使用 irb -r irb/completion 启动 irb 可以像 rails console 一样可以使用 Tab 键补全,不知道大家是不是都这么用。
Bundler.setup 是修改load path
Bundler.require 是require
gemfile中的gems
好像在ruby weekly 看过这篇文章的链接
后方可回复, 如果你还没有账号请点击这里 。
共收到 7 条回复CocoaPods安装和使用教程 - 博客频道 - CSDN.NET
︶ ̄嘀調℃
行百里者半九十;
桃李不言,下自成蹊。
分类:CocoaPods
Code4App 原创文章。转载请注明出处:
CocoaPods是什么?
当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。总之小编的意思就是,手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。如果能有什么工具能解决这些恼人的问题,那将“善莫大焉”。所以,你需要 CocoaPods。
CocoaPods应该是iOS最常用最有名的类库管理工具了,上述两个烦人的问题,通过cocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,作为iOS程序员的我们,掌握CocoaPods的使用是必不可少的基本技能了。
如何下载和安装CocoaPods?
在安装CocoaPods之前,首先要在本地安装好Ruby环境。至于如何在Mac中安装好Ruby环境,请google一下,本文不再涉及。
假如你在本地已经安装好Ruby环境,那么下载和安装CocoaPods将十分简单,只需要一行命令。在Terminator(也就是终端)中输入以下命令(注意,本文所有命令都是在终端中输入并运行的。什么,你不知道什么是终端?那请小编吃饭,小编告诉你):
sudo gem install cocoapods
但是,且慢。如果你在天朝,在终端中敲入这个命令之后,会发现半天没有任何反应。原因无他,因为那堵墙阻挡了cocoapods.org。(你会问,我靠,这都要墙!是的,小编也纳闷。)
但是,是的,又但是(不过是个可喜的“但是”)。我们可以用淘宝的Ruby镜像来访问cocoapods。按照下面的顺序在终端中敲入依次敲入命令:
$ gem sources --remove https://rubygems.org/
//等有反应之后再敲入以下命令
$ gem sources -a http://ruby.taobao.org/
为了验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:
$ gem sources -l
只有在终端中出现下面文字才表明你上面的命令是成功的:
*** CURRENT SOURCES ***
http://ruby.taobao.org/
上面所有的命令完成之时,在小编的终端上是这个的样子:
这时候,你再次在终端中运行:
$ sudo gem install cocoapods
等上十几秒钟,CocoaPods就可以在你本地下载并且安装好了,不再需要其他设置。
敲入以上命令时,小编终端上是这个样子的(由于太长,仅截取前面一部分):
看到这里,你心里会不会说,我靠!太爽了,这么容易就可以下载并且安装好了!是的,小编也是这么想的。CocoPods就是这么简单,使用也十分简单。继续往下看吧。
如何使用CocoaPods?
好了,安装好CocoPods之后,接下来就是使用它。所幸,使用CocoPods和安装它一样简单,也是通过一两行命令就可以搞定。
小编在这里用两种使用场景来具体说明如何使用CocoaPods。
场景1:利用CocoaPods,在项目中导入AFNetworking类库
AFNetworking类库在GitHub地址是:
为了确定AFNetworking是否支持CocoaPods,可以用CocoaPods的搜索功能验证一下。在终端中输入:
$ pod search AFNetworking
过几秒钟之后,你会在终端中看到关于AFNetworking类库的一些信息。比如:
这说明,AFNetworking是支持CocoaPods,所以我们可以利用CocoaPods将AFNetworking导入你的项目中。
首先,我们需要在我们的项目中加入CocoaPods的支持。你可以跟随小编的步骤,先利用Xcode创建一个名字CocoaPodsDemo的项目,用于以下的教程。创建好之后,在继续下一步之前,小编先截图,看看项目没有支持CocoaPods时的项目Xcode目录结构:
上图等一下要跟项目支持CocoaPods之后的项目Xcode目录结构做对比。
你看到这里也许会问,CocoaPods为什么能下载AFNetworking呢,而不是下载其他类库呢?这个问题的答案是,有个文件来控制CocoaPods该下载什么。这个文件就叫做“Podfile”(注意,一定得是这个文件名,而且没有后缀)。你创建一个Podfile文件,然后在里面添加你需要下载的类库,也就是告诉CocoaPods,“某某和某某和某某某,快到碗里来!”。每个项目只需要一个Podfile文件。
好吧,废话少说,我们先创建这个神奇的PodFile。在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile,运行:
$ vim Podfile
然后在Podfile文件中输入以下文字:
platform :ios, '7.0'
pod &AFNetworking&, &~& 2.0&
注意,这段文字不是小编凭空生成的,可以在AFNetworking的github页面找到。这两句文字的意思是,当前AFNetworking支持的iOS最高版本是iOS 7.0, 要下载的AFNetworking版本是2.0。
然后保存退出。vim环境下,保存退出命令是:
这时候,你会发现你的项目目录中,出现一个名字为Podfile的文件,而且文件内容就是你刚刚输入的内容。注意,Podfile文件应该和你的工程文件.xcodeproj在同一个目录下。
这时候,你就可以利用CocoPods下载AFNetworking类库了。还是在终端中的当前项目目录下,运行以下命令:
$ pod install
因为是在你的项目中导入AFNetworking,这就是为什么这个命令需要你进入你的项目所在目录中运行。
运行上述命令之后,小编的终端出现以下信息:
EricmatoMacBook-Pro:CocoaPodsDemo ericwang$ pod install
Analyzing dependencies
Downloading dependencies
Installing AFNetworking (2.0.2)
Generating Pods project
Integrating client project
[!] From now on use `CocoaPodsDemo.xcworkspace`.
注意最后一句话,意思是:以后打开项目就用 CocoaPodsDemo.xcworkspace 打开,而不是之前的.xcodeproj文件。
你也许会郁闷,为什么会出现.xcodeproj文件呢。这正是你刚刚运行$ pod install命令产生的新文件。除了这个文件,你会发现还多了另外一个文件“Podfile.lock”和一个文件夹“Pods”。 点击 CocoaPodsDemo.xcworkspace 打开之后工程之后,项目Xcode目录结构如下图:
你会惊喜地发现,AFNetwoking已经成功导入项目了(红框部分)!
现在,你就可以开始使用AFNetworking.h啦。可以稍微测试一下,在你的项目任意代码文件中输入:
#import &AFNetworking.h&
#import &AFNetworking.h&
然后编译,看看是否出错。如果你严格按照小编上述的步骤来,是不可能出错的啦。
至此,CocoPods的第一个应用场景讲述完毕。别看小编写了这么多,其实过程是十分简单的。总结一下就是:
先在项目中创建Podfile,Podfile的内容是你想导入的类库。一般类库的原作者会告诉你导入该类库应该如何写Podfile;运行命令:`$ pod install.
下面,小编继续讲述第二种使用场景。
场景2:如何正确编译运行一个包含CocoPods类库的项目
你也许曾经遇到过(特别是新手iOS开发者)这种情况,好不容易在GitHub上找到一份代码符合自己想需求,兴冲冲下载下来,一编译,傻眼了,发现有各种各样错误。一看,原来是缺失了各种其他第三方类库。这时候莫慌,你再仔细一看,会发现你下载的代码包含了Podfile。没错,这意味着你可以用CocoaPods很方便下载所需要的类库。
下面,小编以代码&&为例来说明如何正确编译运行一个包含CocoPods类库的项目。
UAAppReviewManager是一个能够让你方便地将提醒用户评分的功能加入你的应用中。当你去UAAppReviewManager的GitHub地址下载这份代码之后,打开Example工程(UAAppReviewManagerExample),编译,你会发现Xcode报告一大堆错误,基本都是说你编译的这份代码找不到某某头文件,这就意味着你要成功编译UAAppReviewManager的Example代码,必须先导入一些第三方类库。同时你会发现在UAAppReviewManagerExample文件夹下面有三个跟CocosPods相关的文件(文件夹):Podfile,Podfile.lock和Pods,如下图:
这时候,打开终端,进入UAAppReviewManagerExample所在的目录,也就是和Podfile在同一目录下,和场景1一样,输入以下命令(由于已经有Podfile,所以不需要再创建Podfile):
$ pod update
过几秒(也许需要十几秒,取决于你的网络状况)之后,终端出现:
Analyzing dependencies
Fetching podspec for `UAAppReviewManager` from `../`
Downloading dependencies
Installing UAAppReviewManager (0.1.6)
Generating Pods project
Integrating client project
[!] From now on use `UAAppReviewManagerExample.xcworkspace`.
这时候,再回到UAAppReviewManagerExample文件夹看一看,会看到多了一个文件UAAppReviewManagerExample.xcworkspace:
根据终端的信息提示,你以后就需用新产生的UAAppReviewManagerExample.xcworkspace来运行这个Example代码了。
打开UAAppReviewManagerExample.xcworkspace,编译运行,成功!如下图:
注意,这里有个小问题,如果刚刚你不是输入$ pod update,而是输入$ pod install,会发现类库导入不成功,并且终端出现下面提示:
[!] Required version (UAAppReviewManager (from `../`)) not found for `UAAppReviewManager`.
Available versions: 0.1.6
这里的意思大概是Podfile文件过期,类库有升级,但是Podfile没有更改。$ pod install只会按照Podfile的要求来请求类库,如果类库版本号有变化,那么将获取失败。但是&$ pod update会更新所有的类库,获取最新版本的类库。而且你会发现,如果用了&$ pod update,再用&$ pod install&就成功了。
那你也许会问,什么时候用&$ pod install,什么时候用&$ pod update&呢,我又不知道类库有没有新版本。好吧,那你每次直接用&$ pod update&算了。或者先用&$ pod install,如果不行,再用&$ pod update。
好了,上述都只是CocoaPods的最基本用法。要继续研究CocoaPods其他高级用法,请点击这里。
illusion21
排名:千里之外
(1)(1)(1)(1)(1)(1)(1)(1)(16)(1)(20)(1)(1)(2)(4)(2)(3)(2)(0)(1)(1)(2)(5)(3)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(0)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(2)(1)(1)(1)(1)(2)(2)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(2)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(0)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(0)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(3)(1)(1)(1)(0)(0)(0)cocoapods - pod install -bash: pod: command not found - Stack Overflow
to customize your list.
Join the Stack Overflow Community
Stack Overflow is a community of 4.7 million programmers, just like you, helping each other.
J it only takes a minute:
I installed pod some time ago. However, it's stopped working so I'm working through
However, I almost immediately run into a problem here:
pod install
-bash: pod: command not found
Any suggestions why this happened?
2,22531435
21.2k2372121
OK, found the problem. I upgraded Ruby some time ago and blasted away a whole load of gems. Solution:
sudo gem install cocoapods
2,66432652
21.2k2372121
Installing CocoaPods on OS X 10.11
These instructions were tested on all betas and the final release of El Capitan.
Custom GEM_HOME
This is the solution when you are receiving above error
$ mkdir -p $HOME/Software/ruby
$ export GEM_HOME=$HOME/Software/ruby
$ gem install cocoapods
1 gem installed
$ export PATH=$PATH:$HOME/Software/ruby/bin
$ pod --version
You have to restart Terminal after installing the gem. Or you can simply open a new tab Terminal to fix.
3,49712026
I had the same problem, running Mountain Lion with Ruby 2 installed and used instead of system ruby.
Previously I added PATH=/usr/local/bin:$PATH to my ~/.bash_profile as a way to make sure stuff installed by homebrew, including Ruby 2, took precedence over system-installed binaries.
Anyway, in this case I noticed that cocoapods would install their 'pod' binary not in
/usr/local/bin but rather in /usr/local/Cellar/ruby/2.0.0-p247/bin/
So to my .bash_profile I added PATH=$PATH:/usr/local/Cellar/ruby/2.0.0-p247/bin/
and now cocoapods is working like a charm.
8,96946294
rbenv global system
sudo gem install cocoapods
2,66411736
sudo gem install cocoapods -V
and you must update gem to the newest release using this:
sudo gem update --system
if you want to enjoy the fast responce :)
In terminal it's better to run installation of the cocoa pods with "sudo". In other case I'm getting an error: "You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory."
So the solution is:
sudo gem install cocoapods
gterzian is on the right track, however, if you later update your version of ruby then you'll also have to update your .profile to point to the new versioned ruby directory. For instance, the current version of ruby is 2.0.0-p353 so you'd have to add /usr/local/Cellar/ruby/2.0.0-p353/bin to your path instead.
A better solution is to add /usr/local/opt/ruby/bin to your PATH. /usr/local/opt/ruby is actually a symlink to the current version of ruby that homebrew automatically updates when you do an upgrade. That way you'll never need to update your PATH and always be pointing to the latest version.
If you used homebrew to install ruby,
answer worked for me.
brew unlink ruby && brew link ruby
OSX 10.9.4
2,22531435
This solution worked for me. Make sure to not miss the last command (export PATH=$PATH:$HOME/Software/ruby/bin).
2,22531435
@Babul Prabhakar was right
IMPORTANT:
However,if you still get "pod: command not found" after using his solution, this command could solve your problem:
sudo chown -R $(whoami):admin /usr/local
2,22531435
it happens to me when I wrote
gem install cocoapods
instead of
sudo gem install cocoapods
if sudo command is not found also, write
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH
before sudo command
We were using an incompatible version of Ruby inside of Terminal (Mac), but once we used RVM to switch to Ruby 2.1.2, Cocoapods came back.
7,55739126229
Your Answer
Sign up or
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Post as a guest
By posting your answer, you agree to the
Not the answer you're looking for?
Browse other questions tagged
Stack Overflow works best with JavaScript enabledcocoapods:安装/更新Ruby环境教程
有时候在安装cocoapods时会产生如下错误
Error installing cocoapods: activesupport requires Ruby version &= 2.2.2.
这就说明,你的Ruby环境需要升级更新, 我以mac OS 10.11 下更新ruby方法为例,
说一说更新Ruby环境的详细步骤.
原因和方案
在安装cocoapods过程中提示需要Ruby的版本在2.2.2以上,而目前使用的Ruby版本是Mac系统自带的1.8.7。所以需要对Ruby进行升级。以下是安装Ruby的三种方法:&
1.下载ruby源代码,编译,安装&
2.使用发行版自带的安装包,安装&
3.使用 rvm安装
通过rvm安装Ruby详细步骤
这里还是推荐大家通过rvm对Ruby进行升级的.
1&安装 ram&
RVM:Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem库管理(gemset)
$ curl -L get.rvm.io | bash -s stable
2&加载文件, 测试是否安装正常(按照提示操作)
$ source ~/.bashrc
$ source ~/.bash_profile
$ source ~/.profile
3&如果有下面的提示, 请reload rvm
A RVM version 1.27.0 (latest) is installed yet 1.25.23 (stable) is loaded.
Please do one of the following:
* 'rvm reload'
* open a new shell
* 'echo rvm_auto_reload_flag=1 && ~/.rvmrc' # for auto reload with msg.
* 'echo rvm_auto_reload_flag=2 && ~/.rvmrc' # for silent auto reload.
$ rvm reload
4&查看当前ruby版本 ,获取rvm 列表
$ rvm list known
5&安装ruby可能出的错误 (若未出错, 请跳过进入第6步)
$ rvm install 2.3
错误1: 在安装ruby的时候, 可能会如下报错, 提示 Updating system[YourMacName] password
required for ‘port -dv self update’,
$ sudo port self update
更新完成后, 如图:&
或者你可能遇到如下错误, 原因是需要安装Homebrew.
Error running 'requirements_osx_port_libs_install curl-ca-bundle automake libtool libyaml libffi libksba',
showing last 15 lines of /Users/acewill/.rvm/log/_ruby-2.3.0/package_install_curl-ca-bundle_automake_libtool_libyaml_libffi_libksba.log
参照stack overflow上的问题
需要安装&,
通过以下命令:
ruby -e "$(curl -fsSL /Homebrew/install/master/install)"
6&重新安装ruby&
安装完成后, 重新执行安装cocoapods的命令.
$ rvm install 2.3
7&安装rails&
$ gem install rails
8&卸载ruby方法&
获取ruby已安装列表, 然后卸载ruby
$ rvm list
$ rvm remove 2.3
参考资料:&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 pod install 很慢 的文章

 

随机推荐