我在安裝Windows 8.1機器時遇到了一些問題,需要安裝mysql2 gem。我跟着這個帖子的說明:在Windows上安裝MySQL2 Gem
安裝mysql2
寶石,和我沒有得到任何錯誤消息。
我跟着此與
bundle install
命令,確認以下的寶石被安裝(使用束上顯示),證實了我已經安裝了以下寶石:
Using devise (3.2.2)
Using mysql2 (0.3.14)
然後我試着做:
rails generate devise:install
這就是我得到的:
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2.rb:8:in `require': 126: The specified module could not be found.
- C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2/mysql2.so (LoadError)
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2.rb:8:in `<top (required)>'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:76:in `require'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:72:in `each'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:72:in `block in require'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:61:in `each'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:61:in `require'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler.rb:131:in `require'
from C:/Users/Joseph/googledrive/projects/rails/test_new_devise/config/application.rb:7:in `<top (required)>'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.2/lib/rails/commands.rb:43:in `require'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.2/lib/rails/commands.rb:43:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
任何想法?
解決方法:
答案是從計算器兩個答案,加修飾的組合。該計算器引用:
Ruby MYSQL2 gem installation on windows 7 ...mysql2/mysql2.so: [BUG] Segmentation fault ruby 2.0.0p247
底線:讓mysql2在64位環境中使用Ruby 2個工作在Windows 8.1中,你需要做到以下幾點:
清理:你在這裏的原因是你可能在嘗試 來安裝這個gem,但它失敗了,所以你有一些清理到 做:寶石卸載mysql2
下載紅寶石2.0 64位的Windows:
http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353-x64.exe?direct
運行安裝程序。請注意它安裝的目錄,並確保它位於用戶路徑中。去
Control Panel > System and Security > System - Advanced System Settings > Environment Variables
- 下載紅寶石2 64位的開發工具包:
運行安裝程序並記下安裝目錄的位置。說明指出,一旦完成安裝,您需要運行devkitvars.bat文件來設置環境變量。這不適用於Windows 8.1。您需要重複說明以設置上面#2中描述的本地路徑,爲本地用戶設置路徑環境變量以添加ruby開發工具箱bin目錄以及ruby dev工具包mingw bin目錄。例如,如果開發套件安裝到c:\ ruby2devkit,並安裝ruby2到C:\ Ruby200-x64的目錄,那麼你的編輯你的路徑語句看起來像這樣:
C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin
接下來你需要安裝mysql連接器。請勿下載並運行自行安裝程序。相反,請下載zip文件並將其解壓縮。注意:您解壓它(這個職位的目的,目錄,讓我們假設你把它解壓到c:\ mysql的連接器:
包含在MySQL連接64位的libmysql.lib不與mingw64-gcc編譯器兼容,你需要生成mingw64兼容libmysql.lib文件。
下載你孃家的工具d
https://structure-svm-map.googlecode.com/files/svm-map-win.zip
此文件解壓到本地目錄,讓我們假設您解壓縮它到c:\ SVM-地圖
編輯PATH環境路徑,如前所述,到現在看像這樣:
C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin;c:\svm-map;C:\svm-map\python-mingw-lib
生成新的MySQL庫:
(make sure you're running as administrator) cd c:\mysql-connector\lib gendef.exe libmysql.dll dlltool -v --dllname libmysql.dll --def libmysql.def --output-lib libmysql.lib copy libmysql.dll C:\Ruby200-x64\bin copy libmysql.lib C:\Ruby200-x64\bin
安裝如下寶石(注意使用正斜線而非反斜線,如果你用反斜槓它會失敗):
創業板安裝mysql2 --platform =紅寶石 - 「--with-mysql- DIR = 「C:/ MySQL的連接器/」」
做出紅寶石安裝目錄下的bin目錄確保路徑是在本地用戶的PATH環境變量(這也是確定的,如果它在系統PATH環境變量)
http://cdn.rubyinstaller.org/archives/devkits/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe
希望這會有所幫助,並希望有人會注意誰想要做的Ruby on Rails開發的一些Windows 8.1的用戶。
嘗試'創業板安裝mysql2' – house9
的mysql2寶石已經是不顯示的錯誤安裝。請閱讀我的問題。 – EastsideDeveloper
我使用64位Ruby 2.0運行64位Windows8.1。我可以確認這個解決方案有效。在#9之前,我必須再增加一組。我必須刪除Bundle已經安裝的mysql2 gem。當我嘗試其他人的解決方案時,Bundle未能安裝它們,但它仍然創建了gem目錄並安裝了一些文件。在步驟9之前刪除它們使其工作! –