Symfoware

Symfowareについての考察blog

Net::SSH::PerlでNet::SSH: Can't bind socket to port 1023: アドレスは既に使用中です

苦労してNet::SSH::Perlをインストールしました。

Debian Perl Net::SSH::Perl cpanを使用せず手動でインストールする手順

簡単なサンプルを書いて動かしてみると、一回目は動いてくれるのですが、
なぜか二回目以降実行すると


Net::SSH: Can't bind socket to port 1023: アドレスは既に使用中です



というエラーが表示されてしまいます。


あんなに苦労してインストールしたのに使えないのかと
がっかりしていたら、救世主が。

PerlでSSHしたいときの注意点

なるほど。ライブラリを修正すればいけそう。



Net::SSH::Perlの本体は私の場合、
/usr/local/share/perl/5.10.0/Net/SSH/Perl.pm
ここにありました。

読み取り専用でしたので、書き込みの権限を追加し、編集します。


# chmod +w /usr/local/share/perl/5.10.0/Net/SSH/Perl.pm
# vi /usr/local/share/perl/5.10.0/Net/SSH/Perl.pm




236行目付近に

if ($! =~ /Address already in use/i) {



という記載があると思います。
コメントして、書き換えてしまいます。


#if ($! =~ /Address already in use/i) {
if ($! =~ /(Address|The socket name is) already in use/i || $! =~ /アドレスは既に/) {




これで、何度実行してもちゃんと結果が取得できるようになりました。

関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2010/04/01(木) 12:11:29|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<CentOS 5.4にjdk1.6をインストールする | ホーム | Debian Perl Net::SSH::Perl cpanを使用せず手動でインストールする手順>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/364-dfa40269
この記事にトラックバックする(FC2ブログユーザー)