bar_1

contents_map

ラベル cygwin の投稿を表示しています。 すべての投稿を表示
ラベル cygwin の投稿を表示しています。 すべての投稿を表示

2011年3月21日月曜日

[Cygwin][Ruby]ファイル・システム OR gemの振る舞い(環境?)がおかしくなった?

正確には、当該現象は今は発生していない;原因はわからないが、LoadErrorを発生することなく元通りに実行されるようになった。

しかし、以前にも(gistyとは別件で)、Cygwin上で同様のふるまい―作業したファイルが元に(?)戻ってしまったように見える現象―を、経験している。よって、ここに忘備として記録を残しておく。

現象以前構築したgistyの環境が、おかしくなっていることに気づいた。具体的な症状は:
  • gistyコマンドを実行すると、LoadErrorが発生
  • LoadErrorの内容は、no such file to load -- rr 、つまりrrというファイルが、gem_original_requireメソッドから見つからない

その他の現象gem listすると、パッケージは表示されるものの、gem which パッケージ名 を実行すると:
ERROR: Can't find ruby library file or shared library test-unit
という結果になるものがいくつか存在する。この現象は、回復していない。
環境
$ uname -srvmpio
CYGWIN_NT-5.1 1.7.7(0.230/5/3) 2010-08-31 09:58 i686 unknown unknown Cygwin
$ ruby --version
ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin]
$ gem --version
1.3.7
$ git --version
git version 1.7.2.3
$ gisty about
mm mm
mm
mmmmmm mmmm mmmmm mmmmmm mm mm
mm mm mm mm mm mm mm
mm mm mm mmmm mm mm mm
mmmmmm mm mm mm mmmmm
mm mmmmmm mmmmm mmm mm
mmmmm mmmm
version: 0.0.14
url: http://github.com/swdyh/gisty/tree/master

2010年12月2日木曜日

Cygwin上のruby環境でgithubとgist, gistyの環境を整えてみた


■問題点
例によって、躓きまくりました。
  • nokogiriのgemインストールができない。
  • gistyのgemインストールができない。

■解決法
時間のない人のために、最初に、今回試した手順のまとめを示します:
  1. Cygwinのライブラリ(lib*)のインストール(gistyに必要とされるもの)
    Cygwinのインストーラ:setup.exeで、libxml2, libxslt, libiconv, (+libiconv2) をインストール。
  2. gemの設定1(環境変数GEM_HOME, APPDATA)
    export GEM_HOME="/cygdrive/your/gem/home"
    export APPDATA="${GEM_HOME}"
  3. gemの設定2(gemの取得先の設定追加)
    $ gem sources -a http://gems.github.com/
  4. gemインストール1(nokogiri)
    $ gem install nokogiri
  5. gemインストール2(gisty)
    $ gem install swdyh-gisty
  6. gistyの設定(GISTY_DIR)
    export GISTY_DIR="${HOME}/your/gisty/directory"
  7. githubの設定(SSH公開鍵の登録)
    github.comにログインし
    アカウントの設定>アカウントの概要>SSH公開鍵
    にて、登録。
  8. gitのローカル環境の設定(githubのidとAPIトークン)
    git config --global github.user your_id
    git config --global github.token your_APItoken
  9. gistyの設定(パスの通ったディレクトリにコピー)
    cd /cygdrive/${GEM_HOME}/gems/swdyh-gisty-0.0.14/bin
    cp -i gisty /usr/bin/.
以下は試したときの時系列ログ的書き物です。


●gemインストール1

$ gem install nokogiri
Building native extensions. This could take a while...
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension.
/usr/bin/ruby.exe extconf.rb
checking for libxml/parser.h... yes
checking for libxslt/xslt.h... yes
checking for libexslt/exslt.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... yes
checking for xmlParseDoc() in -lxml2... yes
checking for xsltParseStylesheetDoc() in -lxslt... yes
checking for exsltFuncRegister() in -lexslt... yes
checking for xmlFirstElementChild()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetValidStructuredErrors()... yes
checking for xmlSchemaSetValidStructuredErrors()... yes
checking for xmlSchemaSetParserStructuredErrors()... yes
creating Makefile
/usr/lib/ruby/1.8/mkmf.rb:1322: warning: global variable `$preload' not initiali
zed
make
Makefile:119: *** target pattern contains no `%'. Stop.
Gem files will remain installed in d:/home/gems/nokogiri-1.4.4 for inspection.
Results logged to /cygdrive/d/home/gems/nokogiri-1.4.4/ext/nokogiri/gem_make.out

エラーログからは、なにが悪いのかさっぱり分からない。そこで、エラーメッセ
ージをぐぐってみる。
http://stackoverflow.com/questions/1225703/cant-build-gem-native-extension-build-fails-can-you-see-why
どうやら、Cygwin環境のライブラリを再インストールする必要があるようだ。。。
●足りないと思われるライブラリ
上記gemエラーログから、想像したライブラリ名は以下の通り:
  • ?libxml
  • libxml2
  • libxslt
  • ?libexslt
  • libiconv
  • (+iconv2)

��は、存在しないようだった。
Cygwinのインストーラ:setup.exe を使って、上記をReinstallした。
次に再度、gemのインストールを試す。
●再度gemインストール
また失敗。
$ gem install nokogiri
cygwin warning:
MS-DOS style path detected: C:\Documents and Settings\All Users\Application Data/gemrc
Preferred POSIX equivalent is: /cygdrive/c/Documents and Settings/All Users/Application Data/gemrc
CYGWIN environment variable option "nodosfilewarning" turns off this warning.
Consult the user's guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
Building native extensions. This could take a while...
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension.
/usr/bin/ruby.exe extconf.rb
checking for libxml/parser.h... yes
checking for libxslt/xslt.h... yes
checking for libexslt/exslt.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... yes
checking for xmlParseDoc() in -lxml2... yes
checking for xsltParseStylesheetDoc() in -lxslt... yes
checking for exsltFuncRegister() in -lexslt... yes
checking for xmlFirstElementChild()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetValidStructuredErrors()... yes
checking for xmlSchemaSetValidStructuredErrors()... yes
checking for xmlSchemaSetParserStructuredErrors()... yes
creating Makefile
/usr/lib/ruby/1.8/mkmf.rb:1322: warning: global variable `$preload' not initiali
zed
make
Makefile:119: *** target pattern contains no `%'. Stop.
Gem files will remain installed in d:/home/gems/nokogiri-1.4.4 for inspection.
Results logged to /cygdrive/d/home/gems/nokogiri-1.4.4/ext/nokogiri/gem_make.out

似たようなエラーメーセージだが、若干違うのは”MS-DOSスタイルのパス”が云々
というところ。知らない環境変数が参照されていると見当をつけ、
set | grep -i "パス"
してみた。すると、APPDATAという変数に上記ディレクトリが設定されている
●gemの設定(環境変数)
以前、GEM_HOMEを設定したが、ActiveScriptRubyのためであった。今設定しよう
としているのは、Cygwin上のRubyのためのものである。既存の設定だと、
GEM_HOMEは、ActiveScriptRubyのための環境変数の設定値(当然、こちらはWin 
形式のディレクトリ名)となっており、Cygwinとバッティングする。
また、環境変数APPDATAも、gemから同様な参照をされる。gemは、APPDATAの設定
値(ディレクトリ)からも、gemrcを読もうとしている。
だから、Cygwin上のRuby環境においては、Bashの環境変数:
GEM_HOME, APPDATA両方の設定を、POSIX形式で、行う必要がある;
これらの値の設定を.profileまたは.bashrcにでも書いておけばよかろう。
以下のようにした:
export GEM_HOME="/cygdrive/d/home"
export APPDATA="${GEM_HOME}"

ふー。
もう一度、gemのインストールから・・・(ヽ´ω`)。。。
●nokogiri のインストール
$ gem install nokogiri
Building native extensions. This could take a while...
Successfully installed nokogiri-1.4.4
1 gem installed
/usr/lib/ruby/1.8/rdoc/parsers/parse_c.rb:204: warning: method redefined; discar
ding old progress
Installing ri documentation for nokogiri-1.4.4...
No definition for get_options
No definition for set_options
No definition for parse_memory
No definition for parse_file
No definition for parse_with
Installing RDoc documentation for nokogiri-1.4.4...
No definition for get_options
No definition for set_options
No definition for parse_memory
No definition for parse_file
No definition for parse_with

インストールできたようだ。
次にgistyのgemをインストールする。
●swdyh-gisty のインストール
$ gem sources -a http://gems.github.com/
$ gem install swdyh-gisty
/usr/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:88: warning: instance variable @prerelease not initialized
/usr/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:88: warning: instance variable @prerelease not initialized
Successfully installed swdyh-gisty-0.0.14
1 gem installed
/usr/lib/ruby/1.8/rdoc/parsers/parse_c.rb:204: warning: method redefined; discarding old progress
Installing ri documentation for swdyh-gisty-0.0.14...
Installing RDoc documentation for swdyh-gisty-0.0.14...
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string

ドキュメント関連のwarningが出るが、インストールできたようだ。
■gistyの設定(GISTY_DIR)
適当なディレクトリを用意しましょう。このディレクトリに、gistyは
GISTY_DIRは、.bashrcに書
いておけばよいでしょう。
export GISTY_DIR="${HOME}/your/directory"

■githubの設定(SSH公開鍵の登録)
ssh-keygenを使って、公開鍵と秘密鍵を生成する。
次に、githubに生成した公開鍵を登録する。登録は、githubにログインして、
 アカウントの設定>アカウントの概要>SSH公開鍵
から行います。
手順の詳細は、
コピペするときに、改行が入らないように気をつけること。改行が入ってしまっ
たら、消してください。
公開鍵を登録し終わったら、ちゃんと登録できたかテスト。テストは以下のよう
な感じで:
$ ssh -T git@github.com
Enter passphrase for key '/home/masa/.ssh/id_rsa':
ERROR: Hi mephistobooks! You've successfully authenticated, but GitHub does not
provide shell access

"successfully authenticated"されれば、オッケイ。
■gitの設定(idとAPIトークン)
APIトークンは、github.com/account の
アカウントの設定>アカウントの概要>アカウントの管理>APIトークン
に表示されます。
下記のコマンドで、githubのidとAPIトークンを設定しましょう。
git config --global github.user your_id
git config --global github.token your_APItoken

■gistyの設定(パスの通ったディレクトリにコピー)
なぜなんだか、gem installしても/usr/bin/に、gistyがコピーされませんでした。
なので仕方なく手で、ディレクトリ:
/cygdrive/${GEM_HOME}/gems/swdyh-gisty-0.0.14/bin から、
cp -i gisty /usr/bin/.
した。
ふー。
■References
・README.rdoc -gisty
https://github.com/swdyh/gisty
・gistコマンドよりちょっと便利なgisty
http://d.hatena.ne.jp/swdyh/20081207/1228655198
・Gistyインストールから利用までの道のりメモ
http://d.zeromemory.info/2009/01/05/install-gisty.html
・Generating SSH keys (Win/msysgit)
http://help.github.com/msysgit-key-setup/
・WindowsでのGit環境構築とその注意点
http://sourceforge.jp/magazine/09/02/12/0530242

2010年11月29日月曜日

Cywin上のRuby環境でgitの環境を整えてみた

これらのサイト

http://sourceforge.jp/magazine/09/02/12/0530242
http://www8.atwiki.jp/git_jp/pub/git-manual-jp/Documentation/gittutorial.html

を参考にした。

もともと、Cygwin環境自体は構築済みなので、Cygwinのsetup.exeで、
  1. git
  2. git-completion
  3. git-gui
  4. git-svn
  5. subversion-perl
  6. lv
の6つパッケージをインストール。ひさびさに更新したら、今回の作業とは関係ないいろんなモノをダウンロードしてしまった。lvは昔インストールした気もするが・・・まぁいいや。
しかし、ちょっと凝ったことしようとすると、Windowsがメインを前提とすると、途端にめんどくささが上がってしまう。。。
漢字コードやらなにやらで。ま、当ブログではマゾヒスティックに、Win環境にも関わっていきます。

2008年3月5日水曜日

xyzzy: 空白・空行無視した比較のための設定

初期設定ファイル:$XYZZY_HOME/.xyzzy に、下記を追加すればよいよ。

(setq ed::*diff-command-option* "-aBw")

※diffコマンドは、Cygwinのやつを使ってます。