2013-09-19 6 views
1

В моем приложении Node.js я использую проверку подлинности pam, а для модуля, который я использую, требуется установить libpam-dev (или pam-devel) или он не будет компилироваться. Сообщения об ошибках, которые он генерирует, не очень удобны для пользователя, и многие люди не будут беспокоиться о том, чтобы читать документы.Проверьте, имеются ли заголовки libpam

Я хотел бы использовать крюк предварительной установки в NPM, чтобы проверить, доступны ли заголовки, а если нет, отобразить дружественную ошибку и затем убить NPM, прежде чем он попытается установить модуль.

Я знаю, как убить NPM, а не как проверить, доступны ли заголовки пей. Решение должно быть дистрибутивным.

ответ

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 

Я не был в состоянии понять, как избежать необходимости отдельный сценарий.

Смежные вопросы