Rubyでディスクの空き容量を取得
を行おうと思ったが、実行すると下記のようなエラーが出た。
$ ./test.rb
/var/lib/gems/1.8/gems/sys-filesystem-1.1.4/lib/unix/sys/filesystem.rb:1: undefined method `require_relative' for main:Object (NoMethodError)
from /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
from /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `require'
from /var/lib/gems/1.8/gems/sys-filesystem-1.1.4/lib/sys/filesystem.rb:4
from /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:59:in `gem_original_require'
from /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:59:in `require'
from ./test.rb:4
require-relative で検索すると下記のサイトを発見。
GitLabを5.0にアップデートしたらpush時にエラーが出るようになった件
なるほど。rubyのバージョンが古いのか。一応念のため、確認すると
$ ruby -v
ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
古いので削除し、ruby1.9.1をインストール。
$ sudo apt-get remove ruby1.8
$ sudo apt-get install ruby1.9.1
これで問題無いと思ったが、実行すると今度は下記のエラーが出た。
$ ./test.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- sys/filesystem (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from ./test.rb:4:in `<main>'
あー…またrubygemsでインストールしなきゃいけないのかと思い、rubygemsでインストールを実行。しかし、
$ sudo gem install sys-filesystem
Building native extensions. This could take a while...
ERROR: Error installing sys-filesystem:
ERROR: Failed to build gem native extension.
/usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from extconf.rb:4:in `<main>'
Gem files will remain installed in /var/lib/gems/1.9.1/gems/ffi-1.9.8 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/ffi-1.9.8/ext/ffi_c/gem_make.out
今度はなんだと思い、調べ、
`require': no such file to load — mkmf (LoadError)
を読み、
$ sudo apt-get install ruby1.9.1-dev
を実行。
$ ./test.rb
230.3896827697754GB中、94.02987289428711GB使用可能
約230.389GB中、94.029GB使用可能
これで無事実行できた。
PS:
後で気づいたけど、ruby1.9.3出てるのね。
ruby1.9.3にしても良かったかも