/home/tnishinaga/TechMEMO

日々行ったこと、面白かったことを書き留めます。

Arch Linuxのマシンにvagrant-azureプラグインを入れる話

vagrantを使ってAzureに仮想マシンを建てようとしたらそれ以前のところで躓いたので備忘録として残しておきます。

問題が起こった環境

Arch Linux(x86_64)

$ yaourt vagrant
1 community/vagrant 1.9.5-1 [installed]
    Build and distribute virtualized development environments
2 community/vagrant-substrate 605.0566498-2 [installed]
    Substrate layer for Vagrant

問題1 : SEGVする

$ vagrant plugin install vagrant-azure --plugin-version '2.0.0.pre8'                                                                                                                                                   
Installing the 'vagrant-azure --version '2.0.0.pre8'' plugin. This can take a few minutes...                                                                                                                                                       
/opt/vagrant/embedded/lib/ruby/2.2.0/rubygems/source.rb:192: [BUG] Segmentation fault at 0x00000000000000                                                                                                                                          
ruby 2.2.5p319 (2016-04-26 revision 54774) [x86_64-linux] 

この問題はvagrant-substrateのバージョンをダウングレードして599.d7cedfe-2にすると回避できました。

arch linux - Install vagrant plugin on archlinux - Server Fault

ダウングレードにはAURにあるdowngraderを使いました。

パッケージのダウングレード - ArchWiki

$ downgrader vagrant-substrate
 Downgrade package: vagrant-substrate  
1: vagrant-substrate-605.056649/var/cache/pacman/pkg/vagrant-substrate-605.0566498-2-x86_64.pkg.tar.xz  (from cache)
2: vagrant-substrate-605.056649/var/cache/pacman/pkg/vagrant-substrate-605.0566498-1-x86_64.pkg.tar.xz  (from cache)
3: vagrant-substrate-599.d7cedfhttps://archive.archlinux.org/packages/v/vagrant-substrate/vagrant-substrate-599.d7cedfe-2-x86_64.pkg.tar.xz  [installed]
4: vagrant-substrate-599.d7cedfhttps://archive.archlinux.org/packages/v/vagrant-substrate/vagrant-substrate-599.d7cedfe-1-x86_64.pkg.tar.xz  (from ALA)
5: vagrant-substrate-582.d66af9https://archive.archlinux.org/packages/v/vagrant-substrate/vagrant-substrate-582.d66af96-2-x86_64.pkg.tar.xz  (from ALA)
6: vagrant-substrate-582.d66af9/var/cache/pacman/pkg/vagrant-substrate-582.d66af96-1-x86_64.pkg.tar.xz  (from cache)
7: vagrant-substrate-575.af2838https://archive.archlinux.org/packages/v/vagrant-substrate/vagrant-substrate-575.af28386-1-x86_64.pkg.tar.xz  (from ALA)
8: vagrant-substrate-569.8bb245https://archive.archlinux.org/packages/v/vagrant-substrate/vagrant-substrate-569.8bb245a-1-x86_64.pkg.tar.xz  (from ALA)
9: vagrant-substrate-554.977218https://archive.archlinux.org/packages/v/vagrant-substrate/vagrant-substrate-554.9772186-2-x86_64.pkg.tar.xz  (from ALA)
10: vagrant-substrate-554.977218https://archive.archlinux.org/packages/v/vagrant-substrate/vagrant-substrate-554.9772186-1-x86_64.pkg.tar.xz  (from ALA)
11: vagrant-substrate-526.6bb2e8https://archive.archlinux.org/packages/v/vagrant-substrate/vagrant-substrate-526.6bb2e80-1-x86_64.pkg.tar.xz  (from ALA)
12: vagrant-substrate-524.64c526https://archive.archlinux.org/packages/v/vagrant-substrate/vagrant-substrate-524.64c5261-2-x86_64.pkg.tar.xz  (from ALA)
13: vagrant-substrate-524.64c526https://archive.archlinux.org/packages/v/vagrant-substrate/vagrant-substrate-524.64c5261-1-x86_64.pkg.tar.xz  (from ALA)
>> Please enter package number, [q] to quit 

downgraderを使うとこんな感じにダウングレードできるバージョンを教えてくれるので、左の番号を入力してダウングレードを行います。

今回は599.d7cedfe-2になって欲しいので、3を入力してエンターを押すとダウングレードが始まります。

問題2: mime-typesがバージョンコンフリクトを起こす

$ vagrant plugin install vagrant-azure                                                        
Installing the 'vagrant-azure' plugin. This can take a few minutes...                                                    
/opt/vagrant/embedded/lib/ruby/2.2.0/rubygems/specification.rb:2100:in `check_version_conflict': can't activate mime-types-2.99.3, already activated mime-types-3.1 (Gem::LoadError)

こんなエラーが出ます。

Arch以外の環境の人も同じ問題にハマっているようです。

Plugin fails to install with vagrant 1.9.1 · Issue #150 · Azure/vagrant-azure · GitHub

この問題は、プラグインのバージョンを指定したら回避できました。

vagrant plugin install vagrant-azure --plugin-version '2.0.0.pre8'

おわり

とりあえずこれで問題はすべて回避できたはずです。

明日からようやくvagrantでAzureに仮想マシン建てる作業に入れそうです……