Lors de l'utilisation de cet extrait (provisionneur de shell en ligne):
config.vm.provision "shell" do |s|
s.inline = <<-SHELL
<shell code>
SHELL
end
il en résulte:
==> default: mesg:
==> default: ttyname failed
==> default: :
==> default: Inappropriate ioctl for device
Il semble que d'autres personnes aient également trouvé ce problème . Quelqu'un sait-il comment le résoudre?
Réponses:
J'ai remarqué que même ce message était affiché comme une erreur (en couleur ROUGE), le script a été exécuté avec succès! Quelques jours plus tard, j'ai vu un correctif possible et j'ai posté une réponse sur SO . Le "correctif" est:
Peut-être que vous n'en avez tout simplement pas besoin, mais vous pouvez l'essayer et l'utiliser si cela fonctionne pour vous.
Comme vous pouvez le voir dans la ligne commentée ci-dessus - le "mesg: ttyname a échoué ioctl inapproprié pour le périphérique" a été empêché par l'équipe laravel. Merci pour celui-ci!
La plupart des développeurs souhaitent éviter les erreurs / avertissements lors du développement, il semble donc que le correctif (un correctif possible) dont nous avions besoin.
Remarque importante: je n'ai pas trop testé cette solution, mais la boîte démarre sans l'erreur "mesg: ttyname a échoué ioctl inapproprié pour le périphérique"! Vous êtes libre de l'essayer et si vous rencontrez des problèmes, déposez simplement un commentaire pour gagner du temps à quelqu'un d'autre!
la source
vagrant ssh -c '...'
. Peut-être que les arguments fournis sont ignorés.1) ouvrez /root/.profile
2) supprimer la ligne offensive
3) remplacez-le par:
tty -s && mesg n
Joyeux linuxing et bonne année.
George Hart, LSU
la source
/root/.profile
... Cependant,man tty
sur MacOS dit que "l'option -s est déconseillée au profit de la commande` `test -t 0 ''." , donc un meilleur remplacement pourrait êtretest -t 0 && mesg n
sed -i -e 's/mesg n .*true/tty -s \&\& mesg n/g'
Il semble que cela soit dû à une interaction entre la configuration vagabonde par défaut de
config.ssh.shell
bebash -l
(qui simule un shell de connexion, traitant ainsi des fichiers de configuration liés à la connexion tels que.profile
) avec une ligne dans le/root/.profile
fichier sur au moins certaines distributions de Linux (y compris, par exemple, celui dans la boîte vagabonde ubuntu / xenial64 ), qui a:Une meilleure option pour cette ligne dans ce fichier serait probablement de lui faire dire:
... et, étant donné qu'il est difficile de changer en tant qu'utilisateur vagabond individuel, une solution plus immédiate consiste à supprimer l'
-l
option de la configuration vagabonde, par exemple avec (à l'intérieurVagrantfile
):(Mise en garde: il est concevable que ce changement puisse avoir des effets secondaires potentiellement négatifs. Il a semblé fonctionner très bien pour moi, cependant, avec certains approvisionneurs de shell de base, par exemple avec
apt-get update
, et ainsi de suite.)la source
Quelles versions de Vagrant et VirtualBox utilisez-vous?
J'étais confronté à ce problème hier lors de l'utilisation de Vagrant 1.8.5 avec VirtualBox 5.1.4 (avec Ubunty 16.04). Cependant, après la mise à niveau vers Vagrant 1.9.2 et VirtualBox 5.1.14 aujourd'hui, le problème a disparu.
Notez qu'avant la mise à niveau, comme @Minister l'a également mentionné, le script s'est exécuté sans problème. Il ne faisait que générer le message "ttyname failed", qui donnait l'impression qu'une erreur s'était produite, alors que le script de provisioning s'était en fait exécuté avec succès.
la source
Ce problème a commencé à se produire dans une installation Vagrant que j'utilisais depuis des années et que j'avais également mise à niveau de temps en temps. Je suis passé au dernier Vagrant (1.9.1 -> 2.0.3) et le problème a disparu. (il a également éliminé d'autres choses excentriques qui s'étaient glissées dans son fonctionnement)
Je ne sais pas si c'est la nouvelle version qui l'a corrigé ou si les fichiers / configurations existants ont été rafraîchis dans le processus de mise à niveau ou une combinaison des deux.
la source
Il semble que cela ne fonctionne que dans VirtualBox v6.0.2 pour Mojave / Catalina! (+ vagabond 2.2.2 - pas sûr que ça compte!)
ÉDITER:
Cela m'a corrigé maintenant dans votre Mac hôte:
https://github.com/hashicorp/vagrant/issues/1941#issuecomment-42274573
la source