
外部ではなく vagrant マウント内でファイルを実行しようとすると、奇妙な問題が発生します。
$ cat test
#!/usr/bin/env node
console.log('works!')
$ ls -la test
-rwxr-xr-x 1 vagrant vagrant 43 May 13 23:17 test
$ ./test
bash: ./test: /usr/bin/env: bad interpreter: Invalid argument
$ /usr/bin/env node test
works!
$ cp test /tmp/; cd /tmp/
$ ./test
works!
いくつかの詳細:
$ cat /etc/fstab | grep workspace
home_vagrant_workspace /home/vagrant/workspace vboxsf uid=1000,gid=1000,_netdev 0 0
$ mount | grep workspace
home_vagrant_workspace on /home/vagrant/workspace type vboxsf (rw,nodev,relatime,iocharset=utf8,uid=1000,gid=1000,_netdev)
また試しました:
$ cat /etc/fstab | grep workspace
home_vagrant_workspace /home/vagrant/workspace vboxsf defaults,dev,exec,uid=1000,gid=1000 0 0
$ mount | grep workspace
home_vagrant_workspace on /home/vagrant/workspace type vboxsf (rw,nodev,relatime,iocharset=utf8,uid=1000,gid=1000)
ゲスト:
$ uname -a
Linux vagrant 5.11.0-11-generic #12-Ubuntu SMP Mon Mar 1 19:26:56 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=21.04
DISTRIB_CODENAME=hirsute
DISTRIB_DESCRIPTION="Ubuntu Hirsute Hippo (development branch)"
ホスト: MacOS BigSur 11.3(20E232) プロバイダ: VirtualBox
放浪者クリップ:
config.vm.box = properties["data"]["machine"]["box"] // bento/ubuntu-21.04
# Shared Folders Configuration
if (properties["data"].include? "shared_folders")
properties["data"]["shared_folders"].each do |folder, index|
config.vm.synced_folder folder["item"]["host"], folder["item"]["guest"], id: index, owner: "vagrant", group: "vagrant"
end
end
この問題を処理する方法について提案がありますか?
答え1
Parallels Toolsと互換性のないカーネルの変更があるようです。Parallelsフォーラムの関連項目。おそらく、これは設定で発生したエラーと同じ根本原因かもしれません。
回避策は、スクリプトファイルを直接実行するのではなく(たとえば経由で#!
)インタプリタを直接呼び出すことbash foo.sh
です./foo.sh
。