检查libpam标头是否可用

时间:2013-09-19 22:34:03

标签: node.js npm pam

在我的Node.js应用程序中,我使用pam身份验证,我使用的模块需要安装libpam-dev(或pam-devel),否则将无法编译。它生成的错误消息不是非常用户友好,许多人不会为阅读文档而烦恼。

我想在NPM中使用preinstall挂钩检查标头是否可用,如果没有,则显示友好错误,然后在尝试安装模块之前终止NPM。

我知道如何杀死NPM,而不是如何检查pam标头是否可用。解决方案应该是分布式的。

1 个答案:

答案 0 :(得分:1)

我最终这样做了:

的package.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

我无法弄清楚如何避免需要单独的脚本。