1

私の Node.js アプリケーションでは、pam 認証を使用しており、使用するモジュールには libpam-dev (または pam-devel) をインストールする必要があり、そうしないとコンパイルできません。それが生成するエラー メッセージはあまりユーザー フレンドリーではなく、多くの人はわざわざドキュメントを読む必要はありません。

NPM の preinstall フックを使用して、ヘッダーが利用可能かどうかを確認し、そうでない場合はわかりやすいエラーを表示してから、モジュールをインストールする前に NPM を強制終了したいと考えています。

NPM を強制終了する方法は知っていますが、pam ヘッダーが利用可能かどうかを確認する方法は知りません。解決策は、ディストリビューションにとらわれないものにする必要があります。

4

1 に答える 1

1

私はこれをやってしまった:

パッケージ.json:

{ 
  "scripts": {
    "preinstall": "./bin/install_check.sh"
  }
}

ビン/install_check.sh:

#!/bin/bash

if [ `echo '#include <security/pam_appl.h>' | cpp -H -o /dev/null 2>&1 | head -n1 | grep 'fatal error' | wc -l` == "1" ]; then
  echo "nodeftpd: Please install the libpam-dev package";
  exit 1;
fi

別のスクリプトが必要になるのを避ける方法がわかりませんでした。

于 2013-09-20T14:11:59.027 に答える