WWDCで入手したディスクを使用してSnow Leopardにアップグレードしました。
いくつかの私のRailsアプリがSQLについて文句を言うようになりました
(in /Users/coneybeare/Projects/Ambiance/ambiance-server)
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
Importing all sounds in /Users/coneybeare/Projects/Ambiance/ambiance-sounds/Import 32/Compressed/
-- AdirondackPeepers.caf
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
dlopen(/opt/local/lib/Ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle, 9): Library not loaded: /usr/local/mysql/lib/libmysqlclient.16.dylib
Referenced from: /opt/local/lib/Ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle
Reason: image not found - /opt/local/lib/Ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle
(See full trace by running task with --trace)
以前にこれを一度修正したと誓ったかもしれません。問題はそれです
Sudo gem install mysql
動作せず、エラーが発生します:
Building native extensions. This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
/opt/local/bin/Ruby extconf.rb install mysql
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
Gem files will remain installed in /opt/local/lib/Ruby/gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /opt/local/lib/Ruby/gems/1.8/gems/mysql-2.7/gem_make.out
誰もがmysqlをSnow LeopardでRailsで動作するようになったことがありますか?
私はちょうど同じ痛みを経験しました...ここに私のために働いたものがあります:
Sudo gem update --system Sudo env ARCHFLAGS = "-Arch x86_64" gem install mysql---with-mysql-config =/usr /local/mysql/bin/mysql_config
また、私の10.5日から浮かんでいたすべてのmysql gemをアンインストールしました。上記がうまくいかない場合は、それを行うことができます:)
Mysqlを64ビットとして再構築するか、64ビットバージョンをインストールすることが重要ですが、mysql gemのネイティブ部分も必ず64ビットとしてビルドする必要があります(元のIntel Core Duo Macのいずれかを使用している場合は適用されません) )。
魔法のコマンドは次のとおりです。
env ARCHFLAGS="-Arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Snow Leopardでネイティブコンポーネントを使用してgemをインストールする場合は、上記のようにARCHFLAGSを設定する必要があります。
Bundlerを使用している場合、「bundle config」を使用してmysqlの適切なビルド引数を次のように設定できます。
bundle config build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config
私はこれと長い間戦い、ついにSnow Leopardで動作するようになりました。最終的に、Ruby、RubyGems、およびMySQLをソースからインストールしました(RubyおよびRubyGemsをインストールするための Hivelogicチュートリアル を参照してください。MySQLチュートリアルは下部にリンクされています)。最終的にgemをインストールしましたが、私はまだ取得していました
dyld: lazy symbol binding failed: Symbol not found: _mysql_init
Referenced from: /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
Expected in: flat namespace
dyld: Symbol not found: _mysql_init
Referenced from: /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
Expected in: flat namespace
Trace/BPT trap
最後にmysql.bundle
を削除し(これが何のためかわからない)、すべてうまくいきました。
Sudo rm -f /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
それが誰かを助けることを願っています。
この問題は何度も見ました。 almostマシンでmysqlをビルドするたびに。 gem installコマンドの一部としてmysqlconfigを渡す必要があると思います。
Sudo gem install mysql -- --with-mysql-config=/your/mysql/config
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--Ruby=/usr/bin/Ruby
--with-mysql-config
このgemをビルドするには、mysql devファイルが必要であることを忘れないでください。
Snow Leopardをインストールした後、設定を機能させるのに問題がありました。 MAMPは http://www.mamp.info にあり、Apache、PHP、MySQL。バンドルされています。アプリケーションのようにインストールすれば動作します。試してみる価値があり、無料です。
メッシュ
Railsから数年間休憩していたので、開発環境のセットアップに少し時間を費やしました。したがって、Rails 3、MySQL、およびSnowLeopard上のRVM。
2011年8月21日の時点で、Rails 3.0.10、MySQL 5.5.15、およびRVM 1.7.2を使用して動作します。将来のRails 3.0 .x、MySQL 5.5.x、およびRVM 1.7.xバージョン。
まだインストールされていない場合は、XCodeをインストールします。 4.0.2を使用しました。残念ながら、これは現在Appleによって取り下げられていますが、インターネット上の他の場所で利用できる場合があります。バージョン3.2.xはAppleから無料でダウンロードできますが、このチュートリアルではテストしませんでした。おそらく動作します。
インストール rvm :
user$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
user$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
user$ source .bash_profile
Ruby(例:1.9.2))のバージョンをrvmにインストールします 基本的な使用手順はこちら 。
user$ rvm install 1.9.2
user$ rvm use 1.9.2
gemsetの作成 rvmの場合Rubyステップ2でインストールされます(xはバージョン番号です)。
user$ rvm gemset create Rails30x
user$ rvm 1.9.2@Rails30x
インストールRails 3.0.x(xはバージョン番号)。
user$ gem install Rails -v 3.0.x.
MySQL 5.5.xパッケージ、スタートアップ項目、および設定ペインをダウンロードしてインストールします 。これら3つはすべてDMGインストールファイルに含まれています。 MySQL WorkBenchもインストールします。
/ usr/local/mysql-version-name/support-filesを検索し(正しいMySQLディレクトリ名を挿入)、myroot.serverを編集します(ルート権限を使用)。 46行目付近にある行を見つけます。
basedir=
datadir=
読み取りに変更します(正しいMySQLディレクトリ名を挿入します):
basedir=/usr/local/mysql-version-name
datadir=/usr/local/mysql-version-name/data
ファイルを保存します。これで、MySQLは設定ペインから起動できます。
Rails 3でmysqlを使用できるようにするには、mysql2 gemをインストールします(次のステップを参照)。最初に、DYLD_LIBRARY_PATH
MySQLライブラリディレクトリを含めます。これを行うには、ホームフォルダーで〜/ .bash_profileを編集し、次を含めます(正しいMySQLディレクトリー名を挿入します)。
export DYLD_LIBRARY_PATH=/usr/local/mysql-version-name/lib:$DYLD_LIBRARY_PATH
DYLD_LIBRARY_PATHにディレクトリを含めないと、ライブラリが見つからないというメッセージが表示され、サーバーが異常終了します。
mysql2
gem。 (2011年5月現在、バージョン0.2.7はRails 3.0.x)を含む最新の作業バージョンです。
user$ gem install mysql2 -v 0.2.7
Railsアプリと、それに対応するデータベース(appname_development)を作成します。
user$ Rails new appname
これをアプリのGemfileに追加します:gem 'mysql2', "0.2.7"
これをアプリのdatabase.ymlに追加します。
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: appname_development
pool: 5
username: username
password: pwd
Host: localhost
アプリを起動し、「アプリケーションの環境について」を確認します。すべてが正しく機能するはずです。
ARCHFLAGSを設定して--mysql-config = ...を渡す手順では、Snow Leopardでこれを解決するのに十分ではないようでした。それに加えて、私は以下を追加しました:
DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH"
私のバッシュプロファイルに、これは私のためにそれを解決しました。
私はこれと同じ問題を抱えていましたが、これが私にとってうまくいったことです。
Snow Leopardと64ビットMySQL DMGをインストールします。
/etc/my.cnfを作成して、以前のMySQLデータディレクトリ( here で説明)を指すようにし、実行しますSudo mysql_upgrade
。
IRBを開き、(blog.costan.us/2009/07/rebuild-your-Ruby-gems-if-you-update-to.html経由で)を使用してすべてのgemを再インストールします。
`宝石リスト` .each_line {| line |システム 'Sudo gem install#{line.split.first}'}
インストールしたMySQL gemをアンインストールしました。
Sudo env ARCHFLAGS="-Arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
これで、これまでのところすべてが機能しているようです。 *ノックウッド*
私はこの投稿で説明されているように進みました( http://www.schmidp.com/2009/06/14/rubyrails-and-mysql-on-snow-leopard-10a380/ )、そして今すべて正常に動作します。
Mysqlドライバーをインストールするコマンドのタイプミスに注意してください。
ここで自分の質問に答えると思いました。問題はmysqlではなく、mysql Rubyバインディングにあります。Querius(my mysql gui)を接続すると接続できたため、これを見つけました。
バインディングを修正するソースからビルドする方法は次のとおりです。
cd /tmp
wget http://www.tmtm.org/en/Ruby/mysql/Ruby-mysql-0.2.6.tar.gz
tar xvfz Ruby-mysql-0.2.6.tar.gz
cd Ruby-mysql-0.2.6
./configure
make
Sudo make install
Snow Leopardのソースからビルドしなければならないライブラリがたくさんあり、それらはポップアップし続けます。 MacPortsはすべてのライブラリに対して十分に更新されていないようですので、私は自分でそれをするつもりです。次:freetype( http://download.savannah.gnu.org/releases-noredirect/freetype/ )
私はこのように解決しました:
イアン・セルビー、たくさんありがとう。でも、Sudo env ARCHFLAGS="-Arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
の前からSudo
を削除しなければならなかった
Gemsetにインストールしていて、rvmを使用していますが、これはSudoキーワードを使用しないように求めていると思います。どうもありがとう。
MySQLを手動でインストールする代わりに、home brew を希望する場合。
既存のmysql gem(存在する場合)をアンインストールします。
Sudo gem uninstall mysql
「mysql_config」ファイルを見つけます。
find /usr -name 'mysql_config'
Mysql gemを再インストールします。
Sudo env ARCHFLAGS="-Arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/bin/mysql_config
注:replace /usr/local/bin/
と対応するmysql_config
パスはステップ2で見つかりました。また、私の ブログ にもあります。
わずかなバリエーションで何度もarchflagsトリックを試しましたが、うまくいきませんでした。
最終的にdidの作業は、RubyおよびSnow Leopardでインストールされたgemのバージョンに切り替えました。
私は、このバージョンを除くすべての点で機能する独自のバージョンを構築してインストールしました。他のすべてが正常に機能するように見えるので、mysqlプラグインにいくつかのファンキーな仮定があると推測することはできません。とにかく、/ usr/binを切り替えてパスを最初にしただけです。簡単に切り替えられるように、Rubyを/usr/local/Ruby-1.8.7と/usr/local/Ruby-1.9.1にインストールしました。 archflagsソリューションは多くの人に有効であるようですが、すべてではありません。
この記事は私のために問題を解決しました:)
http://techliberty.blogspot.com/2009/12/dealing-with-rake-aborted-uninitialized.html
ヒョウの前に
Sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql
PPCマシン上のLeopard:
Sudo env ARCHFLAGS="-Arch ppc" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
IntelマシンのLeopard:
Sudo env ARCHFLAGS="-Arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Snow Leopard(Intelのみ):
Sudo env ARCHFLAGS="-Arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Gemインストーラーの構成スクリプトが見つけられないように、mysql_configプログラムの名前を$ MYSQL_HOME/binから別の名前に変更しました。 libsオプションを使用していましたが、gemインストーラーは常にmysqlインストールのコンパイル設定を使用していました。これはファットバイナリです。ただし、デフォルトのRubyインストールはx86_64のみであるため、gemのコンパイルは失敗します。mysql_configプログラムの名前を変更した後、次のコマンドは問題なく動作し、gemをインストールしました。
Sudo env ARCHFLAGS="-Arch x86_64" gem install mysql -- --with-mysql-dir=/usr/local/mysql
RVMでmysql gemをインストールする場合、次のコードを使用してインストールする必要があります
Sudo env ARCHFLAGS="-Arch x86_64" gem install mysql
この方法はLeopard Serverで機能しましたが、上記のいずれも機能しませんでした