Ant build.xml nécessite l'entrée d'utilisateur, mais Eclipse n'a pas TTY
Question
Je suis en train de mieux intégrer Eclipse avec mon build.xml. Mon fichier build appelle GNU Make pour la partie native du programme, et le Makefile utilise sudo pour movethe libs compilés dans le chemin du système. Malheureusement, cela vous devez entrer le mot de passe et le terminal d'Eclipse n'accepte pas l'entrée d'utilisateur. Ainsi, le résultat de l'exécution de l'accumulation dans l'éclipse est:
[exec] sudo: no tty present and no askpass program specified
[exec] make: *** [install] Error 1
Toute façon de contourner ce problème? la construction de fourmis peut être élevé à la racine d'une autre manière?
La solution
Mettre en place un compte distinct, par exemple deployer . Modifier /etc/sudoers
pour inclure les alias qui permettent deployer exécuter une seule commande, par exemple deploy , en tant que root. Faire deployer NOEXEC:
. Stocker le deployer mot de passe dans un fichier invisible, par exemple .deployconf avoir accès seul utilisateur: par exemple 400
ou 600
. Chargez le mot de passe dans ant
, et utiliser au besoin:
Cela fonctionne bien avec
Autres conseils
Vous pouvez configurer votre fichier / etc / sudoers afin qu'il précise NOPASSWD: pour l'utilisateur sous lequel Eclipse est en cours d'exécution, et pour la commande que vous utilisez pour déplacer les libs. En utilisant la commande visudo, vous pouvez ajouter à la fin de / etc / sudoers:
eclipseuser ALL = NOPASSWD: /bin/cp
Sachez que cela ne présente un risque de sécurité que le eclipseuser aurait alors le pouvoir d'écraser tout fichier sur le système.
Peut-être une stupide « solution », mais pourquoi ne pas faire le déploiement d'une étape distincte? Avez-la construction faire un artefact d'emballage: DEP, RPM ou quelque chose.