Vagrant up:坏的解释器:没有这样的文件或目录

3
在使用cygwin运行vagrant up时,遇到以下错误。
 stderr: /bin/bash: /home/vagrant/.ansible/tmp/ansible-tmp-1487226010.33-231113224080537/configure.sh: /bin/bash^M: bad interpreter: No such file or directory

勾选后,我找不到 configure.sh 的位置。

无法确定此问题的原因。这是由于缺少配置吗?

完整错误:

$ vagrant up
Running on Ruby 2.0.0
Resolved settings:
---
vm:
  memory: '8192'
paths:
  ptc: C:/MYCERT
  mvnrepo: C:/Users/Cmpy/.m2/repository
  workspace: C:/code/vagrant/myCode
  install: C:/code/vagrant/install
  licenses: C:/code/vagrant/licenses
jive:
  jrebel: false
gsa:
  fgs:
    version: '1.0'
Bringing machine 'mySDK' up with 'virtualbox' provider...
==> mySDK: Importing base box 'centos-6.5-x86_64'...
==> mySDK: Matching MAC address for NAT networking...
==> mySDK: Setting the name of the VM: name_1487225947556_22185
==> mySDK: Clearing any previously set network interfaces...
==> mySDK: Preparing network interfaces based on configuration...
    mySDK: Adapter 1: nat
    mySDK: Adapter 2: hostonly
==> mySDK: Forwarding ports...
    mySDK: 10389 => 10389 (adapter 1)
    mySDK: 8080 => 8080 (adapter 1)
    mySDK: 8443 => 8443 (adapter 1)
    mySDK: 5432 => 5432 (adapter 1)
    mySDK: 7020 => 7020 (adapter 1)
    mySDK: 30000 => 30000 (adapter 1)
    mySDK: 19900 => 19900 (adapter 1)
    mySDK: 9020 => 9020 (adapter 1)
    mySDK: 9030 => 9030 (adapter 1)
    mySDK: 22 => 2222 (adapter 1)
==> mySDK: Running 'pre-boot' VM customizations...
==> mySDK: Booting VM...
==> mySDK: Waiting for machine to boot. This may take a few minutes...
    mySDK: SSH address: 127.0.0.1:2222
    mySDK: SSH username: vagrant
    mySDK: SSH auth method: private key
    mySDK: Warning: Connection timeout. Retrying...
==> mySDK: Machine booted and ready!
==> mySDK: Checking for guest additions in VM...
==> mySDK: Setting hostname...
==> mySDK: Configuring and enabling network interfaces...
==> mySDK: Mounting shared folders...
    mySDK: /PTC => C:/MYCERT
    mySDK: /workspace => C:/code/vagrant/myCode
    mySDK: /vagrant/ds => C:/code/vagrant/myCode/src/apacheds
    mySDK: /vagrant/db => C:/code/vagrant/myCode/src/provisioning/db
    mySDK: /vagrant/ssl => C:/code/vagrant/myCode/src/provisioning/ssl
    mySDK: /vagrant/vars => C:/code/vagrant/myCode
    mySDK: /vagrant/conf => C:/code/vagrant/myCode/src/provisioning/conf
    mySDK: /local_repository => C:/Users/Cmpy/.m2/repository
    mySDK: /vagrant/.install => C:/code/vagrant/install
    mySDK: /vagrant/.licenses => C:/code/vagrant/licenses
    mySDK: /vagrant/provisioning => C:/code/vagrant/myCode/src/provisioning
    mySDK: /vagrant/jboss_deployment => C:/code/vagrant/myCode/deploy
==> mySDK: Running provisioner: shell...
    mySDK: Running: C:/cygwin64/tmp/vagrant-shell20170216-3164-fiz5m3.sh
==> mySDK:
==> mySDK: PLAY [127.0.0.1] **************************************************************
==> mySDK:
==> mySDK: GATHERING FACTS ***************************************************************
==> mySDK: ok: [127.0.0.1]
==> mySDK:
==> mySDK: TASK: [common | Configure Java and ApacheDS] **********************************
==> mySDK: failed: [127.0.0.1] => {"changed": true, "rc": 126}
==> mySDK: stderr: /bin/bash: /home/vagrant/.ansible/tmp/ansible-tmp-1487226010.33-231113224080537/configure.sh: /bin/bash^M: bad interpreter: No such file or directory
==> mySDK:
==> mySDK:
==> mySDK: FATAL: all hosts have already failed -- aborting
==> mySDK:
==> mySDK: PLAY RECAP ********************************************************************
==> mySDK:            to retry, use: --limit @/home/vagrant/site.retry
==> mySDK:
==> mySDK: 127.0.0.1                  : ok=1    changed=0    unreachable=0    failed=1
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

chmod +x /tmp/vagrant-shell && /tmp/vagrant-shell

Stdout from the command:


PLAY [127.0.0.1] **************************************************************

GATHERING FACTS ***************************************************************
ok: [127.0.0.1]

TASK: [common | Configure Java and ApacheDS] **********************************
failed: [127.0.0.1] => {"changed": true, "rc": 126}
stderr: /bin/bash: /home/vagrant/.ansible/tmp/ansible-tmp-1487226010.33-231113224080537/configure.sh: /bin/bash^M: bad interpreter: No such file or directory


FATAL: all hosts have already failed -- aborting

PLAY RECAP ********************************************************************
           to retry, use: --limit @/home/vagrant/site.retry

127.0.0.1                  : ok=1    changed=0    unreachable=0    failed=1



Stderr from the command:

2
将行结尾转换为UNIX样式,在./configure.sh中。 - yeputons
@yeputons:非常感谢。:set fileformat=unix解决了这个问题。 - Nidheesh
1个回答

1

不建议使用无法处理UNIX/LINUX风格换行符的Cygwin,而是建议在Windows 10 Ubuntu子系统上安装ansible以自动处理这些问题。如果你与OSS用户合作,这个问题会越来越困扰你,当你开始使用ansible保险库时,这个问题也会出现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接