检查libpam头文件是否可用

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

我想使用NPM中的预安装钩子检查头是否可用,如果没有,显示一个友好的错误,然后杀死NPM,然后再尝试安装模块。

我知道如何杀死NPM,而不是如何检查pam头是否可用。 解决scheme应该是distro-agnostic。

我结束了这样做:

的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 

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