Je construis un script de provisioning pour un ubuntu vagrant vm
, sur un ubuntu host
, les deux 12.10 64bit
Lors de l'installation des packages suivants:
sudo apt-get -y install php5-xsl graphviz php-pear unison
Je reçois l'avertissement:
dpkg-reconfigure: unable to re-open stdin: No file or directory
ont essayé de chercher, mais les résultats ont généré toutes les erreurs avec apt-get, impossible de trouver comment supprimer l'avertissement ci-dessus. Les installations fonctionnent, mais l’avertissement ci-dessus provoque des lignes d’erreur dans le vagant up stdout.
N'importe qui peut savoir quelle pourrait être la cause ou comment supprimer l'avertissement
export DEBIAN_FRONTEND=noninteractive
a travaillé pour moi audpkg-preconfigure
stadeLa réponse a été de définir les
perl:locale
« s selon ce :Cela résout le problème, mais ajoute du temps non souhaité à la
vagrant up
mise en service.la source
70debconf
commentaire de @ kenorb pour la préconfiguration.Exécutez cette commande:
pour voir si vous avez ce fichier. Si tel est le cas, la solution consiste à commenter la
DPkg
ligne qui empêche la préconfiguration de tous les packagesdebconf
avant leur installation.Ajoutez donc ces commandes à votre fichier de provision:
Sinon, si vous ne vous souciez pas de ce fichier, supprimez-le simplement:
Voici quelques autres commandes à prendre en compte, mais je ne pense pas qu'elles soient utiles:
la source
--frontend=noninteractive
option dans la commande définie dans le fichier.sudo sed -i 's/\(dpkg-preconfigure\) --apt/\1 --frontend=noninteractive --apt/' /etc/apt/apt.conf.d/70debconf
avant etsudo sed -i 's/ --frontend=noninteractive//' /etc/apt/apt.conf.d/70debconf
après.La redirection Bash fonctionne bien pour stdout et stderr.
Pour rediriger le flux d'erreur, utilisez ce qui suit:
Pour rediriger à la fois stdout (messages qui ne sont pas des erreurs / avertissements) et stderr, utilisez:
C'est un raccourci disponible en bash pour ceci:
Ou:
Ci-dessous, nous pouvons clairement voir que le descripteur de fichier 1 est stdout, 2 stderr, 3 stdin.
Donc, pour ce que vous dites que vous voulez faire, vous ne devriez avoir besoin que du tout premier commandement que j'ai donné.
la source