cpan installでuntarって出て困る

cpanで入れたモジュール、入れた時は元気だったのに、いざスクリプトをwwwのcronで叩いたら動かないじゃない。
使いたかったモジュール、こんなところにいたの。

# perldoc -l IPC/Run3
/root/perl5/lib/perl5/IPC/Run3.pm

rootでcpan installすると/root/perl5/lib/perl5/以下にmoduleが入ってしまうんだって
wwwユーザーで実行したかったら/usr/local/share/perl5/に入れないとアクセスできないよね。

まずはrootで入れたmoduleを削除しようかなと思ったらcpanはuninstallコマンドが存在しないのね。
こちらを参考にするわよ
CPANモジュールのアンインストール(改良版) – ヒルズで働く@robarioの技ログ

alias cpan-uninstall='\perl -MExtUtils::Install -MExtUtils::Installed -e "unshift@ARGV,new ExtUtils::Installed;sub a{\@ARGV};uninstall((eval{a->[0]->packlist(a->[1])}||do{require CPAN;a->[0]->packlist(CPAN::Shell->expandany(a->[1])->distribution->base_id=~m/(.*)-[^-]+$/)})->packlist_file,1,a->[2])"'

こうして完成したcpan-uninstallでIPC::Run3を削除。

$ perldoc -l IPC/Run3
No documentation found for "IPC/Run3".

いなくなった

sudoのできるユーザーに戻って気を取り直してcpan installのやり直しよ。

$ sudo perl -MCPAN -e shell

cpan[1]> install IPC::Run3
Reading '/root/.cpan/Metadata'
(中略)
Uncompressed /root/.cpan/sources/authors/id/R/RJ/RJBS/IPC-Run3-0.048.tar.gz successfully
Using Tar:/bin/tar xf "IPC-Run3-0.048.tar":
Couldn't untar IPC-Run3-0.048.tar
Package seems to come without Makefile.PL.
  (The test -f "/root/.cpan/build/RJBS-TJhW8C/Makefile.PL" returned false.)
  Writing one on our own (setting NAME to IPCRun3)
  Had problems unarchiving. Please build manually
Running make test
  Make had some problems, won't test
Running make install
  Make had some problems, won't install
Failed during this command:
 RJBS/IPC-Run3-0.048.tar.gz                   : unwrapped NO -- untar failed

Couldn’t untar IPC-Run3-0.048.tarといわれたのでwhere tarしてtarの場所を取得。
その場所をcpanのconfigに反映する。

cpan[1]> o conf tar '/bin/tar'
    tar                [/bin/tar]
Please use 'o conf commit' to make the config permanent!

cpan[2]> o conf commit

しかし結果は変わらず

ググってみると以下の通り

What solved it for me was simply rebooting the system.

CPAN Perl modules installer not finding tar file – Stack Overflow

また

えっ、インスタンス再起動したらuntarできるようになった・・

kentaro yanagidaさんのツイート: “えっ、インスタンス再起動したらuntarできるようになった・・”

OK, Let’s reboot.

結論

再起動は正義


Profile picture

ぴーやま
プログラミングを嗜んでします。中華料理で出てくるたまごふわふわのコーンスープが好きです。