เกิดข้อผิดพลาดเมื่อลองใช้คนพเนจร


227

ฉันใช้ Vagrant สำหรับสภาพแวดล้อมของฉันและฉันมีปัญหาเล็กน้อย:

$vagrant up

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'base' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Adding box 'base' (v0) for provider: virtualbox
    default: Downloading: base

An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.

Couldn't open file /Users/.../base

ฉันได้เริ่มต้นโครงการของฉันด้วยvagrant initแต่ด้วยเหตุผลบางอย่างvagrant upปฏิเสธที่จะทำงาน


1
ปัญหาที่ฉันมีเมื่อฉันได้รับข้อผิดพลาดนี้คือฉันไม่ได้cdอยู่ในไดเรกทอรีโครงการของฉัน
Connor Leech

คำตอบ:


269

vagrant initดูเหมือนว่าคุณอาจได้สร้างโครงการจรจัดที่มีเพียง สิ่งนั้นจะสร้าง Vagrantfile ของคุณ แต่จะไม่มีกล่องกำหนดไว้

แต่คุณสามารถลอง

$ vagrant init hashicorp/precise32
$ vagrant up

ซึ่งใช้รูปภาพมาตรฐานของ Ubuntu เว็บไซต์ Vagrant มีการเริ่มต้นซึ่งเป็นตัวอย่างที่ดี


19
การ์นั่นแหล่ะ ทำไมถึงพูดว่า "ตอนนี้คุณพร้อมสำหรับvagrant upสภาพแวดล้อมเสมือนจริงครั้งแรกของคุณ!" แล้ว ??
Matt

@Matt - อาจเป็นเพราะคุณสามารถแก้ไขไฟล์ vagrantfile ด้วยตนเองและตั้งค่าว่าจะใช้ช่องใด
Cyclonecode

5
หากคุณทำเสร็จแล้วvagrant initและvagrant box addแยกกันคุณสามารถแก้ไข Vagrantfile และตั้งค่า config.vm.box เป็น "hashicorp / Precision32" หรือกล่องอะไรก็ได้ที่คุณต้องการใช้
Toby

1
ฉันเห็นด้วย - คนพเนจรมีประโยชน์มาก แต่ประสบการณ์ของผู้ใช้เต็มไปด้วยกับดักหลุมที่ง่ายต่อการตกหลุม
James

1
ขอบคุณคำตอบของคุณช่วยฉันได้!
yohannan_sobin

101

หากคุณใช้ OS X และใช้การติดตั้งแบบมาตรฐานให้ลบ curl เก่าของคนจรจัดออกและตอนนี้ควรจะใช้งานได้แล้ว

sudo rm /opt/vagrant/embedded/bin/curl


5
ขอบคุณสิ่งนี้แก้ไขให้ฉันด้วย +1 โหวตขึ้น :)
Akko Van Ettinger

7
สิ่งนี้แก้ไขปัญหาของฉันใน mac ขณะทำงานกับกล่องโลคัลและรีโมต
DWils

8
ทำไมในโลกที่ไม่ได้ฝังขด ?
Benjamin R

3
-rfธงเป็นบิต overkill ที่นี่ เพียงแค่sudo rm /opt/vagrant/embedded/bin/curlเป็นพอ คุณควรพยายามหลีกเลี่ยงการใช้-r(= เรียกซ้ำสำหรับการเดินทางลงไดเรกทอรี) และ-f(= บังคับโดยไม่มีคำถามใด ๆ ถาม) เมื่อไม่จำเป็นจริงๆ พวกเขาเป็นเครื่องมือที่มีประสิทธิภาพและเป็นอันตรายโดยเฉพาะอย่างยิ่งในการรวมกันกับ sudo ...
Arvid

นี้ทำงานให้ฉันใช้จรจัด 1.8.7 brew cask install vagrantการติดตั้งด้วย ไฟล์ box เดียวกันใช้งานได้ดีกับเวอร์ชัน Vagrant เดียวกันบน Ubuntu 16.04
RichVel

89
vagrant init laravel/homestead

แล้ว

vagrant up

เป็นสิ่งที่ใช้ได้ผลสำหรับฉัน


4
สมบูรณ์แบบ! ขอบคุณ ! ถ้าใครสามารถอธิบายได้ว่าทำไมเรื่องนี้เกิดขึ้นผมจะดีใจ :)
Baldráni

1
คุณต้องระบุประเภทของกล่องที่ถูกต้อง ต่อไปนี้เป็นประเภทกล่องที่ใช้ได้บางส่วน: atlas.hashicorp.com/boxes/…
duhaime

1
ขอบคุณมันทำให้ฉันเป็นบ้าฮิฮิ คำทักทายจากชิลี
Cristian Meza

1
ใช้ - บังคับใช้กับคนจรจัดถ้ามีไฟล์คนจรจัดอยู่แล้ว
ชัค

ทั้งสองคำตอบข้างต้นแก้ไขปัญหาของฉัน ก่อนอื่นให้ลบโฟลเดอร์ 'curl' sudo rm /opt/vagrant/embedded/bin/curlแล้วเรียกใช้vagrant init laravel/homesteadแล้วvagrant up
Wei Lu

44

สิ่งนี้เกิดขึ้นเนื่องจากมีไฟล์คนเร่ร่อนโดยไม่มีชื่อกล่องที่กำหนดไว้ สิ่งนี้จะเกิดขึ้นเมื่อคุณเรียกใช้ vagrant initโดยไม่ใช้พารามิเตอร์ชื่อกล่อง

ดังนั้นคุณต้องลบไฟล์ Vagrant แล้ว

vagrant init box-title
vagrant up

ฉันหวังว่านี่จะช่วยได้!


รายการกล่องที่มีอยู่ที่นี่
Aleksey Potapov

คำตอบนี้ช่วยฉันจาก 3 เดือนที่ล้มเหลวในการคนจรจัดที่กล่องขึ้นขอบคุณ (ฉันบน windows 7)
ดัม

22

ทำงานกับฉันเหล่านี้เป็นขั้นตอนต่อไปนี้:

  • cd homestead (ในโฟลเดอร์ homestead ไดเรกทอรีของคุณ) หรือ cd Homestead
  • del vagrantfile หรือ rm -Rf Vagrantfile
  • vagrant init laravel/homestead
  • vagrant up

17

กรุณาเรียกใช้ใน terminal ของคุณ:

$ vagrant box list

คุณจะเห็นสิ่งที่ชอบ laravel/homestead(virtualbox,x.x.x)

ถัดไปค้นหาของคุณVagrantfileและค้นหาบรรทัดที่ระบุว่า

config.vm.box = "box"

แทนที่ด้วยชื่อกล่องเมื่อคุณเรียกใช้boxvagrant box list


โปรดทราบว่า "Vagrantfile" อยู่ใน: C: \ Users \ YourUsername หากคุณใช้ Windows
egdavid

นั่นแก้ไขได้สำหรับฉันเพราะภาพกล่องของฉันพูดถึงใน. Kitchen.yml ไม่สามารถใช้ได้อีกต่อไป เขี้ยวลากดิน
min hundje

16

หาก"Vagrantfile" already exists in this directory. Remove it before running "vagrant init". ข้อผิดพลาดแสดงให้เห็นแล้ว

1. rm Vagrantfile
2. vagrant init hashicorp/precise64
3. vagrant up

1
==> ค่าเริ่มต้น: ไม่พบกล่อง 'hashicorp / precision64' ความพยายามในการค้นหาและติดตั้ง ... อนุญาตสำหรับการติดตั้งระยะไกลซึ่งเป็นสิ่งที่ฉันต้องการอยู่แล้ว ฉันทำงานบน VirtualBox Windows Host พร้อมไคลเอนต์
Ubuntu14

1
สิ่งนี้ใช้ได้สำหรับฉัน ดังนั้นปัญหาคือเมื่อคุณทำvagrant initคนพเนจรตั้งค่าเริ่มต้นเพื่อตั้งชื่อ "กล่อง" ของคุณใน Vagrantfile เพียงแค่ "ฐาน"? และเพื่อให้งานนั้นคุณต้องระบุชื่อกล่อง Vagrant ที่ไม่ใช่ค่าเริ่มต้น
Denialos

15

ฉันรู้ว่านี่เก่า แต่ฉันได้รับข้อผิดพลาดเดียวกันทั้งหมด จะเปิดออกผมก็หายไปขั้นตอนนี้ที่มีอยู่อย่างชัดเจนในเอกสาร

ฉันต้องการที่จะแก้ไขVagrantfileการตั้งค่าเท่ากับภาพที่ฉันได้ดาวน์โหลดconfig.vm.box โดยค่าเริ่มต้นมันถูกกำหนดให้hashicorp/precise32base

นี่คือสิ่งที่เอกสารพูดว่า:

ตอนนี้กล่องได้ถูกเพิ่มเข้าไปใน Vagrant แล้วเราต้องกำหนดค่าโครงการของเราเพื่อใช้เป็นฐาน เปิด Vagrantfile และเปลี่ยนเนื้อหาดังต่อไปนี้:

Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/precise32"
end

มันช่วย. ฉันกำลังใช้ "คนจรจัด init" ข้อผิดพลาดมา หลังจากที่ระบุ "hashicorp / Precision32" ทุกอย่างดูเหมือนว่าตกลง
yuyue007

ขั้นตอนอยู่ในเอกสารอย่างเป็นทางการ แต่ดูจำนวนผู้เขียนที่ตอบคำถามนี้ไม่ได้รวมอยู่
jmdeamer

10

ดูเหมือนว่ามีบางอย่างผิดปกติกับโปรแกรม curl แบบฝังใน Vagrant ทำตามคำแนะนำข้างต้นฉันเพิ่งเปลี่ยนชื่อ (ในกรณีที่ฉันต้องการมันกลับ) และvagrant upเริ่มทำงานตามที่คาดไว้

ใน mac ของฉัน:

♪ .vagrant.d sudo mv /opt/vagrant/embedded/bin/curl /opt/vagrant/embedded/bin/curlOLD Password:


1
ในขณะที่ฉันไม่แน่ใจว่าสิ่งนี้ตอบคำถามเดิมมันช่วยฉันได้ไหม เมื่อขุดเข้าไปอีกสักหน่อยฉันก็รันคำสั่ง curl ในตัวและได้รับdyld: Library not loaded: @rpath/libcurl.4.dylib Referenced from: /opt/vagrant/embedded/bin/curl_old Reason: Incompatible library version: curl_old requires version 9.0.0 or later, but libcurl.4.dylib provides version 7.0.0
tapi

1
ฉันมีปัญหาเดียวกันกับ Vagrant 1.8.7 บน OSX ทำงานข้างต้น
Janaka

6

ฉันพบข้อผิดพลาดนี้เช่นกัน ฉันคิดว่าเป็นเพราะฉันไม่ได้ให้ box_url ..

vagrant init precise64 http://files.vagrantup.com/precise64.box

1
การเพิ่มconfig.vm.box_url = "http://files.vagrantup.com/precise64.box"ลงใน Vagrantfile ของฉันแก้ไขให้ฉันด้วย
millerdev

4

จริงๆแล้วคุณต้องทำ:

vagrant up laravel/homestead

เพราะตามคำแนะนำแบบ homestead คุณเพิ่งดาวน์โหลด: http://laravel.com/docs/5.0/homestead โดย:

vagrant box add laravel/homestead

ดังนั้นคุณต้องเปิดกล่องที่คุณตั้งใจจะใช้ - ไม่ใช่ภาพอูบุนตูแบบสุ่ม;)


4

กับฉันฉันมีข้อผิดพลาดเมื่อทำงานvagrant upคือ (ฉันใช้ Macbook pro, Mac OS: 10.12.1):

An error occurred while downloading the remote file. The error message, if any, is reproduced below. Please fix this error and try again. Couldn't open file...

ฉันพยายามที่จะลบVagrantfileในโฟลเดอร์ของฉันและเรียกใช้:

vagrant init hashicorp/precise64

แล้ว:

vagrant up

มันสามารถแก้ไขปัญหาของฉันได้ หวังว่านี่จะช่วยให้ใครบางคนที่ประสบปัญหาเดียวกัน


1
ฉันลองมาหลายครั้งแล้ว สิ่งเดียวที่ทำงานได้คือเปลี่ยนชื่อขด (Mac OS 10.12)
Vicky T

1
ทำงานให้ฉันด้วยบนพีซีที่ใช้ windows 10
Jay Julian Payne

4

ฉันประสบปัญหาเดียวกันเมื่อฉันรันคำสั่งต่อไปนี้

vagrant init
vagrant up  
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'base' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Box file was not detected as metadata. Adding it directly...
==> default: Adding box 'base' (v0) for provider: virtualbox
    default: Downloading: base
An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.

Couldn't open file /home/...../base

ฉันแก้ไขด้วย

>vagrant init laravel/homestead
>Vagrant up

มันใช้งานได้สำหรับฉัน

การเข้ารหัสที่มีความสุข



1

ในกรณีที่คุณเพิ่มกล่องและเริ่มดาวน์โหลด แต่ขัดจังหวะการดาวน์โหลดนั้นให้ไปที่~/.vagrant.d/tmp/และลบไฟล์ดาวน์โหลดบางส่วนจากนั้นลองอีกครั้ง


1

ฉันจะแก้ไขปัญหานี้ได้โดยไปยังโฟลเดอร์.vagrant.d/boxes/ภายใต้บ้านของคุณและเปลี่ยนชื่อโฟลเดอร์จากไปlaravel-VAGRANTSLASH-homestead baseและมันก็ได้ผลกับฉันด้วย

โปรดตรวจสอบว่าการเปิดใช้งานการจำลองเสมือนใน BIOS ของคุณหรือไม่


คุณควรจะมีการเรียกใช้ "คนจรจัด init laravel-VAGRANTSLASH-homestead"
Gil Margolin

1

คุณสามารถเพิ่ม vm ลงในเครื่องของคุณได้

vagrant box add precise32 http://files.vagrantup.com/precise32.box

1

ขั้นตอนแรกและสำคัญที่สุดก่อนที่จะเริ่ม Vagrant คือให้ตรวจสอบว่ากล่องใดมีอยู่ในระบบของคุณ ใช้คำสั่งนี้เพื่อรับรายการกล่องที่พร้อมใช้งาน

vagrant box list

จากนั้นย้ายไปยังกระบวนการเพิ่มเติมนั่นคือเลือกกล่องเฉพาะ

vagrant init ubuntu/trusty64 (ฉันได้เลือก Ubuntu / trusty64 แล้ว)

แล้ว

vagrant up

หมายเหตุ: มันจะดีมากถ้าคุณค้นหา Google / Youtube นิดหน่อยแทนที่จะสั่งให้สุ่มสี่สุ่มห้า :) ขอบคุณ


0

เมื่อคุณเริ่มต้นคนจรจัดมันจะแทนที่ไฟล์คนจรจัดใน repo ของคุณและสามารถให้ข้อผิดพลาดที่ ดังนั้นฉันขอแนะนำให้คุณคัดลอกไฟล์คนเร่ร่อนต้นฉบับจากระยะไกลหรือไฟล์คนเร่ร่อนสำรองและลองคนเร่ร่อนขึ้นหลังจากนั้น

ฉันเจอปัญหาเดียวกันและฉันเพิ่งคัดลอกไฟล์คนเร่ร่อนจาก repo ระยะไกลของฉันและแทนที่ไฟล์คนจรจัดที่ฉันพยายามเรียกใช้ สิ่งนี้ซิงค์การกำหนดค่าในไฟล์ vagrant กับ VM


0

แก้ไขไฟล์คนเร่ร่อนที่สร้างโดยvagrant initในไดเรกทอรีเดียวกันและป้อนชื่อกล่องในบรรทัดconfig.vm.box = "ubuntu/trusty64"ที่ubuntu/trusty64เป็นกล่องฐานของคุณ ตอนนี้vagrant upจะดาวน์โหลดและตั้งค่าubuntu/trusty64เป็นกล่องฐานสำหรับคุณ



0

ตรวจสอบไฟล์ Homestead.yaml อย่างระมัดระวังตรวจสอบว่ามีอักขระเว้นวรรคเพิ่มเติมหลังจากบรรทัดสิ้นสุดลงหรือไม่ จากนั้นเปิด gitbash -> ไปที่ Homestead directory -> command "vagrant up --provision"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.