Rubyに関する本

作成日 : 2001-07-15
最終更新日 :

スクリプト言語のなかで、Ruby を独立させた。日本人の仕事の検証の一環だ。 なお、最近の書き物はRubyの浮き輪に譲る。

まつもとゆきひろ、石塚圭樹:プログラミング言語 Ruby, アスキー出版局

全部を読んでいないのでなんともいえませんが...。私にはこの程度のユーモアが合います。

arton:Ruby を 256 倍使うための本 邪道編,アスキー出版局

私は Ruby を全く知らない。ではなぜこの本を買ったかというと、立ち読みしたところ 「Word や Excel の処理を自動化する」という内容があったからだ。 「」内のことはぜひともやってみたいと思っている。 買ってきた後で気付いたのは、どうもほいほいと始められるしろものではなく、 いろいろな準備をしなければいけないようだ、ということだった。 だいたい職場の環境は Windows 95 + Office 2000 である。 自宅は Windows 95 + Office 95 が一台と Windows 98 + Office 95 が一台あるだけだ。 自宅に Windows 2000 + Office 2000 を入れるというまねはしたくない。 だからこの本は、当面役に立ちそうにない。すいません。

三並慶佐:Ruby による CGI プログラミング、株式会社SCC

ちかぢか Ruby で CGI プログラミングができそうな環境が整いそうなので、 この本が参考になるだろうかと思った。結論からいえば参考になりそうではあるが、 ちょっと書き方がひどく、校正も充分になされていない。 巻末にある用語集もどこまでわかって書いてあるのか疑わしい(というのも校正の 程度から知れるのみであるが)。

原信一郎(著)、まつもと ゆきひろ(監修):Ruby プログラミング入門、オーム社

助田 雅紀:Ruby を 256 倍使うための本 極道編、アスキー

この本を実例を通して読み通すには10時間かかるだろうと想定した。 事実、Kondara/MNU Linux と Ruby を使ってコードを書きながら読んでみたら、 3時間 x 3 日かかった。 なんとか読み通せたから、自分でも使ってみることができるのではないかと目論んでいる。 ちなみに、この本にある「ないよりはまし」という精神は、私は好きだ。

誤植が一つ。p.201の最終行は } ではなく、end である。

デビット・トーマス+アンドリュー・ハント:プログラミング Ruby、ピアソン・エデュケーション

著者の名前をどこかで見たことがあると思ったら、「達人プログラマー」の著者たちだった。 彼等の筆致は心地よい。楽しんで書いている姿が伝わってくる。 例も個人的に好きだ。アメリカのジャズの例が多いからだ。 構成もいい。いわゆる手続き型言語の3要素である連接、選択、反復より前に(連接は仕方ないけれど) オブジェクトの扱いを先にもってくるあたりは流石だ。 まだ全体を読んでいないが、達人になれるだろうか。

誤植は次の通り。

p.29整数部分と少数部分整数部分と小数部分
p.163was the command linewas the command line
p.293Fotran や QW-Basic でFortran や QW-Basic で

るびきち:Ruby を 256 倍使うための本 魔道編 アスキー

RD や RDTool についての説明である。私は、手っ取り早く html 文書を作る時に使っている。

金光雅夫:Ruby ライブラリ編

実はあまり使っていない。これから役に立ちそうなのだが。

青木峰郎:Ruby を 256 倍使うための本 無道編 アスキー

ただただし、arton:Ruby を 256 倍使うための本 網道編 アスキー

永井秀利 :Ruby を 256 倍使うための本 界道編 アスキー

終わりにあるスクリプトがうまく動かなかったこと以外は、 GUI についての原理がよくわかり、面白く使えた。 あとは、実際に動くものを作ってみることができるかどうかだ。

WSL へのインストール

Windows Subsytem for Linux (WSL) へのインストールである。WSL2 ではないので注意。

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
$ mkdir -p "$(rbenv root)"/plugins
$ git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
$ sudo apt install build-essential libssl-dev libreadline-dev zlib1g-dev
$ rbenv install --list
2.5.8
2.6.6
2.7.2
jruby-9.2.13.0
maglev-1.0.0
mruby-2.1.2
rbx-5.0
truffleruby-20.2.0
truffleruby+graalvm-20.2.0

Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all' to show all local versions.
$ rbenv install 2.7.2
Installing ruby-2.7.2...

ここで応答がない。30 分ぐらい待ってみてもうんともすんとも言ってこない。

$ rbenv --debug install 2.7.2
(中略)
+ [rbenv-install:208] ruby-build 2.7.2 /home/username/.rbenv/versions/2.7.2
Installing ruby-2.7.2...

ダメじゃん。

	^C
	BUILD FAILED
	 (Ubuntu 20.04 using ruby-build 20201005-4-g4761049)
	
	Inspect or clean up the working tree at /tmp/ruby-build.yyyymmddHHMMDD.nnnnn.JcoqLs
	Results logged to /tmp/ruby-build.yyyymmddHHMMDD.nnnnn.log
	
	Last 10 log lines:
	checking for __sync builtins... yes
	checking for __builtin_unreachable... yes
	checking for exported function attribute... __attribute__ ((__visibility__("default")))
	checking for RUBY_FUNC_NONNULL function attribute... __attribute__ ((__nonnull__(n))) x
	checking for function name string predefined identifier... __func__
	checking if enum over int is allowed... yes
	checking whether sys_nerr is declared... yes
	checking whether getenv is declared... yes
	checking for size_t... yes
	checking size of size_t... ++ [rbenv-install:1] cleanup
	++ [rbenv-install:201] '[' -z '' ']'
	++ [rbenv-install:201] rm -rf /home/username/.rbenv/versions/2.7.2
	+ [rbenv-install:208] STATUS=1
	+ [rbenv-install:211] '[' 1 == 2 ']'
	+ [rbenv-install:239] '[' 1 == 0 ']'
	+ [rbenv-install:242] cleanup
	+ [rbenv-install:201] '[' -z '' ']'
	+ [rbenv-install:201] rm -rf /home/username/.rbenv/versions/2.7.2
	+ [rbenv-install:245] exit 1

困ったなあ。そういうからには /tmp/ruby-build.*.log を見てみよう。 するとおびただしい量のログがあった。 このログの中には個別の処理結果が入っているのだろう。 ということは、処理の経過は蓄積されたログを見ればよいのに違いない。

$ rbenv install 2.7.2 &
$ cd /tmp	

ここで一番最近作成された ruby-build.yyyymmddHHMMDD.nnnnn.log ファイルを探す。このファイルはログなのだから、 仕事をしている最中はログを出力し続けているだろう。 その出力の様子を見ることができれば安心する。このようなときのための、 tail -f である。

$ tail -f ruby-build.yyyymmddHHMMDD.nnnnn.log

どうやらコンパイルするためのいろいろなチェックをしているらしい。

(前略)
	checking for bar... yes
	checking for foo... no
(後略)

これが終わるとコンパイルである。

(前略)
	compiling symbol.c
	compiling thread.c
(後略)

コンパイルは延々と続く。しかし、何も応答がなかった不安から解放されたのは大きい。

さらにリンクなども実施された後、なんだかわからないまとめが表示される:

	Files:       1142

	Classes:     1614 ( 758 undocumented)
	Modules:      327 ( 134 undocumented)
	Constants:   2436 ( 727 undocumented)
	Attributes:  1489 ( 559 undocumented)
	Methods:    13029 (3996 undocumented)
  
	Total:      18895 (6174 undocumented)
	 67.32% documented
  
	Elapsed: 100.9s

これで終りかと思いきや、怒涛のインストールが開始される。

	installing binary commands:         /home/username/.rbenv/versions/2.7.2/bin
	installing base libraries:          /home/username/.rbenv/versions/2.7.2/lib
	installing arch files:              /home/username/.rbenv/versions/2.7.2/lib/ruby/2.7.0/x86_64-linux
	installing pkgconfig data:          /home/username/.rbenv/versions/2.7.2/lib/pkgconfig
	installing extension objects:       /home/username/.rbenv/versions/2.7.2/lib/ruby/2.7.0/x86_64-linux
	installing extension objects:       /home/username/.rbenv/versions/2.7.2/lib/ruby/site_ruby/2.7.0/x86_64-linux
	installing extension objects:       /home/username/.rbenv/versions/2.7.2/lib/ruby/vendor_ruby/2.7.0/x86_64-linux
	installing extension headers:       /home/username/.rbenv/versions/2.7.2/include/ruby-2.7.0/x86_64-linux
	installing extension scripts:       /home/username/.rbenv/versions/2.7.2/lib/ruby/2.7.0
	installing extension scripts:       /home/username/.rbenv/versions/2.7.2/lib/ruby/site_ruby/2.7.0
	installing extension scripts:       /home/username/.rbenv/versions/2.7.2/lib/ruby/vendor_ruby/2.7.0
	installing extension headers:       /home/username/.rbenv/versions/2.7.2/include/ruby-2.7.0/ruby
	installing rdoc:                    /home/username/.rbenv/versions/2.7.2/share/ri/2.7.0/system

終わるのだろうか。次の表示が最後で止まった。

	minitest 5.13.0
	net-telnet 0.2.0
	power_assert 1.1.7
	rake 13.0.1
	test-unit 3.3.4
	xmlrpc 0.3.0
/tmp/ruby-build.20201102171548.25551.HFCO7l ~/.rbenv/bin
~/.rbenv/bin

^C を打ってみた。もういいだろう。

	^C[1]+  終了                  rbenv install 2.7.2  (wd: ~/.rbenv/bin)
(wd now: /tmp)

バックグラウンドに回していた処理が終わったことがわかった。 よかった。1時間は要したような気がする。

まりんきょ学問所コンピュータの部屋コンピュータの本 > Ruby に関する本


MARUYAMA Satosi