「Bundler::GemspecError: Could not read gem at 〜. It may be corrupted.」のエラー発生

bundle時にエラーが発生

Bundler::GemspecError: Could not read gem at /home/vagrant/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/cache/nokogiri-1.6.6.2.gem. It may be corrupted.
An error occurred while installing nokogiri (1.6.6.2), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.6.2'` succeeds before bundling.

cacheが読めない?
nokogiriのキャッシュが2つあったので、両方消してみました

$ rm -rf /home/vagrant/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/cache/nokogiri-1.6.*

$ bundle

これでうまく行きました

Gemfileにgemspecしか書いてないのは?

gemを改造しようかと思って、gemが上がってたgithubからcloneしてGemfileを見ると

$ vim Gemfile

source 'http://rubygems.org'
gemspec

とだけ書いてありましたが

$ bundle

コマンド打つといろいろインストールされる..

ディレクトリ名.gemspecにいろいろインストールされるものが書かれてました
これが実行されるようです

gemspecで依存関係が表せるようです
bundler – gemライブラリの依存はGemfileではなくgemspecに記述する理由 – Qiita

gem pgインストール時にエラー

vagrant上のUbuntuでails + postgresqlをインストールしました

事前にpostgresqlをインストール

$ sudo apt-get install postgresql postgresql-contrib

Gemfileに

pg

を追記して

$ bundle install

エラー発生

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /home/vagrant/.rbenv/versions/2.2.0/bin/ruby -r ./siteconf20150331-4671-5j34dh.rb extconf.rb 
checking for pg_config... yes
Using config values from /usr/bin/pg_config
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** 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=/home/vagrant/.rbenv/versions/2.2.0/bin/$(RUBY_BASE_NAME)
        --with-pg
        --without-pg
        --enable-windows-cross
        --disable-windows-cross
        --with-pg-config
        --without-pg-config
        --with-pg_config
        --without-pg_config
        --with-pg-dir
        --without-pg-dir
        --with-pg-include
        --without-pg-include=${pg-dir}/include
        --with-pg-lib
        --without-pg-lib=${pg-dir}/lib

extconf failed, exit code 1

Gem files will remain installed in /home/vagrant/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/pg-0.18.1 for inspection.
Results logged to /home/vagrant/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/extensions/x86-linux/2.2.0-static/pg-0.18.1/gem_make.out
Installing html2slim 0.2.0
Installing unf 0.1.4
An error occurred while installing pg (0.18.1), and Bundler cannot continue.
Make sure that `gem install pg -v '0.18.1'` succeeds before bundling.

libpq-devが足りなかったみたい

$ sudo apt-get install libpq-dev

で、再度実行でうまくいきました

UbuntuでPostgreSQLのgemインストールでエラー

Ubuntu 14.04でrailsでPostgreSQLを使おうと
まずpostgresqlをインストール
$ sudo apt-get install postgres

パスワードつけて
$ sudo passwd postgres
$ sudo -u postgres psql -c “ALTER USER postgres PASSWORD ‘postgres’;”

Gemを入れるため
$ vim Gemfile
gem ‘pg’

を追記

インストールでエラー発生
$ bundler install -j4

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

/home/vagrant/.rbenv/versions/2.2.0/bin/ruby -r ./siteconf20141227-1584-lh6tpc.rb extconf.rb 

checking for pg_config… yes
Using config values from /usr/bin/pg_config
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
checking for libpq-fe.h… no
Can’t find the ‘libpq-fe.h header
*** 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.

これで直りました
$ sudo apt-get install postgresql-server-dev-9.3