60941


Thingspeakを<https://github.com/iobridge/thingspeak>からgit cloneしてbundle
installしました。  
このThingSpeakはバージョンが古いのでGitのIssuesに記載されていた方法を用いました  
(URL:<https://github.com/iobridge/thingspeak/issues/56>)

但し依存関係の問題でTzinfo-dataはGemfileからコメントアウトしました。  
その後rakeをapt-getでインストールし以下のコマンドを実行しました

[code]

    cd ~/thingspeak
    bundle install
    sudo rake db:create
    
[/code]

実行した結果、以下のようなエラーが出て上手くいきません

[code]

    rake aborted!
    NameError: uninitialized constant Bundler
    /home/pi/thingspeak/config/boot.rb:9:in `rescue in <top (required)>'
    /home/pi/thingspeak/config/boot.rb:5:in `<top (required)>'
    /home/pi/thingspeak/config/application.rb:1:in `<top (required)>'
    /home/pi/thingspeak/Rakefile:4:in `<top (required)>'
    
    Caused by:
    LoadError: cannot load such file -- bundler
    /home/pi/thingspeak/config/boot.rb:7:in `<top (required)>'
    /home/pi/thingspeak/config/application.rb:1:in `<top (required)>'
    /home/pi/thingspeak/Rakefile:4:in `<top (required)>'
    (See full trace by running task with --trace)
    
[/code]

[code]

    bundle exec rake db:create
    
[/code]

も試したのですが、

[code]

    rake aborted!
    NameError: uninitialized constant Mysql2::Client::LONG_PASSWORD
    /home/pi/.rvm/gems/ruby-2.1.0@thingspeak/gems/mysql2-0.3.10/lib/mysql2/client.rb:12:in `<class:Client>'
    /home/pi/.rvm/gems/ruby-2.1.0@thingspeak/gems/mysql2-0.3.10/lib/mysql2/client.rb:2:in `<module:Mysql2>'
    /home/pi/.rvm/gems/ruby-2.1.0@thingspeak/gems/mysql2-0.3.10/lib/mysql2/client.rb:1:in `<top (required)>'
    /home/pi/.rvm/gems/ruby-2.1.0@thingspeak/gems/mysql2-0.3.10/lib/mysql2.rb:10:in `require'
    /home/pi/.rvm/gems/ruby-2.1.0@thingspeak/gems/mysql2-0.3.10/lib/mysql2.rb:10:in `<top (required)>'
    /home/pi/thingspeak/config/application.rb:5:in `<top (required)>'
    /home/pi/thingspeak/Rakefile:4:in `require'
    /home/pi/thingspeak/Rakefile:4:in `<top (required)>'
    /home/pi/.rvm/gems/ruby-2.1.0@thingspeak/gems/rake-12.3.3/exe/rake:27:in `<top (required)>'
    /home/pi/.rvm/gems/ruby-2.1.0@thingspeak/bin/ruby_executable_hooks:24:in `eval'
    /home/pi/.rvm/gems/ruby-2.1.0@thingspeak/bin/ruby_executable_hooks:24:in `<main>'
    (See full trace by running task with --trace)
    
[/code]

このようなエラーが表示されます

環境：  
OS:Raspbian Buster 10.2  
Ruby Version 2.1.0p0  
Gem Version 2.1.0  
RVM Version 1.29.9  
Bundle Version 1.17.3

Ruby,MySQL等について初心者で至らぬ質問ですがよろしくお願いします


CC BY-SA 4.0
2019-11-29T05:50:32.640
60940
2019-11-29T06:29:52.287
36699
question
ruby rake
rake db:createでエラーが発生する


元の`Gemfile.lock`では`mysql2`のバージョンが`0.3.16`になっていますが、エラーメッセージでは`0.3.10`が使われてるようです。`rake`のバージョンも`10.3.2`のはずが`12.3.3`が呼び出されていますし。

恐らくいろいろ試してる時に`bundle update`して`Gemfile.lock`を更新してしまったのではないかと思います。

> 但し依存関係の問題でTzinfo-dataはGemfileからコメントアウトしました。

と書かれていますが、具体的にどのような問題があったのでしょうか？

これくらい古いバージョンを使っていますと特定のGemだけバージョンを変えようとすると深みにハマってしまうことが多いのでどうにかして全部のバージョンを全く同じに整える方法を探したほうが早く解決できることが多いです。

それと`rvm`などのRubyの環境をホームディレクトリ以下に生成するものを使っている時は`rake`を`sudo`で呼び出すことは基本的にありません。むしろその事によって環境が破壊されることがありますので一度`rvm`から入れ直したほうがいいと思います。(私は`rvm`ではなく`rbenv`を使っているため、この点もし間違っていたらすいません。)


CC BY-SA 4.0
2019-11-29T06:29:52.287
60941
2019-11-29T06:29:52.287
3271
60940
answer