Vagrant ไม่เริ่มต้นขึ้น ผู้ใช้ที่สร้าง VM ไม่ตรงกับผู้ใช้ปัจจุบัน


124

ฉันพยายามเริ่มต้นเครื่องพเนจรของฉันดังนั้นฉันจึงไปที่โฟลเดอร์ที่ไฟล์ vagrantfile ของฉันอยู่และใช้:

พเนจรขึ้น && คนเร่ร่อน ssh

แต่ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

VirtualBox VM ถูกสร้างขึ้นโดยมีผู้ใช้ที่ไม่ตรงกับผู้ใช้ปัจจุบันที่ใช้ Vagrant VirtualBox ต้องการให้ผู้ใช้คนเดียวกันใช้เพื่อจัดการ VM ที่สร้างขึ้น โปรดเรียกใช้ Vagrant อีกครั้งกับผู้ใช้รายนั้น นี่ไม่ใช่ปัญหา Vagrant

UID ที่ใช้สร้าง VM คือ 0 UID ของคุณคือ: 501

ฉันลองใช้ sudo ด้วย แต่ก็ไม่ได้ผลเช่นกัน

ฉันจำเป็นต้องเปลี่ยน UID หรือไม่ และฉันจะทำอย่างไร?

คำตอบ:


253

ฉันพบปัญหาเดียวกันในวันนี้
ฉันแก้ไขของฉันโพสต์โดยเปิดไฟล์.vagrant/machines/default/virtualbox/creator_uidและเปลี่ยน501ไป0

หลังจากที่ฉันบันทึกไฟล์คำสั่ง vagrant up จะทำงานเหมือนแชมป์

หมายเหตุ: .vagrantโฟลเดอร์นี้อยู่ในไดเร็กทอรีเดียวกับ Vagrantfile ของคุณที่คุณเรียกใช้vagrant up


64
ฉันพบว่าตัวเองตกอยู่ในสถานการณ์เดียวกันฉันใช้ tarball จากเครื่อง ubuntu ดังนั้นเพียงแค่ลบrm -rf .vagrantdir ที่สร้างใน ubuntu ก็ช่วยแก้ปัญหาได้เช่นกัน
Jeff Sheffield

1
// ว้าวขอบคุณ @ เฟรด! Stackoverflow ให้บริการเราอย่างดีที่สุดด้วยวิธีการที่แม่นยำและยากที่จะหาวิธีแก้ไขจากคนที่เคยจัดการกับมันมาก่อน ฉันจะหา.vagrantโฟลเดอร์ในเครื่องที่ใช้ Unix ได้ที่ไหน
Nathan Basanese

1
ไม่แน่ใจ @ นาธาน. คุณสามารถรันคำสั่ง locate สำหรับไฟล์ creator_uid ได้หรือไม่? ลอง "locate creator_uid" ที่บรรทัดคำสั่งเพื่อค้นหาเส้นทางไปยังไฟล์ที่จะแก้ไข
Fred

4
ในกรณีของฉัน creator_uid มี "90210" แต่ UID ของฉันคือ 502 แทนที่จะเปลี่ยน UID ในไฟล์เป็น 0 ตามที่โซลูชันนี้แนะนำฉันเปลี่ยนเป็น 502 ทำงานได้ดี
LS

5
.vagrantโฟลเดอร์@NathanBasanese อยู่ในตำแหน่งเดียวกับที่คุณเรียกใช้vagrant up
Harish Reddy

34

พบปัญหานี้ในสถานการณ์ที่แตกต่างกันเล็กน้อย ปัญหาคือ ".vagrant" ถูกตรวจสอบใน git repo และ committer ทำงานภายใต้ UID ที่แตกต่างจากที่ฉันเป็น

วิธีแก้ไข: เพิ่ม. vagrant เป็น. gitignore


15
นี่คือปัญหาที่ฉันเผชิญ อย่างไรก็ตามการเพิ่ม.vagrantลงใน.gitignoreจะไม่สามารถแก้ปัญหาได้ - YMMV แต่git rm -rf .vagrantควรเรียกใช้ด้วย
Marco Massenzio

@marco: คุณพูดถูกจริงๆ ถ้า ".vagrant" ถูกเพิ่มใน repo การเพิ่มเป็น. gitignore หลังจากนั้นก็สายเกินไป :)
Chris Cogdon

8

ฉันพบปัญหาเดียวกัน แต่ในกรณีของฉันมันเป็นเพราะฉันวิ่งไปข้างvagrant upใต้sudoและเมื่อฉันกลับมาอ่านในภายหลังฉันก็ลืม

ความผิดพลาดโง่ ๆ แต่ฉันแน่ใจว่ามันไม่ใช่ครั้งแรกที่เกิดขึ้นกับใครบางคน :)


1
sudoปัญหาเดียวกันที่นี่ลืมที่จะทำงานภายใต้ แต่ข้อความแสดงข้อผิดพลาดไม่ได้บ่งบอกถึงสิ่งนั้นมากนัก
Zac Blazic

5

ฉันลองเปลี่ยน id ใน. vagrant \ Machines \ default \ virtualbox \ creator_uid แล้ว แต่ก็ใช้ไม่ได้ผลสำหรับฉัน แต่การลบไฟล์นั้นผู้สร้าง_uidก็ทำเคล็ดลับ



1

ตามคู่มือผู้ใช้ VirtualBox :

ตามมาตรการรักษาความปลอดภัยการติดตั้งระบบเครือข่ายภายในของ Linux อนุญาตให้ VM ที่ทำงานภายใต้ ID ผู้ใช้เดียวกันเท่านั้นที่จะสร้างเครือข่ายภายในได้

กล่าวอีกนัยหนึ่งคุณต้องเปลี่ยนไปใช้ root ( UID 0) เพื่อเรียกใช้งาน


10
ไม่ควรทำงานเป็น sudo เพียงแค่ลบไดเรกทอรี. vagrant ของคุณและเรียกใช้ในฐานะผู้ใช้ของคุณ
Jeremy

1

เป็นไปได้ที่คุณจะรันคำสั่ง: sudo vagrant up

ซึ่งหมายความว่าในฐานะผู้ใช้ปกติของคุณคุณไม่สามารถมองเห็นหรือลบ/.vagrantโฟลเดอร์และไฟล์ได้

ในกรณีนี้ให้เรียกใช้: sudo vagrant destroy -f

จากนั้นคุณควรจะสามารถเรียกใช้ (เป็นบัญชีผู้ใช้ปกติของคุณ): vagrant up



0

ฉันมีปัญหาเดียวกันหลังจากได้คอมพิวเตอร์เครื่องใหม่ แทนที่จะคัดลอกไฟล์ทั้งหมดจากคอมพิวเตอร์เครื่องเก่าฉันต้องตรวจสอบโครงการคนจรจัดอีกครั้งจากที่เก็บ git หลังจากนั้นvagrant upทำงานได้ดี


0

เพียงเพื่อเพิ่มคำตอบhttps://stackoverflow.com/a/32256848/2065804ของ Fred

ตรวจสอบให้แน่ใจว่าคุณได้เปลี่ยนเครื่องของ VM ที่ถูกต้อง ตัวอย่างเช่นชื่อ VM ของฉันไม่ใช่ค่าเริ่มต้น แต่เรียกว่า homestead-7

ดังนั้นเส้นทางที่ถูกต้องคือ:

.vagrant/machines/homestead-7/virtualbox/creator_uid

และไม่:

.vagrant/machines/default/virtualbox/creator_uid

ข้อผิดพลาดนี้เกิดขึ้นกับฉันเมื่อฉันเปลี่ยน Mac เป็น Mac เครื่องอื่น


0

ลบเนื้อหาของ. vagrant hidden dir ใน dir ที่ทำงานปัจจุบันและรันคำสั่ง vagrant up อีกครั้ง ข้อผิดพลาดเนื่องจากการคัดลอก / สำรอง Vagranfile / s จากระบบหนึ่งไปยังอีกระบบหนึ่ง รหัสผู้ใช้ไม่ตรงกันกับ Vagrant เพื่อสร้างสิ่งแวดล้อม .. หวังว่ามันจะช่วยไชโย .. !! :)) หากคุณไม่ต้องการลบโฟลเดอร์นั้นคุณสามารถอัปเดต uid ของผู้ใช้ปัจจุบันในไฟล์ใน dir ที่ซ่อนอยู่ของ dir ที่ทำงานปัจจุบันเช่น. vagrant / Machines / jenkins / virtualbox $ vim creator_uid



0

ฉันมีปัญหาเดียวกันกับที่ฉันลืมวางไว้sudoก่อนหน้าvagrant upนี้คุณต้องดำเนินการsudo vagrant upในโฟลเดอร์ของไฟล์คนจรจัดของคุณ


0

ฉันมีไฟล์ Multi-Machine vagrant ฉันตรวจสอบcreator_uidแล้ว0แต่ยังโหลดไม่ได้ ดังนั้นฉันจึงลบcreator_uidไฟล์สำหรับ Multi-Machine ทั้งหมดและใช้งานได้ เส้นทางควรเป็น.vagrant\machines\<machine_name>\virtualbox

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