質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

受付中

rubyスクリプト実行時に発生した”cannot load such file -- iconv (LoadError)”の解決方法について

teketeke
teketeke

総合スコア46

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

2回答

0リアクション

0クリップ

7165閲覧

投稿2015/11/16 08:20

お世話になっています。

CentOS 6.7 上で、以下のサイトにあるrubyスクリプト(aws_health_check.rb)を実行させ、
Zabbixで監視をさせてみたかったのですが、
feedtoolsをインストールしても、以下のエラーになり、スクリプトが実行できません。
このエラーの解決するにはどうしたらよいのでしょうか。

調べたところ、iconvはruby2.0から廃止されたらしかったので、
ruby1.9.3をインストールした環境を作りましたが、別のエラーで実行できませんでした。

http://d.hatena.ne.jp/ike-dai/20130119/1358566620

・手動実行時エラー内容(ruby2.0)
~~~

./aws_health_check.rb

The Iconv library does not appear to be installed properly. FeedTools cannot function properly without it.
Unexpected LoadError, it is likely that you don't have one of the libraries installed correctly.
/usr/local/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in require': cannot load such file -- iconv (LoadError) from /usr/local/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in require'
from /usr/local/lib/ruby/gems/2.2.0/gems/feedtools-0.2.29/lib/feed_tools.rb:104:in <top (required)>' from /usr/local/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:128:in require'
from /usr/local/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:128:in rescue in require' from /usr/local/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:39:in require'
from ./aws_health_check.rb:4:in `<main>'
~~~

・zabbix実行時エラー内容(ruby2.0)
~~~

sudo -u zabbix ./aws_health_check.rb

/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require': no such file to load -- feed_tools (LoadError) from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in require'
from ./aws_health_check.rb:4
~~~

・手動実行時エラー内容(ruby1.9.3)
~~~

./aws_health_check.rb

/usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require': iconv will be deprecated in the future, use String#encode instead. /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require': /usr/local/lib/ruby/gems/1.9.1/gems/feedtools-0.2.29/lib/feed_tools/helpers/uri_helper.rb:43: invalid multibyte char (US-ASCII) (SyntaxError)
/usr/local/lib/ruby/gems/1.9.1/gems/feedtools-0.2.29/lib/feed_tools/helpers/uri_helper.rb:43: invalid multibyte char (US-ASCII)
/usr/local/lib/ruby/gems/1.9.1/gems/feedtools-0.2.29/lib/feed_tools/helpers/uri_helper.rb:43: syntax error, unexpected $end, expecting ')'
if IDN::Idna.toASCII('http://www.詹姆斯.com/') ==
^
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require' from /usr/local/lib/ruby/gems/1.9.1/gems/feedtools-0.2.29/lib/feed_tools/helpers/retrieval_helper.rb:25:in <top (required)>'
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require' from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require'
from /usr/local/lib/ruby/gems/1.9.1/gems/feedtools-0.2.29/lib/feed_tools/feed.rb:27:in <top (required)>' from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require'
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require' from /usr/local/lib/ruby/gems/1.9.1/gems/feedtools-0.2.29/lib/feed_tools.rb:170:in <top (required)>'
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in require' from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in rescue in require'
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
~~~

ruby2.0 の環境は以下の通りです。
※ruby1.9.3 の環境は今確認できてません。

cat /etc/redhat-release

CentOS release 6.7 (Final)

ruby -v

ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]

find / -name feed_tools

/usr/local/lib/ruby/gems/2.2.0/doc/feedtools-0.2.29/ri/lib/feed_tools
/usr/local/lib/ruby/gems/2.2.0/gems/feedtools-0.2.29/lib/feed_tools

gem -v

2.4.5.1

gem list

*** LOCAL GEMS ***
activemodel (4.2.4)
activerecord (4.2.4)
activesupport (4.2.4)
arel (6.0.3)
bigdecimal (1.2.6)
builder (3.2.2)
feedtools (0.2.29)
i18n (0.7.0)
io-console (0.4.3)
json (1.8.1)
minitest (5.4.3)
power_assert (0.2.2)
psych (2.0.8)
rake (10.4.2)
rdoc (4.2.0)
test-unit (3.0.8)
thread_safe (0.3.5)
tzinfo (1.2.2)
uuidtools (2.1.5)

※rubyとfeed_toolsのインストールを以下の手順で実施したのですが、手順がおかしかったのでしょうか。

・ruby確認

yum list installed | grep ruby

※表示なし

・必要パッケージのインストール

yum -y install gcc zlib-devel openssl-devel sqlite sqlite-devel mysql-devel readline-devel libffi-devel

・ソースコードのダウンロード

cd /usr/local/src

wget https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2. …

tar zxvf ruby-2.2.3.tar.gz

cd ruby-2.2.3

./configure

make

make install

・rubyバージョン確認

ruby -v

ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]

・シンボリックリンク作成

ln -s /usr/local/bin/ruby /usr/bin/ruby

・feedtoolsインストール

yum install rubygems

yum install ruby-devel

gem install feedtools

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。