Hatena::Grouptech

id:rx7(@namikawa)の技術メモ このページをアンテナに追加 RSSフィード

過去記事一覧 | Main Blog (元RX-7乗りの適当な日々) | SBM (id:rx7のBookmark)

2019/02/28

nokogiri によるスクレイピング処理が途中で止まった時

| nokogiri によるスクレイピング処理が途中で止まった時 - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - nokogiri によるスクレイピング処理が途中で止まった時 - id:rx7(@namikawa)の技術メモ nokogiri によるスクレイピング処理が途中で止まった時 - id:rx7(@namikawa)の技術メモ のブックマークコメント

色々なパターンの原因があると思うけど、今回は文字コードが原因だった。

charset = nil

html = open(url, "r:CP932") do |f|
  charset = f.charset
  f.read
end

doc = Nokogiri::HTML.parse(html, nil, charset)

↑の場合だと、取得するページにあわせて "r:CP932" を指定するような感じ。

トラックバック - http://tech.g.hatena.ne.jp/rx7/20190228

2016/02/16

Ubuntu 14.04 で Ruby 2.0 系を使う

| Ubuntu 14.04 で Ruby 2.0 系を使う - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - Ubuntu 14.04 で Ruby 2.0 系を使う - id:rx7(@namikawa)の技術メモ Ubuntu 14.04 で Ruby 2.0 系を使う - id:rx7(@namikawa)の技術メモ のブックマークコメント

Ubuntu 14.04 (Trusty Tahr) で、Ruby 2.0系を使いたいので、

$ sudo apt-get install ruby2.0

とすると、Ruby 1.9 系が一緒にインストールされる上に、デフォルトの ruby コマンドが1.9系を指している有様。

$ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]

で、ちょっと調べたのだけど、 /usr/bin/ruby 等がシンボリックリンクで ruby1.9.1 を直接指しているのと、

ruby-switchパッケージがなくなってしまっているので、結局シンボリックリンクを書き換える方法しかなさそうとのこと。

よって、以下コマンドで対応。

$ for prog in /usr/bin/{erb,gem,testrb,irb,rake,ruby,ri,rdoc}; do sudo ln -sf ${prog}2.0 $prog; done

via. http://ayucat.hatenablog.com/entry/2014/07/21/115416

$ ruby -v
ruby 2.0.0p384 (2014-01-12) [x86_64-linux-gnu]
トラックバック - http://tech.g.hatena.ne.jp/rx7/20160216

2016/02/15

"extconf.rb:104:in `makemakefiles': unhandled exception"

| "extconf.rb:104:in `makemakefiles': unhandled exception" - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - "extconf.rb:104:in `makemakefiles': unhandled exception" - id:rx7(@namikawa)の技術メモ "extconf.rb:104:in `makemakefiles': unhandled exception" - id:rx7(@namikawa)の技術メモ のブックマークコメント


$ sudo gem install chef
Building native extensions.  This could take a while...
ERROR:  Error installing chef:
	ERROR: Failed to build gem native extension.

    /usr/bin/ruby2.0 extconf.rb
creating Makefile
/var/lib/gems/2.0.0/gems/libyajl2-1.2.0/ext/libyajl2
extconf.rb:104:in `makemakefiles': unhandled exception
	from extconf.rb:138:in `<main>'


Gem files will remain installed in /var/lib/gems/2.0.0/gems/libyajl2-1.2.0 for inspection.
Results logged to /var/lib/gems/2.0.0/gems/libyajl2-1.2.0/ext/libyajl2/gem_make.out

Chefをgemからインストールしようとすると、上記エラーが出た。

該当箇所は、makeを叩いている場所だったので、インストールされるているか確認したら、入ってなかった・・・。

ということで、

$ sudo apt-get install gcc make

で解決。

トラックバック - http://tech.g.hatena.ne.jp/rx7/20160215

2015/07/31

net-ssh requires Ruby version >= 2.0.

| net-ssh requires Ruby version >= 2.0. - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - net-ssh requires Ruby version >= 2.0. - id:rx7(@namikawa)の技術メモ net-ssh requires Ruby version >= 2.0. - id:rx7(@namikawa)の技術メモ のブックマークコメント

# gem install capistrano
Fetching: net-ssh-3.0.1.gem (100%)
ERROR:  Error installing capistrano:
        net-ssh requires Ruby version >= 2.0.

最新の Capistrano をインストールしようとしたら、Ruby 1.9系だと最新の net-ssh が使えない、と。

まー、そうですよねーーー。


# gem install net-ssh -v 2.9.2
Fetching: net-ssh-2.9.2.gem (100%)
Successfully installed net-ssh-2.9.2
1 gem installed


# gem install capistrano

・・・・・省略・・・・・

Successfully installed capistrano-3.4.0
6 gems installed

ということで、下記のページで net-ssh の全バージョンを新しい順から、Ruby 1.9 で使えそうなものを入れた。

トラックバック - http://tech.g.hatena.ne.jp/rx7/20150731

2012/01/27

CentOS 6.2 にchef-clientをインストール

| CentOS 6.2 にchef-clientをインストール - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - CentOS 6.2 にchef-clientをインストール - id:rx7(@namikawa)の技術メモ CentOS 6.2 にchef-clientをインストール - id:rx7(@namikawa)の技術メモ のブックマークコメント

特に躓く事もなく。

# cat /etc/redhat-release
CentOS release 6.2 (Final)

もともと、chef-clientはCentOS 5系でも、それほど苦労せずに入るのですが、

Rubyのバージョンがデフォルトで1.8.7になっているので、外部のRPMレポジトリを使わなくてもすむようになってた。

# yum install ruby ruby-devel ruby-ri ruby-rdoc ruby-static rubygems
# gem install chef

↑の2コマンドでインストールは終了。

# chef-client -v
Chef: 0.10.8

この通り。

トラックバック - http://tech.g.hatena.ne.jp/rx7/20120127