$ curl -L https://www.opscode.com/chef/install.sh | sudo bash
または
$ sudo gem install chef --verbose
$ sudo gem install knife-solo --verbose
だと、以下のエラーがでた。
Successfully installed libyajl2-1.2.0
Installing gem ffi-yajl-2.3.0
Downloading gem ffi-yajl-2.3.0.gem
GET https://rubygems.org/gems/ffi-yajl-2.3.0.gem
Fetching: ffi-yajl-2.3.0.gem (100%)
200 OK
ERROR: Error installing knife-solo:
ffi-yajl requires Ruby version >= 2.1.
バージョンが古いと 新しいRubyを要求される。
バージョンを上げる
Rubyのバージョンを上げる
CentOS7.0
rbenvを利用してパッケージ管理できるようにするため、
最初からインストールされているrubyは削除する。
[vagrant@localhost ~]$ sudo yum -y remove ruby
[vagrant@localhost ~]$ ruby -v
-bash: /usr/bin/ruby: そのようなファイルやディレクトリはありません
[vagrant@localhost ~]$ gem -v
-bash: /usr/bin/gem: そのようなファイルやディレクトリはありません
rbenvはgit cloneするため、gitインストールしておく
[vagrant@localhost ~]$ sudo yum install git
[vagrant@localhost ~]$ git --version
git version 1.8.3.1
rbenvをインストールする
[vagrant@localhost ~]$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
Cloning into '/home/vagrant/.rbenv'...
remote: Counting objects: 2542, done.
remote: Total 2542 (delta 0), reused 0 (delta 0), pack-reused 2542
Receiving objects: 100% (2542/2542), 461.07 KiB | 101.00 KiB/s, done.
Resolving deltas: 100% (1598/1598), done.
[vagrant@localhost ~]$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
[vagrant@localhost ~]$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
[vagrant@localhost ~]$ source ~/.bash_profile
[vagrant@localhost ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
ruby_buildをインストールする
[vagrant@localhost ~]$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
Cloning into '/home/vagrant/.rbenv/plugins/ruby-build'...
remote: Counting objects: 6993, done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 6993 (delta 2), reused 0 (delta 0), pack-reused 6981
Receiving objects: 100% (6993/6993), 1.36 MiB | 162.00 KiB/s, done.
Resolving deltas: 100% (4153/4153), done.
[vagrant@localhost ~]$ cd ~/.rbenv/plugins/ruby-build
[vagrant@localhost ruby-build]$ sudo ./install.sh
[vagrant@localhost ruby-build]$ rbenv -v
rbenv 1.0.0-33-gc7dcaf1
Ruby の最新版をインストールする
インストール可能なバージョンを確認する
$ rbenv install -l
2.3.0-dev
2.3.0-preview1
2.3.0-preview2
2.3.0
2.3.1
2.4.0-dev
2.4.0-preview1
2.4.0-preview2
2.4.0-preview3
2016年11月14日時点で、安定版の最新は 2.3.1 なので、それをインストールする。
[vagrant@localhost ruby-build]$ rbenv install 2.3.1
Downloading ruby-2.3.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.bz2
Installing ruby-2.3.1...
Installed ruby-2.3.1 to /home/vagrant/.rbenv/versions/2.3.1
[vagrant@localhost ruby-build]$ rbenv rehash
[vagrant@localhost ruby-build]$ rbenv global 2.3.1
バージョン確認
[vagrant@localhost ruby-build]$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
[vagrant@localhost ruby-build]$ which ruby
~/.rbenv/shims/ruby
[vagrant@localhost ruby-build]$ which gem
~/.rbenv/shims/gem
[vagrant@localhost ruby-build]$ gem -v
2.5.1
Mac OS (El Captain)
rbenvでRubyをインストールする
brew をupdate て必要なソフトをインストールする
$ brew update
$ brew install openssl
$ brew install readline
$ brew install rbenv
$ brew install rbenv-gemset
$ rbenv --version
rbenv 1.0.0
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
rbenvが見ているバージョンを確認する
$ rbenv versions
* system (set by /Users/hogehoge/.rbenv/version)
Ruby の最新版をインストールする
インストール可能なバージョンを確認する
$ rbenv install -l
2.3.0-dev
2.3.0-preview1
2.3.0-preview2
2.3.0
2.3.1
2.4.0-dev
2.4.0-preview1
2.4.0-preview2
2.4.0-preview3
インストール前のrubyバージョンを確認しておく
(El Captainだと 2.0.0になってる)
$ ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]
2016年11月14日時点で、安定版の最新は 2.3.1 なので、それをインストールする。
$ rbenv install 2.3.1
$ rbenv rehash
rehashしたけど、まだ変わっていない
$ ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]
見ているバージョンがsysytemとなっている
$ rbenv versions
* system (set by /Users/hogehoge/.rbenv/version)
2.3.1
グローバルのバージョン指定を行うと切り替わる
$ rbenv global 2.3.1
$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]
Chefをインストールする
$ gem install chef --verbose
Successfully installed chef-12.16.42
Parsing documentation for chef-12.16.42
Parsing sources...
100% [822/822] lib/chef/workstation_config_loader.rb
Done installing documentation for chef after 25 seconds
1 gem installed
ツールをインストールする
knife-solo
$ gem install knife-solo --verbose
100% [50/50] lib/knife-solo/tools.rb
Installing ri documentation for knife-solo-0.6.0
Done installing documentation for mixlib-shellout, mixlib-config, fuzzyurl, public_suffix, addressable, chef-config, mixlib-cli, mixlib-log, mixlib-authentication, mixlib-archive, systemu, libyajl2, ffi-yajl, plist, ipaddress, wmi-lite, ffi, ohai, net-ssh, net-ssh-gateway, net-ssh-multi, net-sftp, highline, erubis, diff-lcs, hashie, uuidtools, rack, chef-zero, iniparse, rspec-support, rspec-core, rspec-expectations, rspec-mocks, builder, rspec_junit_formatter, rspec, rspec-its, multi_json, net-scp, sfl, specinfra, serverspec, syslog-logger, proxifier, bundler, chef, knife-solo after 72 seconds
48 gems installed
macだと以下のメッセージが出たので対応した
If you run into any issues please let us know at:
https://github.com/matschaffer/knife-solo/issues
If you are upgrading knife-solo please uninstall any old versions by
running `gem clean knife-solo` to avoid any errors.
See http://bit.ly/CHEF-3255 for more information on the knife bug
that causes this.
Successfully installed knife-solo-0.6.0
Parsing documentation for knife-solo-0.6.0
Parsing sources...
100% [50/50] lib/knife-solo/tools.rb
Installing ri documentation for knife-solo-0.6.0
Done installing documentation for knife-solo after 1 seconds
1 gem installed
$ gem clean knife-solo
Cleaning up installed gems...
Clean Up Complete
berkshelf
$ gem install berkshelf --verbose
Done installing documentation for multipart-post, faraday, httpclient, buff-extensions, varia_model, buff-config, buff-ignore, buff-ruby_engine, buff-shell_out, hitimes, timers, celluloid, nio4r, celluloid-io, retryable, semverse, ridley, berkshelf-api-client, cleanroom, minitar, molinillo, solve, thor, sawyer, octokit, berkshelf after 16 seconds
26 gems installed
vagrantのプラグインをインストールする
$ vagrant plugin install vagrant-omnibus
Installing the 'vagrant-omnibus' plugin. This can take a few minutes...
Installed the plugin 'vagrant-omnibus (1.5.0)'!
$ vagrant plugin install vagrant-vbguest
Installing the 'vagrant-vbguest' plugin. This can take a few minutes...
Installed the plugin 'vagrant-vbguest (0.13.0)'!