Bei Verwendung dieses Snippets (Inline Shell Provisioner):
config.vm.provision "shell" do |s|
s.inline = <<-SHELL
<shell code>
SHELL
end
es fuehrt zu:
==> default: mesg:
==> default: ttyname failed
==> default: :
==> default: Inappropriate ioctl for device
Es sieht so aus, als hätten auch andere Leute dieses Problem gefunden . Weiß jemand, wie man es löst?
Antworten:
Mir ist aufgefallen, dass auch diese Meldung als Fehler angezeigt wurde (in roter Farbe), das Skript wurde erfolgreich ausgeführt! Ein paar Tage später sah ich eine mögliche Lösung und schrieb eine Antwort auf SO . Das "Update" ist:
Vielleicht brauchen Sie es einfach nicht, aber Sie können es ausprobieren und verwenden, wenn es für Sie funktioniert.
Wie Sie in der Kommentarzeile oben sehen können, wurde die Meldung "mesg: ttyname failed Inquate ioctl for device" vom Laravel-Team verhindert. Danke für diesen einen!
Die meisten Entwickler möchten Fehler / Warnungen bei der Entwicklung vermeiden, daher scheint es so, als ob die von uns benötigte Korrektur (eine mögliche Korrektur) vorliegt.
Wichtiger Hinweis: Ich habe diese Lösung nicht zu oft getestet, aber die Box startet ohne den Fehler "mesg: ttyname failed Inappropriate ioctl for device"! Sie können es ausprobieren und wenn Sie Probleme haben, schreiben Sie einfach einen Kommentar, um die Zeit eines anderen zu sparen!
quelle
vagrant ssh -c '...'
. Eventuell als Argumente angegeben werden ignoriert.1) öffne /root/.profile
2) Entfernen Sie die Angriffslinie
3) Ersetzen Sie es durch:
tty -s && mesg n
Frohes Linuxen und ein frohes neues Jahr.
George Hart, LSU
quelle
/root/.profile
... Unterman tty
MacOS heißt es jedoch: "Die Option -s wird zugunsten des Befehls` `test -t 0 '' nicht mehr empfohlen." , so könnte ein besserer Ersatz seintest -t 0 && mesg n
sed -i -e 's/mesg n .*true/tty -s \&\& mesg n/g'
Es sieht so aus, als ob dies durch eine Interaktion zwischen der vagranten Standardkonfiguration von "
config.ssh.shell
to"bash -l
(die eine Anmeldeshell simuliert und somit anmeldebezogene Konfigurationsdateien verarbeitet, z. B..profile
) und einer Zeile in der/root/.profile
Datei auf mindestens einigen Linux-Distributionen verursacht wird (einschließlich: zB die in der Ubuntu / Xenial64-Vagrant-Box ), die hat:Eine bessere Option für diese Zeile in dieser Datei wäre wahrscheinlich, dass sie lautet:
... und angesichts der Tatsache, dass dies als einzelner Benutzer von Vagrant nur schwer zu ändern ist, besteht eine unmittelbarere Lösung darin, die
-l
Option aus der Vagrant-Konfiguration zu streichen, z. B. mit (innerhalbVagrantfile
):(Vorbehalt: Es ist denkbar, dass diese Änderung potenziell negative Nebenwirkungen haben könnte. Bei einigen grundlegenden Shell-Provisionern, z. B. bei
apt-get update
und so weiter, schien sie jedoch eine gute Lösung für mich zu sein .)quelle
Welche Versionen von Vagrant und VirtualBox verwenden Sie?
Ich war gestern mit diesem Problem konfrontiert, als ich Vagrant 1.8.5 mit VirtualBox 5.1.4 (mit Ubunty 16.04) verwendete. Nachdem ich heute ein Upgrade auf Vagrant 1.9.2 und VirtualBox 5.1.14 durchgeführt hatte, verschwand das Problem.
Beachten Sie, dass das Skript vor dem Upgrade, wie auch bei @Minister erwähnt, ohne Probleme ausgeführt wurde. Es wurde nur die Meldung "ttyname failed" ausgegeben, die den Eindruck erweckte, dass ein Fehler aufgetreten ist, als das Bereitstellungsskript tatsächlich erfolgreich ausgeführt wurde.
quelle
Dieses Problem trat in einer Vagrant-Installation auf, die ich seit Jahren verwende und von Zeit zu Zeit auch aktualisiert hatte. Ich habe ein Upgrade auf den neuesten Vagrant (1.9.1 -> 2.0.3) durchgeführt und das Problem ist behoben. (Es wurden auch einige andere skurrile Dinge beseitigt, die sich in seinen Betrieb eingeschlichen hatten.)
Ich bin mir nicht sicher, ob es die neue Version war, die das Problem behoben hat, oder ob vorhandene Dateien / Konfigurationen während des Aktualisierungsprozesses oder einer Kombination aus beiden aktualisiert wurden.
quelle
Scheint so, als würde es nur in VirtualBox v6.0.2 für Mojave / Catalina funktionieren! (+ Vagabund 2.2.2 - nicht sicher, ob es darauf ankommt!)
BEARBEITEN:
Dies hat es für mich jetzt in Ihrem Host-Mac behoben:
https://github.com/hashicorp/vagrant/issues/1941#issuecomment-42274573
quelle