बेस बॉक्स को पुनर्निर्माण करें। सबसे पहले, बिना प्रावधान और एसएसएच के इसे लाएं।
vagrant up --no-provision
vagrant ssh
फिर, बॉक्स को अपडेट करने के लिए आवश्यक आदेशों को निष्पादित करें। इसमें शेफ और रूबी अपडेट करना शामिल हो सकता है। वैकल्पिक रूप से, ओएस, आदि के लिए पैकेज अपडेट करें। आपको आवश्यक सभी चीज़ों के बॉक्स को साफ करना चाहिए, जैसे कि डाउनलोड की गई पैकेज फ़ाइलें या कैश।
उदाहरण के लिए, मैं अपने Vagrant बक्से में Opscode Omnibus Full Stack Installer for Chef (मूल रूप से VeeWee के साथ बनाया गया है) का उपयोग, और मैं भी संकुल अद्यतन करते हैं,।
sudo dpkg --purge chef chef-full
sudo true && curl -L https://www.opscode.com/chef/install.sh | sudo bash
sudo apt-get update && sudo aptitude safe-upgrade
sudo rm /var/cache/apt/archives/*.deb
आकार को कम करने के लिए डिस्क को "शून्य" मत भूलना।
# a bunch of commands like gem install chef, apt-get upgrade, whatever
sudo dd if=/dev/zero of=/EMPTY bs=1M
sudo rm /EMPTY
exit
फिर, बॉक्स को पैकेज करें और इसे उपयोग के लिए अपने Vagrant वातावरण में जोड़ें।
vagrant package
vagrant box add mynewlucid32 package.box
आप एक ही बॉक्स नाम का उपयोग करना चाहते हैं, तो आप मौजूदा बॉक्स को हटाने के लिए (~/.vagrant.d/बॉक्स/BOXNAME) पहले की आवश्यकता होगी।
इसे वोट दिया जाना चाहिए, और संभवतः सही उत्तर के रूप में चिह्नित किया जाना चाहिए बल्कि पुराने वर्तमान में सही सही जवाब दिया गया है। – jimeh
हां। यह धागे के लिए सही जवाब है क्योंकि यह उबंटू मशीन होने पर बॉक्स पर निर्भर नहीं है। एक पूर्ण कामकाजी उदाहरण के लिए [मेरे रेपो की जांच करें] (https://github.com/elgalu/jenkins-box-for-travis/blob/74c56b7/Vagrantfile#L25) –
क्या यह काम करता है यदि आप 'नवीनतम' को प्रतिस्थापित करते हैं विशिष्ट संस्करण? –