はじめに
bundle installでgemのnokogiriがinstallできていませんとエラーがでました。
直接nokogiriをinstall指定していませんでした。※これはインストールするgem内でnokogiriを使っているgemがあったのかと思います。
その後、nokogiriをyumでインストールしましたがエラーが出たため、対応策をメモしておきます。
エラーの改善について
詳細エラー内容
インストール実行
$ sudo yum install nokogiri
エラー内容
Building native extensions. This could take a while…
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension./home/vagrant/.rbenv/versions/2.2.1/bin/ruby -r ./siteconf20150506-10401-826g5c.rb extconf.rb
checking if the C compiler accepts … yes
Building nokogiri using packaged libraries.
checking for gzdopen() in -lz… yes
checking for iconv… yes
************************************************************************
IMPORTANT NOTICE:Building Nokogiri with a packaged version of libxml2-2.9.2
with the following patches applied:
– 0001-Revert-Missing-initialization-for-the-catalog-module.patch
– 0002-Fix-missing-entities-after-CVE-2014-3660-fix.patchTeam Nokogiri will keep on doing their best to provide security
updates in a timely manner, but if this is a concern for you and want
to use the system library instead; abort this installation process and
reinstall nokogiri as follows:gem install nokogiri — –use-system-libraries
[--with-xml2-config=/path/to/xml2-config]
[--with-xslt-config=/path/to/xslt-config]If you are using Bundler, tell it to use the option:
bundle config build.nokogiri –use-system-libraries
bundle installNote, however, that nokogiri is not fully compatible with arbitrary
versions of libxml2 provided by OS/package vendors.
************************************************************************
Extracting libxml2-2.9.2.tar.gz into tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2… OK
Running patch with /home/vagrant/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/nokogiri-1.6.6.2/ports/patches/libxml2/0001-Revert-Missing-initialization-for-the-catalog-module.patch…
Running ‘patch’ for libxml2 2.9.2… ERROR, review ‘/home/vagrant/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/nokogiri-1.6.6.2/ext/nokogiri/tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2/patch.log’ to see what happened.
*** 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.1/bin/$(RUBY_BASE_NAME)
–help
–clean
–use-system-libraries
–enable-static
–disable-static
–with-zlib-dir
–without-zlib-dir
–with-zlib-include
–without-zlib-include=${zlib-dir}/include
–with-zlib-lib
–without-zlib-lib=${zlib-dir}/lib
–enable-cross-build
–disable-cross-build
/home/vagrant/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/mini_portile-0.6.2/lib/mini_portile.rb:279:in `block in execute’: Failed to complete patch task (RuntimeError)
from /home/vagrant/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/mini_portile-0.6.2/lib/mini_portile.rb:271:in `chdir’
from /home/vagrant/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/mini_portile-0.6.2/lib/mini_portile.rb:271:in `execute’
from extconf.rb:311:in `block in patch’
from extconf.rb:308:in `each’
from extconf.rb:308:in `patch’
from /home/vagrant/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/mini_portile-0.6.2/lib/mini_portile.rb:108:in `cook’
from extconf.rb:278:in `block in process_recipe’
from extconf.rb:177:in `tap’
from extconf.rb:177:in `process_recipe’
from extconf.rb:475:in `‘ extconf failed, exit code 1
Gem files will remain installed in /home/vagrant/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/nokogiri-1.6.6.2 for inspection.
Results logged to /home/vagrant/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0-static/nokogiri-1.6.6.2/gem_make.out
対応策
エラー内に改善案が書いてありました。
必要なライブラリをインストールし再度nokogiriを指定方法によりインストールします。これで手元環境ではエラーなく成功しました。
$ sudo yum -y install libxml2 libxslt libxml2-devel libxslt-devel $ gem install nokogiri -- --use-system-libraries
CentOSへ最新・安定版のRuby2.2.1(rbenv) / Rails4.1.1環境を構築するときのメモ
Rubyのインストールはrbenvを使用する。
rbenvはrubyのバージョン間の切り替えが行えるツール。
現時点でRubyの2.2.1が一番最新で安定版となっている。
※似たものでrvmがあるがrbenvのほうが簡単
参考:http://passingloop.tumblr.com/post/10512902196/difference-between-rbenv-and-rvm
Ruby環境(rbenv)を構築
Gitのインストール
$ sudo yum -y install git
rbenvインストール
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
ruby-buildのインストール ※Rubyをインストールするためのrbenvのプラグイン
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
rbenvを使用できるようにするためのPATH設定
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc $ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
設定の反映
$ source ~/.bashrc
設定の確認
$ type -t rbenv function
※functionと表示されればOK
Rubyインストール ※rbenvを使用
$ rbenv install 2.2.1
※rbenvでインストールできるlistは[rbenv install -l]コマンドで確認できる
Rubyインストールでエラー
BUILD FAILED (CentOS release 6.4 (Final) using ruby-build 20150303)
2.2.1のインストールでエラーとなったので改善
$ sudo yum -y install libffi-devel
参考:http://shiro-16.hatenablog.com/entry/2014/12/26/003810
再度Rubyインストール
$ rbenv install 2.2.1 Downloading ruby-2.2.1.tar.gz... -> http://dqw8nmjcqpjn7.cloudfront.net/5a4de38068eca8919cb087d338c0c2e3d72c9382c804fb27ab746e6c7819ab28 Installing ruby-2.2.1... Installed ruby-2.2.1 to /home/vagrant/.rbenv/versions/2.2.1
※これでOK
インストールバージョンをデフォルトで使用するように設定
$ rbenv global 2.2.1
バージョン確認
$ ruby -v ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]
※これでOK
Rails環境を構築
Railsインストール
$ gem install rails -v 4.1.1
バージョン確認
$ rails -v Rails 4.1.1
※これでOK
ctagsを設定して定義元クラス・メソッドへ遷移する方法をメモ
ctagはEclipseなどのIDEにはある定義元へ遷移する機能をvimなどのエディタで使えるようにするためtagを作成するためのもの。
プロジェクト(php,ruby,perl,javaなど)のコードから定義元のtagを作成する。このctagで作成したtagをつかうことで定義元クラス・メソッドへ遷移する機能を使用できるようになる仕組み。
tagは非常に開発で便利なので是非入れたほうが良い
ctagsインストール
Mac(homebrew)の場合:
brew install ctags alias ctags="`brew --prefix`/bin/ctags"
[alias ctags="`brew --prefix`/bin/ctags"]の部分はエイリアスのため、.bashrc,.zshrcなどのシェルに記載でもよい
参考:http://nob-log.info/2012/07/29/ctags-illegal-option/
設定したエイリアスの確認
alias
設定したエイリアスの削除
unalias [エイリアス名]
CentOSの場合:
yum install ctags
Ubuntuの場合:
sudo apt-get install exuberant-ctags
ctagsの設定
$HOME/に.ctagsのドットファイルを作成する
touch .ctags
--append=yes --recurse=yes --php-kinds=cfd --html-kinds=af --java-kinds=cfimp --ruby-kinds=cfm --perl-kinds
–append=yes ➡ tagsが既にあれば上書きではなく追加
–recurse=yes ➡ 配下ディレクトリを再起的にタグ作成するかどうか(-Rと同じ)
–[言語]–kind ➡ なんのタグを作成するかの設定(c=classなど)
参考:http://hp.vector.co.jp/authors/VA025040/ctags/help_j.html
対象言語拡張子の確認
対象言語の拡張子を確認:
ctags --list-maps
結果:
Ant *.build.xml Asm *.asm *.ASM *.s *.S *.A51 *.29[kK] *.[68][68][kKsSxX] *.[xX][68][68] Asp *.asp *.asa Awk *.awk *.gawk *.mawk Basic *.bas *.bi *.bb *.pb BETA *.bet C *.c C++ *.c++ *.cc *.cp *.cpp *.cxx *.h *.h++ *.hh *.hp *.hpp *.hxx C# *.cs Cobol *.cbl *.cob *.CBL *.COB DosBatch *.bat *.cmd Eiffel *.e Erlang *.erl *.ERL *.hrl *.HRL Flex *.as *.mxml Fortran *.f *.for *.ftn *.f77 *.f90 *.f95 HTML *.htm *.html Java *.java JavaScript *.js Lisp *.cl *.clisp *.el *.l *.lisp *.lsp Lua *.lua Make *.mak *.mk [Mm]akefile GNUmakefile MatLab *.m OCaml *.ml *.mli Pascal *.p *.pas Perl *.pl *.pm *.plx *.perl PHP *.php *.php3 *.phtml Python *.py *.pyx *.pxd *.pxi *.scons REXX *.cmd *.rexx *.rx Ruby *.rb *.ruby Scheme *.SCM *.SM *.sch *.scheme *.scm *.sm Sh *.sh *.SH *.bsh *.bash *.ksh *.zsh SLang *.sl SML *.sml *.sig SQL *.sql Tcl *.tcl *.tk *.wish *.itcl Tex *.tex Vera *.vr *.vri *.vrh Verilog *.v VHDL *.vhdl *.vhd Vim *.vim YACC *.y
※言語に拡張子を追加する場合は.ctagsへ–langmapを設定するとできる
tag作成
対象プロジェクトディレクトリ内で実行
ctags
※-Rオプションは不要(.ctagsで–recurse=yesに指定してるため)
ディレクトリ直下にtagsファイルが生成されていればOK
vim-tagsプラグイン導入
プログラミング中にあたらしく追加されたコードからtagを毎回作成するのを自動化してくれるvimプラグイン「vim-tags」を導入
※参考:https://github.com/szw/vim-tags
neobundleを使っている場合:
NeoBundle 'szw/vim-tags'
使い方:
:TagsGenerate
※これでtagを再構築してくれる
vimでの使い方
ショートカット:
定義へ移動 = Ctrl + ]
定義へ移動(複数ある場合にプロンプト表示)= g + Ctrl + ]
履歴戻る = Ctrl + t or Ctrl + 0 or :pop
定義へ移動で常に複数ある可能性を考えてvimrcにキーバインドを変更しておくと良い
nnoremap <C-]> g<C-]>
nginxのインストールから起動までメモ
centosへnginxを入れてブラウザ起動するまでを忘れないようにメモ
公式ページ
http://nginx.org/
ダウンロード
centosのバージョンにあわせて公式サイトよりrpmファイルをダウンロード
http://nginx.org/en/linux_packages.html#stable
wgetでcentos6の場合
wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
yumへ登録
yumへ登録
rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm
インストール
インストールされるnginx情報の確認
yum info nginx
インストール
yum -y install nginx
インストールしたnginxのバージョン確認
nginx -v
起動
nginxをスタート
service nginx start
これでブラウザからIPアドレスを入れて下記ページが表示されればOK
Apacheが既に起動している場合
どちらも起動している場合、デフォルト80のポートで競合するため、Apacheを一旦止めてからnginxをスタートさせると良い
Apacheをストップ
service httpd stop
nginxをスタート
service nginx start
chkconfigの設定もどちらか片方(使用するほう)をonにするとよい
mysqlをインストールしたメモ
mysqlのインストールをメモ
インストール
インストールされるバージョンの確認(今回はyumのみ)
※epel,remi,rpmforgeを使う場合はこちらを参考
yum info mysql-server
インストール
yum -y install mysql-server
インストールバージョンの確認
mysql --version
mysqlの起動と起動設定
起動
service mysqld start
再起動時も自動起動
chkconfig mysqld on
初回設定
mysqlの初回設定を行い、rootのパスワードを付けておく ※mysqlを起動した状態で行う事
mysql_secure_installation
途中確認される「Set root password? [Y/n] 」はYを指定しrootのパスワードを指定しておくとよい
それ以外の設定は、必要であれば設定する。特になければエンター連打
mysqlへログイン確認
rootログイン
mysql -u root -p
で「初回設定」で設定したrootのパスワードでログインする
mysqlから離脱
quit
外部リポジトリのパッケージ管理を導入する方法をメモ
CentOSのyumパッケージ以外にあるパッケージ管理でよく使われているとの事で、epel,remi,rpmforgeを導入してみたのでメモ
yumに存在していない最新バージョンのパッケージをダウンロードできたり、yumにそもそも存在しないものをダウンロードできたりする。
ただ、epel,remi,rpmforgeのどれも同じく存在する場合にどうするの?っていう改善が必要
下記とても参考になるページで、一通り書いてあるので、覚え書きのみで残しておく。
参考:
http://oki2a24.com/2012/03/13/what-is-rpmforge-remi-epel/
各パッケージツールのダウンロード・インストール
下記サイトから其々ダウンロードする
epel
http://download.fedora.redhat.com/pub/epel/5/x86_64/
remi ※remiはepelがないと動作しない
http://rpms.famillecollet.com/el5.x86_64/
rpmforge
http://dag.wieers.com/rpm/packages/rpmforge-release/
※[パッケージ名]-release-のパックを探してダウンロードする
ダウンロード例
# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm # wget http://rpms.famillecollet.com/el5.i386/remi-release-5-8.el5.remi.noarch.rpm
インストール例
# rpm -Uvh remi-release-5-8.el5.remi.noarch.rpm epel-release-5-4.noarch.rpm
インストール確認
# rpm -qa | grep epel-release # rpm -qa | grep remi-release # rpm -qa | grep rpmforge-release
全てのパッケージを無効設定にする
epel,remi,rpmforgeのどれも存在している場合にどうなるのか?となるので全て無効にしておくとよいらしい。
# vim /etc/yum.repos.d/remi.repo # vim /etc/yum.repos.d/epel.repo # vim /etc/yum.repos.d/rpmforge.repo
enable = 1 を enable = 0 に変更する事で無効化される(勝手にリポジトリからインストールしないということ)
※remiはデフォルト enable = 0 になっている
入れたいパッケージのバージョン情報を確認
例えばphpをインストールしたい場合のそれぞれの確認方法
yum
yum info php
epel
yum --enablerepo=epel info php
remi
yum --enablerepo=remi info php
rpmforge
yum --enablerepo=rpmforge info php
それぞれ存在知る場合はインストールバージョンが表示され、存在しない場合は表示されない。
で三つの中で一番最新版を持っているリポジトリを選択して表示 ※これ便利
yum --enablerepo=epel,remi,rpmforge info php
上記で確認したバージョンのインストール
入れたいバージョンがあればそちらでインストールすれば良い
例えばremiでインストールは
yum -y --enablerepo=remi install php
例えば三つの中で一番最新版のリポジトリをインストールは
yum -y --enablerepo=epel,remi,rpmforge install php
※yオプションは問い合わせがあった場合にすべてyesで続ける場合に指定
coffee-break
Don't write code that useless.
1日5杯はコーヒー、カフェオレ飲みます。狭心症のため安静にします☆松本 雄貴
Kotlinでサービスリリース目指す!
iOSでチャットアプリ作成中。自然言語解析LSIを習得中
Mac / Android・iOS / Rails / Oracle
2017年 Lpic L2取得
2012年 Android技術者資格取得
2010年 OracleMasterGold10g取得
2008年 CCNAQiitaもたまに投稿
https://qiita.com/y-matsumoto東京近郊で常駐開発探してる方はこちらよりご連絡ください
SES企業でパートナー会社を探している企業様はこちらよりご連絡ください
スプリットカメラ iOS / Android
音声認識で聞いた日付から曜日当てアプリ Android
ソーシャルタイマー Android
カテゴリー
- ActiveRecord (2)
- Android (52)
- AndroidStudio (10)
- Ansible (1)
- AWS (1)
- Bash (18)
- Blog (7)
- BootStrap (1)
- CentOS (16)
- Chef (1)
- css (2)
- Eclipse (5)
- error (1)
- Facebook (2)
- Firebase (1)
- FuelPHP (16)
- Git (22)
- GitHub (3)
- Gradle (2)
- GraphAPI (1)
- Grunt (1)
- heroku (2)
- illustrator (1)
- iOS (17)
- Java (4)
- Jenkins (1)
- jQuery (3)
- Kotlin (2)
- Mac (22)
- nginx (1)
- Node.js (3)
- peco (1)
- php (5)
- Python (1)
- Rails (16)
- Ruby (11)
- shell (1)
- SNS (1)
- Swift (2)
- tmux (2)
- Vagrant (6)
- Vim (6)
- windows (2)
- WordPress (3)
- zsh (4)
- フリーランス (1)
- ライブラリ (1)
- 勉強会 (2)
- 宣伝 (1)
- 未分類 (2)
最近の投稿
- [MAC]HighSierraでgitプッシュエラー「Unable to negotiate with xxx.xxx.xxx.xxx port xx: no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se fatal: Could not read from remote repository.」
- [iOS]iOS11からFacebook,Twitter連携(シェアなど)廃止の対応方法
- [iOS]速報2017AppleSpecialEventのiOS11、iPhone8など発表内容について
- [iOS][Firebase]The default Firebase app has not yet been configured. Add `[FIRApp configure];
- [iOS]2017年9月リリースのiOS11で開発者が対応するべきこと
- 今人気の現金化サービスCASH(キャッシュ)を使ったレビュー
- [Pandoc][Mac]pandocでmarkdownからwordファイル作成
- [Android]映画サマーウォーズの聞いた日付(誕生日)から曜日当てをアプリ音声認識で簡単に実現
- [Android]起動しているActivityを取得するadb shell コマンド
- [Android][Kotlin]kotlin学習で参考になるサイト一覧
2023年6月 月 火 水 木 金 土 日 « 5月 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 アーカイブ
- 2018年5月
- 2017年9月
- 2017年8月
- 2017年7月
- 2017年6月
- 2017年5月
- 2017年2月
- 2017年1月
- 2016年12月
- 2016年7月
- 2016年6月
- 2016年1月
- 2015年12月
- 2015年11月
- 2015年10月
- 2015年9月
- 2015年8月
- 2015年7月
- 2015年6月
- 2015年5月
- 2015年4月
- 2015年3月
- 2015年2月
- 2015年1月
- 2014年12月
- 2014年11月
- 2014年6月
- 2014年5月
- 2014年4月
- 2014年3月
- 2014年2月
- 2014年1月
- 2013年12月
- 2013年11月
- 2013年9月
- 2013年8月
- 2013年7月
- 2013年6月
- 2013年5月
- 2013年4月
- 2013年3月
- 2013年2月
- 2013年1月
- 2012年12月
- 2012年10月
- 2012年5月
- 2010年6月
おすすめ備忘録
- [CentOS][Ruby][Rails]最新・安定版のRuby2.2.1(rbenv) / Rails4.1.1環境を構築する
- [Rails]MacにRails開発環境を構築(インストール)する
- [Ruby][Mac]The Ruby openssl extension was not compiled. Missing the OpenSSL lib?エラー
- [Rails][Ruby]エラー:Warning: You’re using Rubygems 1.8.23 with Spring. Upgrade to at least Rubygems 2.1.0 and run `gem pristine –all` for better startup performance.
- [Ruby]エラー:Inspect or clean up the working tree at /tmp/ruby-build・・・
エントリ