新的安装, Mac上已有ruby环境。
之前安装走的都是淘宝ruby镜像,现在这个镜像以更换为 https://gems.ruby-china.org/ 了(原因是直连不上国外ruby的镜像)
步骤: 1修改ruby镜像地址
gem sources --remove https://rubygems.org/
gem sources -a https://gems.ruby-china.org/
之后使用:检测是否成功替换镜像地址
gem sources -l
出现以下为成功
*** CURRENT SOURCES ***
2.安装cocoapods
sudo gem install cocoapods
出现错误提示:
ERROR: While executing gem... (Gem::DependencyError)
| Unable to resolve dependencies: cocoapods requires cocoapods-core (= 1.2.1), cocoapods-downloader (< 2.0, >= 1.1.3), cocoapods-trunk (< 2.0, >= 1.2.0), molinillo (~> 0.5.7), ruby-macho (~> 1.1) |
该错误可以通过升级ruby后解决
sudo gem update --system
升级过程中
Updating rubygems-update
Fetching: rubygems-update-2.6.7.gem(100%)
Successfully installedrubygems-update-2.6.7
Parsing documentation forrubygems-update-2.6.7
Installing ri documentation forrubygems-update-2.6.7
Installing darkfish documentationfor rubygems-update-2.6.7
Installing RubyGems 2.6.7
RubyGems 2.6.7 installed
Parsing documentation forrubygems-2.6.7
Installing ri documentation forrubygems-2.6.7
=== 2.6.7 / 2016-09-26
Bug fixes:
* Install native extensions in thecorrect location when using the
`--user-install` flag. Pullrequest #1683 by Noah Kantrowitz.
* When calling `Gem.sources`, loadsources from `configuration`
if present, else use thedefault sources. Pull request #1699
by Luis Sagastume.
* Fail gracefully when attemptingto redirect without a Location.
Pull request #1711 by SamuelGiddins.
* Update vendored Molinillo to0.5.1. Pull request #1714 by
Samuel Giddins.
=== 2.6.6 / 2016-06-22
Bug fixes:
* Sort installed versions to makesure we install the latest version when
running `gem update--system`. As a one-time fix, run
`gem update --system=2.6.6`.Pull request #1601 by David Radcliffe.
=== 2.6.5 / 2016-06-21
Minor enhancements:
* Support for unified Integer inRuby 2.4. Pull request #1618
by SHIBATA Hiroshi.
* Update vendored Molinillo to0.5.0 for performance improvements.
Pull request #1638 by SamuelGiddins.
Bug fixes:
* Raise an explicit error ifSigner#sign is called with no certs. Pull
request #1605 by DanielBerger.
* Update`update_bundled_ca_certificates` utility script for directory
nesting. Pull request #1583by James Wen.
* Fix broken symlink support in tarwriter (+ fix broken test). Pull
request #1578 by CezaryBaginski.
* Remove extension directory before(re-)installing. Pull request #1576
by Jeremy Hinegardner.
* Regenerate test CA certificateswith appropriate extensions. Pull
request #1611 by rhenium.
* Rubygems does not terminate onfailed file lock when not superuser. Pull
request #1582 by Ellen MarieDash.
* Fix tar headers with a 101character name. Pull request #1612 by Paweł
Tomulik.
* Add Gem.platform_defaults toallow implementations to override defaults.
Pull request #1644 byCharles Oliver Nutter.
* Run Bundler tests on TravisCI.Pull request #1650 by Samuel Giddins.
=== 2.6.4 / 2016-04-26
Minor enhancements:
* Use Gem::Util::NULL_DEVICEinstead of hard coded strings. Pull request #1588
by Chris Charabaruk.
* Use File.symlink on MS Windows ifsupported. Pull request #1418
by Nobuyoshi Nakada.
Bug fixes:
* Redact uri password from erroroutput when gem fetch fails. Pull request
#1565 by Brian Fletcher.
* Suppress warnings. Pull request#1594 by Nobuyoshi Nakada.
* Escape user-supplied contentserved on web pages by `gem server` to avoid
potential XSSvulnerabilities. Samuel Giddins.
=== 2.6.3 / 2016-04-05
Minor enhancements:
* Lazily calculate Gem::LoadErrorexception messages. Pull request #1550
by Aaron Patterson.
* New fastly cert. Pull request#1548 by David Radcliffe.
* Organize and cleanup SSL certs.Pull request #1555 by James Wen.
* [RubyGems] Make deprecationmessage for paths= more helpful. Pull
request #1562 by SamuelGiddins.
* Show default gems when using"gem list". Pull request #1570 by Luis
Sagastume.
Bug fixes:
* Stub ordering should beconsistent regardless of how cache is populated.
Pull request #1552 by AaronPatterson.
* Handle cases when the @@stubsvariable contains non-stubs. Pull request
#1558 by Per Lundberg.
* Fix test on Windows forinconsistent temp path. Pull request #1554 by
Hiroshi Shirosaki.
* Fix `Gem.find_spec_for_exe` picksoldest gem. Pull request #1566 by
Shinichi Maeshima.
* [Owner] Fallback to email anduserid when owner email is missing. Pull
request #1569 by SamuelGiddins.
* [Installer] Handle nil existingexecutable. Pull request #1561 by Samuel
Giddins.
* Allow two digit version numbersin the tests. Pull request #1575 by unak.
=== 2.6.2 / 2016-03-12
Bug fixes:
* Fix wrong version of gemactivation for bin stub. Pull request #1527 by
Aaron Patterson.
* Speed up gem activation failures.Pull request #1539 by Aaron Patterson.
* Fix platform sorting in theresolver. Pull request #1542 by Samuel E.
Giddins.
* Ensure we unlock the monitor evenif try_activate throws. Pull request
#1538 by Charles OliverNutter.
=== 2.6.1 / 2016-02-28
Bug fixes:
* Ensure `default_path` and `home`are set for paths. Pull request #1513
by Aaron Patterson.
* Restore but deprecate support forArray values on `Gem.paths=`. Pull
request #1514 by AaronPatterson.
* Fix invalid gem file preventinggem install from working. Pull request
#1499 by Luis Sagastume.
=== 2.6.0 / 2016-02-26
Minor enhancements:
* RubyGems now defaults the `gempush` to the gem's "allowed_push_host"
metadata setting. Pullrequest #1486 by Josh Lane.
* Update bundled Molinillo to0.4.3. Pull request #1493 by Samuel E. Giddins.
* Add version option to gem opencommand. Pull request #1483 by Hrvoje
Šimić.
* Feature/add silent flag. Pullrequest #1455 by Luis Sagastume.
* Allow specifying gem requirementsvia env variables. Pull request #1472
by Samuel E. Giddins.
Bug fixes:
* RubyGems now stores `gem push`credentials under the host you signed-in for.
Pull request #1485 by JoshLane.
* Move `coding` location to firstline. Pull request #1471 by SHIBATA
Hiroshi.
* [PathSupport] Handle a regexppath separator. Pull request #1469 by
Samuel E. Giddins.
* Clean up the PathSupport object.Pull request #1094 by Aaron Patterson.
* Join with File::PATH_SEPARATOR in Gem.use_paths. Pull request #1476 by
Samuel E. Giddins.
* Handle when the gem home and gempath arent set in the config file. Pull
request #1478 by Samuel E.Giddins.
* Terminate TimeoutHandler. Pullrequest #1479 by Nobuyoshi Nakada.
* Remove redundant cache. Pullrequest #1482 by Eileen M. Uchitelle.
* Freeze `Gem::Version@segments`instance variable. Pull request #1487 by
Ben Dean.
* Gem cleanup is trying touninstall gems outside GEM_HOME and reporting
an error after it tries.Pull request #1353 by Luis Sagastume.
* Avoid duplicated sources. Pullrequest #1489 by Luis Sagastume.
* Better description for quietflag. Pull request #1491 by Luis Sagastume.
* Raise error if find_by_namereturns with nil. Pull request #1494 by
Zoltán Hegedüs.
* Find_files only from loaded_gemswhen using gemdeps. Pull request #1277
by Michal Papis.
------------------------------------------------------------------------------
RubyGems installed the followingexecutables:
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/gem
Ruby Interactive (ri) documentationwas installed. ri is kind of like man
pages for ruby libraries. You mayaccess it like this:
ri Classname
ri Classname.class_method
ri Classname#instance_method
If you do not wish to install thisdocumentation in the future, use the
--no-document flag, or set it asthe default in your ~/.gemrc file. See
'gem help env' for details.
RubyGems system software updated
再次尝试安装cocoapods
sudo gem install cocoapods
又有新的错误出现
Fetching: xcodeproj-1.5.1.gem(100%)
ERROR: While executing gem... (Errno::EPERM)
Operation notpermitted - /usr/bin/xcodeproj
这次尝试过
sudo nvram boot-args="rootless=0";sudo reboot
结果机器重新启动后还是不能安装
因为在Mac上安装了8.3.3的正式版xcode以及一个9.0的预览版xcode
故再次尝试
sudo xcode-select -switch/Applications/Xcode.app/Contents/Developers
仍出现错误
xcode-select: error: invaliddeveloper directory '/Applications/Xcode.app/Contents/Developers'
就算将Xcode.app替换成Xcode-beta.app也是错误
xcode-select: error: invaliddeveloper directory '/Applications/Xcode-beta.app/Contents/Developers'
最终将安装的命令更该为以下才成功安装
sudo gem install -n /usr/local/bincocoapods --pre
出现
Successfully installedxcodeproj-1.5.1
Fetching: ruby-macho-1.1.0.gem(100%)
Successfully installedruby-macho-1.1.0
Fetching: nap-1.1.0.gem (100%)
Successfully installed nap-1.1.0
Fetching: molinillo-0.5.7.gem(100%)
Successfully installedmolinillo-0.5.7
Fetching: fourflusher-2.0.1.gem(100%)
Successfully installedfourflusher-2.0.1
Fetching: escape-0.0.4.gem (100%)
Successfully installed escape-0.0.4
Fetching: cocoapods-try-1.1.0.gem(100%)
Successfully installedcocoapods-try-1.1.0
Fetching: netrc-0.7.8.gem (100%)
Successfully installed netrc-0.7.8
Fetching: cocoapods-trunk-1.2.0.gem(100%)
Successfully installedcocoapods-trunk-1.2.0
Fetching: cocoapods-stats-1.0.0.gem(100%)
Successfully installedcocoapods-stats-1.0.0
Fetching:cocoapods-search-1.0.0.gem (100%)
Successfully installedcocoapods-search-1.0.0
Fetching:cocoapods-plugins-1.0.0.gem (100%)
Successfully installedcocoapods-plugins-1.0.0
Fetching:cocoapods-downloader-1.1.3.gem (100%)
Successfully installedcocoapods-downloader-1.1.3
Fetching:cocoapods-deintegrate-1.0.1.gem (100%)
Successfully installedcocoapods-deintegrate-1.0.1
Fetching: fuzzy_match-2.0.4.gem(100%)
Successfully installedfuzzy_match-2.0.4
Fetching: thread_safe-0.3.6.gem(100%)
Successfully installedthread_safe-0.3.6
Fetching: tzinfo-1.2.3.gem (100%)
Successfully installed tzinfo-1.2.3
Fetching: minitest-5.10.3.gem(100%)
Successfully installedminitest-5.10.3
Fetching: activesupport-4.2.9.gem(100%)
Successfully installedactivesupport-4.2.9
Fetching: cocoapods-core-1.3.1.gem(100%)
Successfully installedcocoapods-core-1.3.1
Fetching: cocoapods-1.3.1.gem(100%)
Successfully installedcocoapods-1.3.1
Parsing documentation forxcodeproj-1.5.1
Installing ri documentation forxcodeproj-1.5.1
Parsing documentation forruby-macho-1.1.0
Installing ri documentation forruby-macho-1.1.0
Parsing documentation for nap-1.1.0
Installing ri documentation fornap-1.1.0
Parsing documentation formolinillo-0.5.7
Installing ri documentation formolinillo-0.5.7
Parsing documentation forfourflusher-2.0.1
Installing ri documentation forfourflusher-2.0.1
Parsing documentation forescape-0.0.4
Installing ri documentation forescape-0.0.4
Parsing documentation forcocoapods-try-1.1.0
Installing ri documentation forcocoapods-try-1.1.0
Parsing documentation fornetrc-0.7.8
Installing ri documentation fornetrc-0.7.8
Parsing documentation forcocoapods-trunk-1.2.0
Installing ri documentation forcocoapods-trunk-1.2.0
Parsing documentation forcocoapods-stats-1.0.0
Installing ri documentation forcocoapods-stats-1.0.0
Parsing documentation forcocoapods-search-1.0.0
Installing ri documentation forcocoapods-search-1.0.0
Parsing documentation forcocoapods-plugins-1.0.0
Installing ri documentation forcocoapods-plugins-1.0.0
Parsing documentation forcocoapods-downloader-1.1.3
Installing ri documentation forcocoapods-downloader-1.1.3
Parsing documentation forcocoapods-deintegrate-1.0.1
Installing ri documentation forcocoapods-deintegrate-1.0.1
Parsing documentation forfuzzy_match-2.0.4
Installing ri documentation forfuzzy_match-2.0.4
Parsing documentation forthread_safe-0.3.6
Installing ri documentation forthread_safe-0.3.6
Parsing documentation fortzinfo-1.2.3
Installing ri documentation fortzinfo-1.2.3
Parsing documentation forminitest-5.10.3
Installing ri documentation forminitest-5.10.3
Parsing documentation foractivesupport-4.2.9
unable to convert "\x84"from ASCII-8BIT to UTF-8 for lib/active_support/values/unicode_tables.dat,skipping
Installing ri documentation foractivesupport-4.2.9
Parsing documentation forcocoapods-core-1.3.1
Installing ri documentation forcocoapods-core-1.3.1
Parsing documentation forcocoapods-1.3.1
Installing ri documentation forcocoapods-1.3.1
21 gems installed
至此安装结束
附上pod 的命令
Usage:
$ pod COMMAND
CocoaPods, theCocoa library package manager.
Commands:
+ cache Manipulate the CocoaPods cache
+ deintegrate Deintegrate CocoaPods from yourproject
+ env Display pod environment
+ init Generate a Podfile for thecurrent directory
+ install Install project dependencies accordingto versions from a
Podfile.lock
+ ipc Inter-processcommunication
+ lib Develop pods
+ list List pods
+ outdated Show outdated project dependencies
+ plugins Show available CocoaPods plugins
+ repo Manage spec-repositories
+ search Search for pods
+ setup Setup the CocoaPods environment
+ spec Manage pod specs
+ trunk Interact with the CocoaPods API(e.g. publishing new specs)
+ try Try a Pod!
+ update Update outdated projectdependencies and create new Podfile.lock
Options:
--silent Show nothing
--version Show the version of the tool
--verbose Show more debugging information
--no-ansi Show output without ANSI codes
--help Show help banner ofspecified command
参看:
1. http://blog.csdn.net/prl18353364833/article/details/53905487
2. http://blog.csdn.net/NSNirvana/article/details/46873071
3. http://code4app.com/article/cocoapods-install-usage#install
关于ruby中国国内镜像的补充 https://ruby.taobao.org/
这里在加上Ruby 和Gem
ruby是一种脚本语言,gem是使用gem编写的开发工具包,用于安装软件。不同的gem依赖不同ruby版本。