6

システムを 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
4

2 に答える 2

5

解決策は次のリンクにあります。

ハードウェア

Homebrew と Ruby を使用して El Capitan にアップグレードする

...そしてXcodeとJavaなど。

homebrew をまだインストールしていない場合は、最初にインストールしてください。そうすれば、SIP の問題に対処する必要がなくなります。El Capitan まで、Apple メニューで利用可能なすべてのソフトウェア アップデートをインストールします。

インストールして強制的に再起動した後、27 インチの Thunderbolt ディスプレイに何も表示されませんでした。プラグを抜き、再プラグしても問題は解決しませんでした。もう一度再起動すると、問題が解決しました。

ソフトウェア

順番に...

Xcode

El Capitan のインストールによって Xcode のインストールが消去されたので、App Store で検索して再インストールする必要がありました。しばらく前に Xcode を削除して忘れていたので、再インストールしたと思います。めったに使用しないマシンでこれを行いました。

Xcode のインストールが完了したら、Terminal.app の代替として使用する iTerm を開きます。必要に応じて Terminal.app を開きます。

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

ダイアログが開くので「Install」を選択すると、1分ほどで完了しました。

ジャワ

次に、Java を実行します。ダイアログが表示され、「詳細情報」ボタンが表示され、ライセンスに同意して Java .dmg ファイルをダウンロードできる Web サイトに移動します。Java コマンドライン ベースのツールを実行する場合は、JRE ではなく JDK が必要です。

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)

RubyMine のようなアプリは今すぐ動作するはずです。まあ、少なくとも起動するだけです。

自作

医者は私にいくつかの警告を伝えましたが、私はその指示に従って対処しました。

∴ 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 の問題トラッカーに残っている主な問題点の 1 つであることもわかっているので、最初にそれを取り除くことにしました。

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

qmake を使用可能にするには、最後の行が必要です。どのqmakeで確認してください。そうしないと、後の Capybara のインストールで次のようになります。

Gem::Ext::BuildError: エラー: gem ネイティブ拡張のビルドに失敗しました。

/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

たとえば、RVM などの一部のソフトウェアは GPG で署名されているので、インストールします。

∴ brew install gpg

RVM

私の Ruby は機能していましたが、いくつかのネイティブ gem のインストールに問題があったため、すべての新しい自作および Xcode ライブラリに対してコンパイルされた Ruby から新たに始めることにしました。

∴ rvm implode

Implode は~/.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 を使用しているので、最初に Ruby 2.1.2 をインストールしてから、プロジェクト ディレクトリに移動して gemset を作成し、バンドルします。

∴ 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.app にアップグレードしました。または、brew install postgres で postgres をインストールすることもできます。私が Postgres.app を選んだ理由は、Heroku が直接サポートしているからです。

于 2015-10-02T17:59:05.630 に答える
2

RVM や RBENV など、その週のフレーバーを試してみてください。これにより、Ruby インタープリターと Gemsets をプロジェクトごとに簡単に管理できます。私はまだ RVM を使っていますが、とても満足しています。

https://rvm.io/rvm/install

于 2015-10-01T02:31:54.277 に答える