またまた,Rubyのビルドがうまくいかなくなりました.どうしよう.…
エラーメッセージによると,引っかかったのはconfigureコマンドのところです.ruby-snapshot-installの定義では,以前
$ECHO ./configure --prefix=$HOME/Lib/$instdir
としていたのを
$ECHO ./configure --prefix=$HOME/Lib/$instdir $configopt
に変更していて,ここが原因っぽいです.
Cygwinなら「--with-opt-dir=/usr/local」,Linuxなら「--enable-pthread」が指定されるはず…なのですがもしかしたら,「半角空白--with-opt-dir=/usr/local」,「半角空白--enable-pthread」が,configureコマンドのオプションになっているのかもしれません.
その空白を取り除くというよりは,文字列をコマンド実行時の引数にする際に,空白で分けて別個の引数にできればいいわけです.
man zshexpnを実行し,調べていくと,見つかりました*1.
${=spec} Perform word splitting using the rules for SH_WORD_SPLIT during the evaluation of spec, but regardless of whether the parameter appears in double quotes; if the `=' is doubled, turn it off. This forces parameter expansions to be split into separate words before substitution, using IFS as a delimiter. This is done by default in most other shells. Note that splitting is applied to word in the assignment forms of spec before the assignment to name is performed. This affects the result of array assignments with the A flag.
シェルで,確認しておきましょう.
$ param="a.rb b.rb c.rb" $ ruby -e "puts ARGV" ${=param} a.rb b.rb c.rb $ ruby -e "puts ARGV" $param a.rb b.rb c.rb
それでは
$ECHO ./configure --prefix=$HOME/Lib/$instdir $configopt
を
$ECHO ./configure --prefix=$HOME/Lib/$instdir ${=configopt}
に変更し,~/.zshrcを読み直して,Rubyのビルド…うまくいきました!