2014年02月

ruby 2.1.1 入り td-agent rpm を作ろうとしてドはまりしてたメモ

ruby 2.1.1 入りの td-agent rpm を作ろうとしたらハマりにハマったのでメモ。

1. ハマりたくなかったので vagrant を使って真っさらな環境を用意してビルド。結局ハマったけど

$ vagrant box add cenos-6.4 https://github.com/2creatives/vagrant-centos/releases/download/v0.1.0/centos64-x86_64-20131030.box
$ vagrant init centos-6.4
$ vagrant up
$ vagrant ssh

2. td-agent レポジトリを clone

$ sudo yum install -y git
$ git clone https://github.com/treasure-data/td-agent.git
$ cd td-agent

3. ruby のバージョンを 2.1.1 に変更。今回は一緒に coolio, msgpack のバージョンもあげた。ruby 2.0 以上だと bundler も 1.3  以上じゃないとダメとエラーがでたのでそちらもあげた

追記:
[重要] ruby 2.1.1 にしたところメモリ使用量があがり続けたため色々テスト中 => ロングランさせたら最終的には安定した。

autogen.sh

 diff --git a/autogen.sh b/autogen.sh
index d489fae..1e68951 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -29,12 +29,12 @@ mkdir -p deps/ruby
 mkdir -p plugins
 cd deps
 download "http://www.canonware.com/download/jemalloc" "jemalloc-2.2.5.tar.bz2"
-download "http://ftp.ruby-lang.org/pub/ruby/1.9" "ruby-1.9.3-p484.tar.bz2"
+download "http://ftp.ruby-lang.org/pub/ruby/2.1" "ruby-2.1.1.tar.bz2"
-download "http://rubygems.org/downloads" "bundler-1.2.5.gem"
+download "http://rubygems.org/downloads" "bundler-1.5.3.gem"
 download "http://rubygems.org/downloads" "json-1.7.7.gem"
-download "http://rubygems.org/downloads" "msgpack-0.4.7.gem"
+download "http://rubygems.org/downloads" "msgpack-0.5.6.gem"
 download "http://rubygems.org/downloads" "iobuffer-1.1.2.gem"
-download "http://rubygems.org/downloads" "cool.io-1.1.1.gem"
+download "http://rubygems.org/downloads" "cool.io-1.2.1.gem"
 download "http://rubygems.org/downloads" "http_parser.rb-0.5.1.gem"
 download "http://rubygems.org/downloads" "yajl-ruby-1.1.0.gem"
 download "http://rubygems.org/downloads" "jeweler-1.6.2.gem"

1.9.3 から 2.1.1 に上げると gems のパスも変わるので一緒に変更。2.1.1 だけど 2.1.0 なの注意な。

$ sed -i 's/1.9.1/2.1.0/g' Makefile.am

4. fluentd のリビジョンも最新 v0.10.44 に変更

REVISION

-098fea17aedab0ebf58aa55ace76d14ad0889262
+1229278fe48ddc449ad501aa9c114b4597a794da

5. ビルド

ドハマりしたけどとりあえず結論だけ書く

$ sudo rpm -ivh http://packages.treasure-data.com/redhat/x86_64/td-libyaml-0.1.4-1.x86_64.rpm
$ echo '%__arch_install_post %{nil}' > ~/.rpmmacros # ここは直すべき
$ touch redhat/td-agent.conf.custom # ここは直すべき
$ sudo ./make-rpm.sh

「ここは直すべき」に関しては @repeatedly 氏が直してくれるに違いない。もう疲れたょ....

 

ここに辿りつくまでの軌跡







結論

ひろせさん、マジひろせさん
恐ろしい御方やで...

FYI: まとめはこちら => 原因と対策まとめ by hirose31

関連リンク集

Docker on CentOS 6.5 で詰んだのでメモ

深淵な理由により Ubuntu 環境ではなく CentOS 6.5 環境で docker を試していたのだが、docker build を繰り返していたらディスクが足りなくなって「あるある事案だな」とか思いながら、 @znz さんの Dockerで不要になったコンテナやイメージを削除する の記事を参考にして、

コンテナ削除

docker rm `docker ps -a -q`

docker images 削除

docker rmi $(docker images | awk '/^<none>/ { print $3 }')

とかやったのだが、df でみてもディスクが解放されていない。 どこが解放されていないのか du で確認していったところ devicemapper ディレクトリとやらがでかかった。

[vagrant@localhost var]$ sudo du -h /var/lib/docker --max-depth=1
3.9M    /var/lib/docker/init
4.0K    /var/lib/docker/volumes
256K    /var/lib/docker/graph
39G /var/lib/docker/devicemapper
12K /var/lib/docker/containers
39G /var/lib/docker

なぜ解放されないのかぐぐったところ、docker のこちらの issue をみつけた。

Device-mapper does not release free space from removed images #3182

直ったらしいのだが、linux kernel のバグなので linux kernel もアップデートする必要があるらしい。

Still exist in 0.7.5 on ubuntu 13.04.

ということで Ubuntu 13.04 でもダメらしく、

What is the work around to remove space. I am using rhel 6.5 and it might be a while to get the new kernel.

@logicminds There is no super easy way to recover the space atm. Technically it should be possible to manually re-sparsify the loopback files. But that would require all the non-used blocks to be zeroed or something for easily detection of the sparse areas, which is not done on thinp device removal.

RHEL/CentOS 6.5 でもダメらしい。詰んだ。Ubuntu は新しいのが出てるので望みある。

Thoughts

Docker のバグは得てして Linux kernel の LXC Container まわりのバグだったりするので、最新の Linux Kernel を追える体制を作っておかないと、実運用などできないな、と思った。

そういうことを考えると linux kernel のバージョンが 3.x 系ではなく 2.x 系のままの RHEL/CentOS で docker を運用するのはエッジ攻めれないのでつらたんですね、という結論。

こちらからは以上です。

ruby と mongodb, mysql, redis, memcached を入れた docker イメージを作ったメモ

ruby が色々入っている docker イメージを作っておいたメモ の続き。 深遠な理由により Ubuntu ではなく CentOS 6.5 環境で作業中。

昨日に続いてさらに、mongodb, mysql, redis, memcached を入れてみた。できた Dockerfile はこちら

FROM centos
# packages
RUN yum groupinstall -y "Development tools"
RUN yum -y install openssl openssl-devel readline-devel readline compat-readline5 libxml2-devel libxslt-devel libyaml-devel git
# rbenv
RUN git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
RUN mkdir -p ~/.rbenv/plugins && git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
RUN echo -e 'export PATH=~/.rbenv/bin:$PATH\neval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh && source /etc/profile.d/rbenv.sh
# ruby
ENV CONFIGURE_OPTS --disable-install-doc
RUN bash -lc '~/.rbenv/plugins/ruby-build/bin/ruby-build 1.9.3-p545 ~/.rbenv/versions/1.9.3'
RUN bash -lc '~/.rbenv/plugins/ruby-build/bin/ruby-build 2.0.0-p451 ~/.rbenv/versions/2.0.0'
RUN bash -lc '~/.rbenv/plugins/ruby-build/bin/ruby-build 2.1.1 ~/.rbenv/versions/2.1'
# bundler for all ruby
RUN echo 'gem: --no-rdoc --no-ri' >> /.gemrc
RUN bash -lc 'for v in 1.9.3 2.0.0 2.1; do rbenv global $v; gem install bundler; done'
# mongodb (2.4.9)
RUN rpm -ivh http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/RPMS/mongo-10gen-2.4.9-mongodb_1.x86_64.rpm http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/RPMS/mongo-10gen-server-2.4.9-mongodb_1.x86_64.rpm
RUN echo 'smallfiles = true' >> /etc/mongod.conf # make journal small
RUN /etc/init.d/mongod start && /etc/init.d/mongod stop
# memcached (1.4.4-3.el6)
RUN echo "NETWORKING=yes" >/etc/sysconfig/network
RUN yum -y install memcached
RUN /etc/init.d/memcached start && /etc/init.d/memcached stop
# mysql (5.5.36-1)
RUN rpm -ivh  http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
RUN rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
RUN yum -y install mysql-server --enablerepo=remi
RUN /etc/init.d/mysqld start && /etc/init.d/mysqld stop
# redis (2.8.6)
RUN wget http://download.redis.io/releases/redis-2.8.6.tar.gz && tar xzf redis-2.8.6.tar.gz && cd redis-2.8.6 && make && make install
RUN sed 's/daemonize no/daemonize yes/' redis-2.8.6/redis.conf > /etc/redis.conf
#RUN /usr/local/bin/redis-server /etc/redis.conf


メモなので躱したエラーを記す

/etc/sysconfig/network: No such file or directory

memcached を起動しようとすると

/etc/init.d/memcached: line 26: /etc/sysconfig/network: No such file or directory

というエラーが出るので、

RUN echo "NETWORKING=yes" >/etc/sysconfig/network

として /etc/sysconfig/network を作っておく必要があった。これは FROM centos だとアルアルな話っぽい。

ulimit: open files: cannot modify limit: Operation not permitted

mongodb を start しようとすると、

ulimit: open files: cannot modify limit: Operation not permitted

というエラーが出るので、/etc/init.d/docker の上のほうに

ulimit -n 65535

を追記& restart しておき、docker プロセスそのものが扱える limit を引き上げておく必要があった

Failed to upload layer: Put https://registry-1.docker.io

出来た!と思って docker push しようとした所

f60f2f8c5063: Pushing [================================>                  ] 166.7 MB/257.8 MB 1m5s
2014/02/26 19:32:35 Failed to upload layer: Put https://registry-1.docker.io/v1/images/f60f2f8c506316a4cf5d2e2af1c45b1457be5ef0c0a8f0c6197b07bad7b020ef/layer: EOF

というエラーが出た。でかすぎる commit を Put しようとすると出る?

ぐぐったら stackoverflow の記事 が引っかかったので見てみた所、

I upgraded Docker from 0.7.3 to 0.7.5 and this error stopped.

とのことで docker -v したら 0.8.0 だったので特に関係なかった。

しかし、mongo を起動したらいきなり 5GB にイメージサイズが膨れ上がったのも事実だったので、

RUN echo 'smallfiles = true' >> /etc/mongod.conf # make journal small

を追加して、journal のファイルサイズを小さくした所、2.4GB ぐらいでフィニッシュして、docker push もできるようになった。

(追記) start が意味ない

あらかじめ起動状態にしておきたいと思って、RUN /etc/init.d/mongod start などとしておいたが、docker run -i -t sonots/docker-ruby bash して中に入って確認してみた所、起動していなかった。/sbin/chkconfig mongod on としてみたりもしたがやはり起動していなかった。

バックグラウンドサービスは起動しておけないのかな。

ということで、

RUN /etc/init.d/mongod start && /etc/init.d/mongod stop 

のようにして初回起動時に作られるファイルだけあらかじめ作っておき終了して、あとは実際に使うときに起動することにした。 

できたもの

できたものは https://index.docker.io/u/sonots/docker-ruby/ にあります。 結構サイズ大きいので注意(2.4GB)

ruby が色々入っている docker イメージを作っておいたメモ

ruby が色々入っている docker イメージを作っておいた。自分のために一回まとめておく。

Docker は Ubuntu 推奨だが、深淵な理由により Vagrant で CentOS 6.5 環境で動くことを確認しながら作業。

vagrant box add centos-6.5 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box
vagrant init centos-6.5

Vagrant の CentOS 6.5 環境はネットワークが遅延してすごく遅くなるっぽいので以下のような Vagrantfile で対応。

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "centos-6.5"
  config.vm.box_url = "https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box"
  config.vm.network :private_network, ip: "192.168.33.10"
  config.vm.synced_folder ".", "/vagrant", nfs: true
  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--cpus", "4"]
    vb.customize ["modifyvm", :id, "--memory", "2048"]
    # IPv6とDNSでのネットワーク遅延対策で追記
    vb.customize ["modifyvm", :id, "--natdnsproxy1", "off"]
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "off"]
  end
end

マシンに入って Docker のインストール.

sudo yum install docker-io
sudo /etc/init.d/docker start

Dockerfile の作成. こんなかんじにして、1.9.3, 2.0.0, 2.1 を pre-install しておくことにした。 ポイントはdocker 内で環境変数を使おうと思ったら普通は ENV を使うんだけど docker commit すると消えてしまうのがめんどくさいので、/etc/profile.d/rbenv.sh に書いておいて bash -lc してコマンドを打つ事で使えるようにしている点と、
 ruby-build(rbenv)でビルド時に名前を指定する のテクニックを使って patch level を省略して rbenv local 1.9.3 のように使えるようにしているところかな。

FROM centos
# packages
RUN yum groupinstall -y "Development tools"
RUN yum -y install openssl openssl-devel readline-devel readline compat-readline5 libxml2-devel libxslt-devel libyaml-devel git
# rbenv
RUN git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
RUN mkdir -p ~/.rbenv/plugins && git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
RUN echo -e 'export ATH=~/.rbenv/bin:$PATH\neval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh
# ruby
ENV CONFIGURE_OPTS --disable-install-doc
RUN bash -lc '~/.rbenv/plugins/ruby-build/bin/ruby-build 1.9.3-p545 ~/.rbenv/versions/1.9.3'
RUN bash -lc '~/.rbenv/plugins/ruby-build/bin/ruby-build 2.0.0-p451 ~/.rbenv/versions/2.0.0'
RUN bash -lc '~/.rbenv/plugins/ruby-build/bin/ruby-build 2.1.1 ~/.rbenv/versions/2.1'
# bundler for all ruby
RUN echo 'gem: --no-rdoc --no-ri' >> /.gemrc
RUN bash -lc 'for v in 1.9.3 2.0.0 2.1; do rbenv global $v; gem install bundler; done'

ビルド

docker build -t sonots/ruby .

プッシュ

docker push sonots/ruby

したものがこちらにあります => https://index.docker.io/u/sonots/ruby/

これにさらに mongo, mysql, redis, memcached などを加えて travis のコンテナっぽくして、@takus のDocker/Drone を CentOS 6.5 で動かして Github Enterprise のリポジトリをテストする環境を使ってテストを流せるようにする予定。# travis は Docker ではないが、こんなかんじで各言語ごとに1コンテナ用意しているらしい。たぶん。

続き: ruby と mongodb, mysql, redis, memcached を入れた docker イメージを作ったメモ

 

An error occurred while installing atomic (1.1.14)

Mac OSX を Marverics に入れて Xcode Command Line Tools を入れ直したら、multi_json gem が依存している atomic gem のインストール(ビルド)でこけた

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/bin/ruby extconf.rb
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/bin/ruby
--with-atomic_reference-dir
--without-atomic_reference-dir
--with-atomic_reference-include
--without-atomic_reference-include=${atomic_reference-dir}/include
--with-atomic_reference-lib
--without-atomic_reference-lib=${atomic_reference-dir}/
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/mkmf.rb:430:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
from /Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/mkmf.rb:515:in `try_link0'
from /Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/mkmf.rb:813:in `try_run'
from extconf.rb:26:in `<main>'


Gem files will remain installed in /Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14 for inspection.
Results logged to /Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/ext/gem_make.out
An error occurred while installing atomic (1.1.14), and Bundler cannot continue.
Make sure that `gem install atomic -v '1.1.14'` succeeds before bundling. 


-V オプションを付けて gem install atomic してみる。以下の情報が増えたが結局あまり役にたたず

$ gem install atomic -V
HEAD https://rubygems.org/latest_specs.4.8.gz
302 Moved Temporarily
HEAD https://s3.amazonaws.com/production.s3.rubygems.org/latest_specs.4.8.gz
200 OK
GET https://rubygems.org/latest_specs.4.8.gz
302 Moved Temporarily
GET https://s3.amazonaws.com/production.s3.rubygems.org/latest_specs.4.8.gz
200 OK
Installing gem atomic-1.1.14
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/test/test_atomic.rb
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/ext/extconf.rb
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/.gitignore
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/.travis.yml
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/LICENSE
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/README.md
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/Rakefile
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/atomic.gemspec
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/examples/atomic_example.rb
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/examples/bench_atomic.rb
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/examples/bench_atomic_1.rb
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/examples/graph_atomic_bench.rb
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/ext/AtomicReferenceService.java
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/ext/atomic_reference.c
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/ext/org/jruby/ext/atomic/AtomicReferenceLibrary.java
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic.rb
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/concurrent_update_error.rb
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/delegated_update.rb
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/direct_update.rb
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/fallback.rb
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/jruby.rb
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/numeric_cas_wrapper.rb
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/rbx.rb
/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/ruby.rb
Building has failed. See above output for more information on the failure.
...skipping...
Building native extensions.  This could take a while...


mkmf.log を見てみる

$ less /Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/ext/mkmf.log
"gcc-4.2 -o conftest -I/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/x86_64-darwin12.2.1 -I/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/backward -I/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/include/ruby-2.0.0 -I. -I'/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/include'  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT    -O3 -Wno-error=shorten-64-to-32  -pipe conftest.c  -L. -L/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib -L. -L'/Users/seo.naotoshi/.rbenv/versions/2.0.0-p247/lib'  -L/usr/local/lib     -lruby-static  -lpthread -ldl -lobjc "
sh: gcc-4.2: command not found
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

gcc-4.2 がないらしい。
$ which gcc
/usr/bin/gcc
$ gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix
$ which gcc-4.2
gcc-4.2 not found
$ ls -l /usr/bin/gcc-4.2
lrwxr-xr-x  1 root  wheel  21  2 17 00:33 /usr/bin/gcc-4.2 -> /usr/bin/llvm-gcc-4.2
$ ls -l /usr/bin/llvm-gcc-4.2
ls: /usr/bin/llvm-gcc-4.2: No such file or directory 

なんかないので、/usr/bin/gcc へのシンボリックリンクに変えてみる
$ sudo ln -sf /usr/bin/gcc /usr/bin/gcc-4.2
$ gem install atomic -V
atomic_reference.c:53:9: warning: implicit declaration of function 'OSAtomicCompareAndSwap64' is invalid in C99 [-Wimplicit-function-declaration]
    if (OSAtomicCompareAndSwap64(expect_value, new_value, &DATA_PTR(self))) {
        ^
1 warning generated.
linking shared-object atomic_reference.bundle
make "DESTDIR=" install
/usr/bin/install -c -m 0755 atomic_reference.bundle ./.gem.20140221-8891-3ji9vb
installing default atomic_reference libraries

Successfully installed atomic-1.1.14
1 gem installed


なんか warning は出たけど入ったっぽい :D 
 
 

 
A Ruby and Fluentd committer working at DeNA. 記事本文および記事中のコード片は引用および特記あるものを除いてすべて修正BSDライセンスとします。 #ruby #fluentd #growthforecast #haikanko #yohoushi #specinfra #serverspec #focuslight
はてぶ人気エントリー