【问题标题】:Secret generation in redmine installation fails with error in mysql2/mysql2redmine 安装中的秘密生成失败,并在 mysql2/mysql2 中出现错误
【发布时间】:2013-10-05 18:36:03
【问题描述】:

我正在尝试在我的 Debian vServer 上安装 redmine 2.3.x。我已经设法从源代码构建 ruby​​ 并安装了 gems、rails 和 apache 乘客模块。它应该工作到那个时候。我在 domainfactory 使用了教程:http://www.df.eu/de/service/df-faq/cloudserver/anleitungen/ruby-on-rails-installieren-debian-ubuntu/

之后,我下载并提取了 redmine 应用程序,如下所述:http://www.redmine.org/projects/redmine/wiki/RedmineInstall#Installation-procedure。我创建了一个 mysql 帐户和数据库,复制了 config/database.yml.example -> config/database.yml 并填写了正确的值。

之后我安装了捆绑器

gem install bundler

确实继续准备环境:

bundle install --without development test

所有这些命令都成功了。

之后我想用下面的命令生成秘密令牌:

rake generate_secret_token

执行被闲置消息中断:

 # rake generate_secret_token --trace
rake aborted!
cannot load such file -- mysql2/mysql2
/usr/local/lib/ruby/gems/2.0.0/gems/mysql2-0.3.13/lib/mysql2.rb:8:in `require'
/usr/local/lib/ruby/gems/2.0.0/gems/mysql2-0.3.13/lib/mysql2.rb:8:in `<top (required)>'
/usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require'
/usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require'
/usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each'
/usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `block in require'
/usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each'
/usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require'
/usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler.rb:132:in `require'
/var/www/potato/config/application.rb:7:in `<top (required)>'
/usr/local/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require'
/usr/local/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require'
/var/www/potato/Rakefile:5:in `<top (required)>'
/usr/local/lib/ruby/gems/2.0.0/gems/rake-10.1.0/lib/rake/rake_module.rb:25:in `load'
/usr/local/lib/ruby/gems/2.0.0/gems/rake-10.1.0/lib/rake/rake_module.rb:25:in `load_rakefile'
/usr/local/lib/ruby/gems/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:637:in `raw_load_rakefile'
/usr/local/lib/ruby/gems/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:94:in `block in load_rakefile'
/usr/local/lib/ruby/gems/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:165:in `standard_exception_handling'
/usr/local/lib/ruby/gems/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:93:in `load_rakefile'
/usr/local/lib/ruby/gems/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:77:in `block in run'
/usr/local/lib/ruby/gems/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:165:in `standard_exception_handling'
/usr/local/lib/ruby/gems/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:75:in `run'
/usr/local/lib/ruby/gems/2.0.0/gems/rake-10.1.0/bin/rake:33:in `<top (required)>'
/usr/local/bin/rake:23:in `load'
/usr/local/bin/rake:23:in `<main>'

我试图通过检查版本和安装的 gem 来解决这个问题。

Ruby:ruby 2.0.0p247(2013-06-27 修订版 41674)[x86_64-linux]
Rails:Rails 3.2.13
宝石:1.8.25
红米:2.3.3

我通过gem list --local 验证了 gem "mysql2" 已安装。

gem "mysql": mysql2 (0.3.13)

由于问题似乎依赖于此,我尝试重新安装软件包,但这没有帮助。

我在这里做错了什么?

提前致谢, 塞巴斯蒂安·布特纳

【问题讨论】:

    标签: ruby-on-rails redmine mysql2


    【解决方案1】:

    我发现如果您的系统中没有安装以下软件包(至少在 Debian 9 上),就会发生此错误。所以运行命令:

    apt-get install default-libmysqlclient-dev

    【讨论】:

    • 这个话题现在已经是你的一些老话题了,但我以同样的方式解决了它,所以这也为我修复了它。标记为解决方案。
    【解决方案2】:
    1. 试试bundle exec rake generate_secret_token

    2. (如果 #1 没有帮助)检查 mysql2 是否出现在 bundle list 的输出列表中(与 gem list 不同!)。小心 redmine install DB adapter according to 你在database.yml 中的设置(但我认为你安装正确)

    【讨论】:

    • 感谢您的回答。不幸的是,这两种解决方案都不起作用。 (1.) 生成与不使用 bundle exec 时执行的输出相同的输出,并且 (2.) 在 bundle list 中给了我一个 mysql (0.3.13) 条目。
    • 也许这会帮助RAILS_ENV=production bundle exec rake generate_secret_token。原因:您已从生产组设置 gem,但在默认环境中运行 rake 任务(如果未设置,则为开发)系统从开发组查找 gem
    • 并检查您的 database.yml 是否具有用于生产 DB 的 mysql2 适配器
    • 我已经尝试过你所说的,但它对我不起作用。使用相同的堆栈跟踪,错误仍然相同。我确实尝试了一个新的设置并最终处于相同的情况。我还检查了我的 config/database.yml ,它确实包含一个使用 mysql2 的生产环境部分。
    • 我再也没有什么好主意了。您可以尝试安装一个 ruby​​ 管理器(我建议 rvm)并完成它。
    【解决方案3】:

    请检查您是否安装了必要的 VC 运行时。请检查 VC 运行时 dll 版本,您的 mysql 供应商 dll 依赖。

    【讨论】:

    • 请检查问题的第一句。它是 Debian/Linux 安装。不是 msvc 环境。
    • 老年性痴呆
    猜你喜欢
    • 2018-02-12
    • 2011-05-06
    • 2018-12-02
    • 1970-01-01
    • 2018-02-11
    • 2014-11-07
    • 1970-01-01
    • 2011-12-03
    相关资源
    最近更新 更多