【问题标题】:Redmine installation: Mysql gem say undefined symbol: mysql_initredmine 安装:mysql gem 说未定义符号:mysql_init
【发布时间】:2012-11-14 10:25:25
【问题描述】:

我正在尝试在OVH 互惠服务器上安装 redmine,但我被 MySQL gem 问题阻止了。 OVH 服务器不允许外部网络连接。我已经手动下载并安装了所有具有 Redmine 所需依赖项的 gem。

我已经安装了 MySQL gems,没有任何问题: - mysql 2.8.1 - mysql2 0.3.11

对于安装,我需要指定 mysql lib 并包含文件夹路径,因为它是相互化的安装和非标准布局:

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

有人知道我如何解决这个问题吗?

【问题讨论】:

    标签: mysql ruby gem installation redmine


    【解决方案1】:

    如果您使用的是ruby1.9,请使用mysql2 gem。
    如果您使用的是ruby1.8,请使用mysql gem。

    所以,如果您使用的是 1.9,请在您的 config/database.yml

    production:
      adapter: mysql2
    

    和:

    gem install mysql2
    

    如果您运行的是 Redmine >1.4,请使用 Bundler 而不是 gem install ...

    【讨论】:

    • 我正在使用 ruby 1.8.7 和 gem mysql 2.8.1。在我的 database.yml 中,适配器是 mysql。如果我安装了 mysql2 gem,即使我在 ruby​​
    • 我建议您删除这些 gem,然后重新安装正确的。如果错误仍然存​​在,请检查 dynlib 是否真的存在。否则,您可以使用 nm 命令检查 dynlib 中存在的符号。
    猜你喜欢
    • 1970-01-01
    • 2019-07-06
    • 2014-04-07
    • 2011-04-08
    • 2016-01-16
    • 2012-05-16
    • 1970-01-01
    • 2011-05-07
    • 2012-06-13
    相关资源
    最近更新 更多