- ベストアンサー
FreeBSD p5-Net-SSLeay のインストールで問題が発生する
- FreeBSD p5-Net-SSLeay のインストール中に、入力待ちで進行が止まる問題が発生しています。
- 問題の解決方法は既知のファイルを変更することで可能ですが、具体的な変更箇所は特定されていません。
- 入力待ちの回避方法について、質問者からの情報が求められています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
回答2の者です。 先ほどの回答で、差分ファイルの内容を書きましたが、 表示上スペースが消されてしまうため、そのままでは使えません。 差分は以下の手順で作成してください。 1. portの p5-Net-SSLeay ディレクトリに移動 % cd /usr/ports/security/p5-Net-SSLeay 2. 差分の保存ディレクトリを作成 % mkdir /usr/ports/security/p5-Net-SSLeay/files 3. ファイルを展開 % make extract 4. 問題のファイルのディレクトリに移動 % cd work/Net-SSLeay-1.35/inc/Module/Install/PRIVATE/Net/ 5. ファイルをバックアップ % cp SSLeay.pm SSLeay.pm.orig 6. ファイルを編集、48行目を修正する % vi SSLeay.pm ←ここはお好きなエディターを使ってください。 7. 展開ディレクトリに移動 % cd /usr/ports/security/p5-Net-SSLeay/work/Net-SSLeay-1.35/ 8. 差分を作成 % diff -u inc/Module/Install/PRIVATE/Net/SSLeay.pm.orig inc/Module/Install/PRIVATE/Net/SSLeay.pm > /usr/ports/security/p5-Net-SSLeay/files/patch-externaltests 以上の手順で、差分ファイルが生成できます。 あるいは、回答2について、「ソースを表示」してから該当部分をコピーし、 ・行末の<br /> を削除 ・> を > に置換 ・& を & に置換 ・" を " に置換 という処理を行っても、差分ファイルを生成できます。 ついで: 回答1のgoold-man さんへ Net-SSLeay をインストールする時に、問題なく動作するかどうかテストを行います。 この「Do you want to run external tests?」は、文字通りの内容のもので、 その時、「インターネットの外部にあるテスト用サーバに接続してのテストを行うかどうか」を尋ねているものです。 ここでyと答えても、インターネット接続環境にないならば、テストは失敗することになります。 というわけで、「脆弱なパッケージをインストール」してたりするわけではありません。
その他の回答 (2)
- mtaka2
- ベストアンサー率73% (867/1179)
問題の場所は、 inc/Module/Install/PRIVATE/Net/SSLeay.pm の48行目付近ですね。 > if ($self->prompt( > "Do you want to run external tests?\n". > "These tests *will* *fail* if you do not have network connectivity.", > 'n', > ) =~ /^y/i ) { となっている部分がありますので、ここを > if (0 && $self->prompt( とでもしておけば、nと答えたものとして処理するようになります。 ただし、これを修正しただけでは、 portupgrade などを行った場合に、元にファイルに戻されてしまいますから、 そういった修正を加えるパッチファイルを作った方がいいでしょう。 /usr/ports/security/p5-Net-SSLeay/ に files というディレクトリを作成し、 その下に、patch-externaltests といった名前で、以下のファイルを作成・保存してください。 ---ここから--- --- inc/Module/Install/PRIVATE/Net/SSLeay.pm.orig 2008-07-25 07:09:34.0000 00000 +0900 +++ inc/Module/Install/PRIVATE/Net/SSLeay.pm 2009-06-23 07:24:53.000000000 +0 900 @@ -45,7 +45,7 @@ $self->makemaker_args( CCCDLFLAGS => $opts->{cccdlflags} ); - if ( $self->prompt( + if (0 && $self->prompt( "Do you want to run external tests?\n". "These tests *will* *fail* if you do not have network connectivity. ", 'n', ---ここまで--- このファイルで問題ないかどうかの確認は、 /usr/ports/security/p5-Net-SSLeay/ で、 % rm -rf work を実行してから、 % make configure と行うことで出来ます。 これで、inc/Module/Install/PRIVATE/Net/SSLeay.pm が正しく修正されていればOKです。 以後、portを更新する場合でもこのファイルに大きな変更がないかぎりは、 external tests を聴かない状態でインストールできます。
- goold-man
- ベストアンサー率37% (8364/22179)
もし脆弱なパッケージをインストールしているのであれば、ツールでパッケージを削除しコンパイル済みパッケージをダウンロード、インストールする。と言うことは関係ありませんか? 文面「external testsを実行したいですか?(ネットワークの接続がないなら失敗する)」と言うことがわからないのですが・・・
- 参考URL:
- http://www.jp.netbsd.org/ja/JP/Documentation/Packages/list/security/p5-Net-SSLeay/README.html
お礼
解決できました。 ありがとうございました。
補足
レス、ありがとうございます。 /usr/local/sbin/portaudit -Fda としてみたところ、 New database installed. Database created: Tue Jun 23 06:40:01 JST 2009 0 problem(s) in your installed packages found. ということでした。 > 文面「external testsを実行したいですか?(ネットワークの接続がないなら失敗する)」 > と言うことがわからないのですが・・・ p5-Net-SSLeay のインストール時に、そのメッセージが表示されて テストをするかしないかの入力待ちで止まっています。 n を押して、「テストしない」を選択してインストールを続行しています。 説明不足なところがあれば、更に補足します。 よろしくお願いします。
お礼
希望通りに、入力待ちなくインストールできました。 パッチファイルの作り方も、とても勉強になりました。 ありがとうございました。
補足
レス、ありがとうございます。 教えていただいた手順でパッチファイルを作り、スクリプトを make install の前に files ディレクトリを作成し、 patch-externaltests をセットするように変更しました。 現在、OS を入れ直して ports の Cvsup 中なので、結果の報告が できるのに少々時間がかかりそうです。 結果がでましたら、改めて報告致します。