El Capitan 更新 rails

El Capitan Update rails

刚刚将我的系统更新为 El Capitan,并在启动 rails 服务器(在 Yosemite 上运行良好)时收到以下警告。

Ignoring bcrypt-3.1.10 because its extensions are not built.  Try: gem pristine bcrypt --version 3.1.10
Ignoring bcrypt-ruby-3.1.2 because its extensions are not built.  Try: gem pristine bcrypt-ruby --version 3.1.2
Ignoring bcrypt-ruby-3.0.1 because its extensions are not built.  Try: gem pristine bcrypt-ruby --version 3.0.1
Ignoring binding_of_caller-0.7.2 because its extensions are not built.  Try: gem pristine binding_of_caller --version 0.7.2
Warning: Running `gem pristine --all` to regenerate your installed gemspecs (and deleting then reinstalling your bundle if you use bundle --path) will improve the startup performance of Spring.

当 运行 引用我得到的命令时:

-bash: bundle: command not found
rails update
Ignoring json-1.8.1 because its extensions are not built.  Try: gem pristine json --version 1.8.1
Ignoring json-1.8.2 because its extensions are not built.  Try: gem pristine json --version 1.8.2
Ignoring json-1.8.3 because its extensions are not built.  Try: gem pristine json --version 1.8.3
Ignoring nokogiri-1.6.6.2 because its extensions are not built.  Try: gem pristine nokogiri --version 1.6.6.2
Ignoring atomic-1.1.14 because its extensions are not built.  Try: gem pristine atomic --version 1.1.14
Ignoring atomic-1.1.14 because its extensions are not built.  Try: gem pristine atomic --version 1.1.14
Ignoring bcrypt-ruby-3.0.1 because its extensions are not built.  Try: gem pristine bcrypt-ruby --version 3.0.1
Ignoring binding_of_caller-0.7.2 because its extensions are not built.  Try: gem pristine binding_of_caller --version 0.7.2
Warning: Running `gem pristine --all` to regenerate your installed gemspecs (and deleting then reinstalling your bundle if you use bundle --path) will improve the startup performance of Spring.
Could not find bcrypt-3.1.10 in any of the sources
Run `bundle install` to install missing gems.

也试过运行宁:

sudo gem pristine --all
Restoring gems to pristine condition...
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0/gems/CFPropertyList-2.2.8/README

所以现在,它甚至找不到包安装路径。看来更新真的搞砸了。


当我 运行 gem pristine --all 我得到以下信息:

Restored bcrypt-ruby-3.1.5
Skipped bigdecimal-1.2.0, it is a default gem
Building native extensions.  This could take a while...
Restored binding_of_caller-0.7.2
Restored bootstrap-sass-3.3.5.1
Restored builder-3.2.2
Restored builder-3.1.4
Restored bundler-1.10.6
Restored bundler-1.9.6
Building native extensions.  This could take a while...
ERROR:  While executing gem ... (Gem::Ext::BuildError)
    ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby -r     ./siteconf20151001-3494-1jca623.rb extconf.rb
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
make: *** No rule to make target `/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0/universal-darwin15/ruby/config.h', needed by `breakpoint.o'.  Stop.

make failed, exit code 2

Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/byebug-6.0.2 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-15/2.0.0/byebug-6.0.2/gem_make.out

您应该尝试 RVM 或 RBENV 或本周的任何口味。这将允许您在每个项目的基础上轻松管理您的 Ruby 口译员和 Gemsets。我仍然使用 RVM,我对它很满意。

https://rvm.io/rvm/install

解决方法如下link.

硬件

升级到 El Capitan,使用 Homebrew 和 Ruby

...和Xcode和Java等

如果您还没有安装 homebrew,请先安装,这样您就不必处理 SIP 问题。安装 Apple 菜单中可用的所有软件更新,包括 El Capitan。

安装并强制重启后,我的 27" Thunderbolt 显示器不显示任何内容。拔下插头,重新插入也无济于事。再重启一次即可修复。

软件

顺序...

Xcode

El Capitan 安装破坏了我的 Xcode 安装,因此我不得不在 App Store 中搜索并重新安装。我现在相信我刚才删除了 Xcode 然后忘记了,因此重新安装。我是在我很少用的机器上做的。

Xcode 安装完成后,打开 iTerm,我将其用作 Terminal.app 替代品,或者 Terminal.app 如果您愿意的话。

∴ xcode-select --install
xcode-select: note: install requested for command line developer tools

打开一个对话框,我选择了"Install",大约一分钟就完成了。

Java

接下来,运行 java,它会提示一个对话框,其中有一个按钮 "More Info",它会将您带到一个网站,您可以在该网站上接受许可并下载 Java.dmg 文件。如果您打算 运行 java 基于命令行的工具,您需要 JDK,而不是 JRE。

Unable to find any JVMs matching version "1.7".
No Java runtime present, try --request to install.

∴ java

No Java runtime present, requesting install.

下载后,打开.dmg(对我来说是jdk-8u60-macosx-x64.dmg)并安装,然后重启iTerm。

∴ java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

像 Ruby我的这样的应用现在应该可以运行了,好吧,至少可以启动。

自制软件

医生告诉我几个警告,我按照指示处理了。

∴ brew doctor
∴ sudo chown -R $(whoami):admin /usr/local
∴ cd /usr/local/Library && git stash && git clean -d -f
∴ cd ~
∴ brew prune
∴ brew unlink qt5

然后我可以更新 Homebrew。

∴ brew update

qt5

我知道 capybara-webkit gem 需要 qt5,而且我知道 qt 是自制软件/El Capitan 问题跟踪器中剩下的主要痛点之一,所以我决定把它去掉首先.

∴ brew uninstall qt5
∴ brew install qt5
∴ brew linkapps qt5
∴ brew link --force qt5

最后一行是使 qmake 可用所必需的。检查哪个qmake。否则,稍后您将在 Capybara 安装中遇到此问题:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

/Users/pboling/.rvm/rubies/ruby-2.1.2/bin/ruby -r ./siteconf20150930-48087-1vw6bye.rb extconf.rb
sh: qmake: command not found
*** extconf.rb failed ***

GPG

一些软件现在使用 GPG 签名,例如 RVM,所以请安装它。

∴ brew install gpg

RVM

我的 Ruby 可以正常工作,但是我在一些本地 gem 安装上遇到了问题,所以我决定重新开始 Ruby 针对所有新的自制软件和 Xcode 图书馆。

∴ rvm implode

Iplode 实际上由于权限问题未能删除主 ~/.rvm 目录。我不得不 sudo 删除它。

∴ sudo rm -rf /Users/pboling/.rvm

按照这里的说明安装 RVM,我安装了开发版,希望它能有更多的 El Capitan 修复:

∴ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
∴ \curl -sSL https://get.rvm.io | bash

我目前使用的主要应用程序使用 Ruby 2.1.2,因此我先安装它,然后转到项目目录以创建 gem 集并进行捆绑。

∴ rvm install 2.1.2
∴ cd ~/project
∴ gem install bundler -v 1.9.7
∴ bundle install

Bundler 版本 1.9.7 因为这是 Heroku 的版本,我想保持同步,因为 1.10* 改变了一些东西使得 Gemfile.lock 与部署的服务器上的 1.9.7 不兼容(对我来说,具有多个 gem 来源、私人 gem 服务器等)。

Postgres

我也趁机升级到最新的Postgres.app。或者,您可以使用 brew install postgres 安装 postgres。我选择 Postgres.app 因为 Heroku 直接支持它,而且我喜欢认为那里有一个平价胜利。