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


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.