OrangeGardenRoom

技術系のメモ

Can’t locate Net/Twitter/Role/API/RESTv1_1.pmのエラー

PerlでNet::Twitterを使う時に起こったエラー。

apt-get install libnet-twitter-perl

上記でNet::Twitterを読み込んでもエラーは出ないけど、以下のエラーが出る。

 Can’t locate Net/Twitter/Role/API/RESTv1_1.pm in @INC (@INC contains: /etc/perl……

API1.1を使わないとTwitter投稿はできないわけで、RESTv1_1を使えないと困るのでなんとかしないといけない。

 

色々検索すると、Crypt::SSLeayが必須っぽいので(SSL通信しないといけない)

apt-get install libcrypt-ssleay-perl

を実行してインストール。

 

その後、一旦、Net::Twitterを削除

apt-get remove libnet-twitter-perl

purgeはしないでおく。autoremoveもしないでおく。

 

Net::Twitter:Liteをインストール。(意味があるかどうかはしらない)

apt-get install libnet-twitter-lite-perl

Net::Twitterを再度インストール。

apt-get install libnet-twitter-lite-perl

 

ここまでやってみたけど、RTSTv1_1.pmはでてこない。

 

そんな中、上記のやる前にCPAN経由でインストールも試してたりしたんですが、全然できず。

でも、makeの時に/usr/share~のPerlディレクトリ内にあるDistribution.pmをコンパイルしようとして、そんなファイルとディレクトリはありませんというエラー。

そこ変だなあ、おかしいなあ、shareディレクトリ内には無いのに、って思いながら検索してたらなんか引っかかりました。

日本語だからなんか引っかかってる、という。

その通りに、env LANG=Cを頭につけてCPAN起動してみる。

env LANG=C perl -MCPAM -e shell

cpan[1]> install Net::Twitter

(中略)

MMIMS/Net-Twitter-4.01004.tar.gz   ./Build test — OK

(中略)

MMIMS/Net-Twitter-4.01004.tar.gz   ./Build install  — OK

cpan[2]>

 

おお……はいった……。

ただ、Crypt::SSLeay入れた後にはenv LANG=Cなしでやっては居なかったので、やっぱりこれだったかも。

Net::Twitterいれるときは、先にCrypt::SSLeayを入れよう。

インストールする時は、日本語環境の場合は、env LANG=Cを頭につけて実行しよう。

 

前のサーバで同じUbuntu12.04の環境で動いてたのに動かないはずがないとおもったのでがn

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です