مشکل نصب پلاگین برای Vagrant

در دبیان و اوبونتو زمانی که بسته Vagrant را نصب می کنید همه وابستگی های لازم برای اجرای بخشهای مختلف این نرم افزار نصب نمی شود. علاوه بر آن یک باگ شناخته شده وجود دارد که هنوز در مخازن اصلاح نشده است. محیط تست من ubuntu 16.04 است. یکی از مشکلات برای من زمان نصب پلاگین vagrant-share پیش اومد. زمانی که می خواستم دستور زیر را اجرا کنم با خطا مواجه می شدم:

vagrant plugin install vagrant-share

خطایی که داده می شد

Installing the ‘share’ plugin. This can take a few minutes… /usr/lib/ruby/2.3.0/rubygems/specification.rb:946:in `all=’: undefined method `group_by’ for nil:NilClass (NoMethodError) from /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb:275:in `with_isolated_gem’ from /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb:231:in `internal_install’ from /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb:102:in `install’ from /usr/lib/ruby/vendor_ruby/vagrant/plugin/manager.rb:62:in `block in install_plugin’ from /usr/lib/ruby/vendor_ruby/vagrant/plugin/manager.rb:72:in `install_plugin’ from /usr/share/vagrant/plugins/commands/plugin/action/install_gem.rb:37:in `call’ from /usr/lib/ruby/vendor_ruby/vagrant/action/warden.rb:34:in `call’ from /usr/lib/ruby/vendor_ruby/vagrant/action/builder.rb:116:in `call’ from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:66:in `block in run’ from /usr/lib/ruby/vendor_ruby/vagrant/util/busy.rb:19:in `busy’ from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:66:in `run’ from /usr/share/vagrant/plugins/commands/plugin/command/base.rb:14:in `action’ from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:32:in `block in execute’ from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:31:in `each’ from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:31:in `execute’ from /usr/share/vagrant/plugins/commands/plugin/command/root.rb:56:in `execute’ from /usr/lib/ruby/vendor_ruby/vagrant/cli.rb:42:in `execute’ from /usr/lib/ruby/vendor_ruby/vagrant/environment.rb:268:in `cli’ from /usr/bin/vagrant:173:in `<main>’

در مرحله اول این خطا مربوط به یک باگ در vagrant است که هنوز در مخازن به روز رسانی نشده. این باگ را با دستور زیر می توانید بر طرف کنید.

sed -i” “s/Specification.all = nil/Specification.reset/” /usr/lib/ruby/vendor_ruby/vagrant/bundler.r

بعد اصلاح این باگ با خطای زیر روبرو می شوید

Installing the ‘vagrant-share’ plugin. This can take a few minutes… Bundler, the underlying system Vagrant uses to install plugins, reported an error. The error is shown below. These errors are usually caused by misconfigured plugin installations or transient network issues. The error from Bundler is:

An error occurred while installing nokogiri (1.7.2), and Bundler cannot continue. Make sure that `gem install nokogiri -v ‘1.7.2’` succeeds before bundling.

Warning: this Gemfile contains multiple primary sources. Using `source` more than once without a block is a security risk, and may result in installing unexpected gems. To resolve this warning, use a block to indicate which gems should come from the secondary source. To upgrade this warning to an error, run `bundle config disable_multisource true`.Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

 

که به مشکل وابستگی های  بر می گرده. برای رفع این مشکل به ترتیب زیر عمل کنید

export NOKOGIRI_USE_SYSTEM_LIBRARIES=true
apt-get install libxml2-dev libxslt1-dev libxml2 libxslt1.1
vagrant plugin install vagrant-share

در صورتی که همه کارها درست انجام شده باشد خروجی زیر را خواهید دید

Installing the ‘vagrant-share’ plugin. This can take a few minutes… Installed the plugin ‘vagrant-share (1.1.6)’!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *