2012-11-14 56 views
0

我試圖在OVH互相關服務器上安裝redmine,但我被MySQL gem問題阻塞。 OVH服務器不允許外部網絡連接。我已經手動下載並安裝了所有具有Redmine所需依賴項的gem。Redmine安裝:Mysql gem說未定義符號:mysql_init

我已經沒有任何問題的MySQL安裝寶石: - MySQL的2.8.1 - mysql2 0.3.11

因爲我需要指定mysql的lib和包含的文件夾路徑安裝,因爲它是一個mutualized安裝和非標準佈局:

gem install mysql-2.8.1.gem 
    --no-rdoc 
    --no-ri 
    -- 
    --with-mysql-config=/usr/bin/mysql_config 
    --without-mysql-dir 
    --with-mysql-lib=/usr/lib/mysql 
    --with-mysql-include=/usr/include/mysql 

gem install mysql2-0.3.11.gem 
    --no-rdoc 
    --no-ri 
    -- 
    --with-mysql-config=/usr/bin/mysql_config 
    --without-mysql-dir 
    --with-opt-lib=/usr/lib/mysql 
    --with-opt-include=/usr/include/mysql 

有了這些2級的命令,我沒有得到任何錯誤和消息1 gem insalled

之後,有趣的手動包安裝過程中,我已經按照Redmine installation tutorial初始化我的環境。

第一個命令,生成祕密令牌:rake generate_secret_token 第二個命令,建立數據庫模式:RAILS_ENV=production rake db:migrate

第一個作品完美,但第二個給我這個錯誤:

ruby: symbol lookup error: /MYHOMEFOLDER/gems/mysql-2.8.1/lib/mysql_api.so: undefined symbol: mysql_init 

有沒有人誰知道我如何解決這個問題?

回答

1

如果您使用的是ruby1.9,則使用mysql2寶石。
如果您使用的是ruby1.8,則使用mysql寶石。

因此,如果您使用的1.9,在config/database.yml

production: 
    adapter: mysql2 

和:

gem install mysql2 

如果您運行管理平臺> 1.4,使用代替gem install ...

+0

我使用'ruby 1.8.7'和gem'mysql 2.8.1'。 在我的database.yml中,適配器是'mysql'。 如果我安裝了mysql2 gem,即使我在ruby <1.9上,它是個問題嗎? – shulard

+0

我試圖卸載mysql2寶石,但結果是一樣的... – shulard

+0

我建議你刪除這些寶石,然後重新安裝正確的。如果錯誤持續存在,請檢查dynlib是否真的存在。否則,您可以使用'nm'命令來檢查dynlib中的符號。 – undx