[ruby-list:50798] Re: [質問] gem require でエラーになる
From:
yamataka@...08.itscom.net
Date:
2019-06-26 00:56:11 UTC
List:
ruby-list #50798
補足説明です。
On Tue, 25 Jun 2019 18:48:48 +0900,
yamataka@u08.itscom.net wrote:
> require 'appium_lib'
>
> でエラーになってしまいます、
> 何が悪いのか解決できずにいます。
> ご教示いただけますでしょうか?
>
> yama@JPC00183513 ~/tmp> cat require_appium.rb
> require 'appium_lib'
>
> yama@JPC00183513 ~/tmp> ruby ./require_appium.rb
> Unable to load the EventMachine C extension; To use the pure-ruby reactor, require 'em/pure_ruby'
> Unable to load the EventMachine C extension; To use the pure-ruby reactor, require 'em/pure_ruby'
> C:/msys64/mingw64/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- 2.6/rubyeventmachine (LoadError)
> from C:/msys64/mingw64/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
> ...
> from ./require_appium.rb:1:in `<main>'
> C:/msys64/mingw64/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- appium_lib (LoadError)
> from C:/msys64/mingw64/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
> from ./require_appium.rb:1:in `<main>'
>
> のように
> cannot load such file -- appium_lib (LoadError) となってしまいます。
>
> ですが、
>
> yama@JPC00183513 ~/tmp> gem environment gempath
> C:/yama/.gem/ruby/2.6.0;C:/msys64/mingw64/lib/ruby/gems/2.6.0
>
> yama@JPC00183513 /c/m/m/l/r/g/2/gems> pwd
> /c/msys64/mingw64/lib/ruby/gems/2.6.0/gems
> yama@JPC00183513 /c/m/m/l/r/g/2/gems> ls -d appium*
> drwxr-xr-x 1 yama Domain Users 0 Jun 25 17:49 appium_lib-10.3.1/
> drwxr-xr-x 1 yama Domain Users 0 Jun 25 15:31 appium_lib_core-3.1.3/
>
> より、GEM_PATHS 中のディレクトリに appium_lib があります。
https://docs.ruby-lang.org/ja/latest/method/Kernel/m/require.html
中の
"... feature が相対パスのときは組み込み変数 $: に示されるパスを順番に探し..."
より、
$: に "C:/msys64/mingw64/lib/ruby/gems/2.6.0/gems/appium_lib-10.3.1/lib"
を追加し、
yama@JPC00183513 ~/tmp> cat require_appium.rb
$:.push("C:/msys64/mingw64/lib/ruby/gems/2.6.0/gems/appium_lib-10.3.1/lib")
require 'appium_lib'
実行すると、
> C:/msys64/mingw64/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- appium_lib (LoadError)
> from C:/msys64/mingw64/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
> from ./require_appium.rb:1:in `<main>'
appium_lib は、load でき、エラー表示が消えます。
推測するに、
> /c/msys64/mingw64/lib/ruby/gems/2.6.0/gems
以下の、gem が検索できないような状況になっている?
ような気がしています。
が、....
同じディレクトリ下の、jira-ruby gem
yama@JPC00183513 ~/tmp> cd /c/msys64/mingw64/lib/ruby/gems/2.6.0/gems/
yama@JPC00183513 /c/m/m/l/r/g/2/gems> ls -d jira-ruby-1.6.0
drwxr-xr-x 1 yama Domain Users 0 Jun 20 10:16 jira-ruby-1.6.0/
を、require した場合は、
yama@JPC00183513 ~/tmp> cat require_jira_ruby.rb
require 'jira-ruby'
yama@JPC00183513 ~/tmp> ruby require_jira_ruby.rb
yama@JPC00183513 ~/tmp>
正しく load できています。