(toppers-etrobo 18) Re: Fwd: Toppers ET ロボコンセミナーの開発環境構築の質問

yasuo kominami(nifty) ykominami @ nifty.com
2012年 6月 28日 (木) 15:55:11 JST


富田さん、石川さん、皆さん

小南と申します。

2012/6/27 石川 拓也 <t_ishikawa @ ertl.jp>:
> みなさま
>
> 名古屋大学の石川です。
>
> JSPプラットフォームについて、下記のような質問を受けましたので、
> MLに展開致します。
>
> 以上、よろしくお願い致します。
>
> -------- Original Message --------
> Subject: Toppers ET ロボコンセミナーの開発環境構築の質問
> Date: 27 Jun 2012 18:29:00 +0900
> From: Tomita.Masaaki @ jeed.or.jp
> To: etrobo-owner @ toppers.jp
>
> Toppers事務局
> 担当者殿
>
>  お世話になります。kpcロボコンチーム富田です。
> 標記の開発環境の構築について、jspカーネルとjsp-mindstormsnxtを解凍する個
> 所で、以下の解凍コマンドを実行すえるとエラーがたくさん表示されて解凍が終
> 了します。
>  $tar zxvf jsp-1.4.4_nxt.tar.gz
>  $tar zxvf jsp-mindstormsnxt-1.4.4.tar.gz ここを実行するとエラーが
> 表示される。
>
> 以上はETロボコン用にインストール済みのcygwin開発環境に追加しようとしたも
> のです。
> エラーの原因と考えられるものがありましたら、ご指摘ください。
>

エラーメッセージなど、画面に表示されるメッセージは内容はどうだったのでしょうか。
一口にエラーといっても、エラーの種類、エラーが発生した原因は様々です。

画面に表示されるメッセージは、そのエラーの種類、エラーの原因を切り分けるための
重要な手がかりです。

私の経験では、以下の三種類の情報が質問に含まれていると、より早く、より的確な
返事がもらいやすいです。

a)どういう環境、どういう状態のときに、
b)どういう操作をしたら、
c)どうなったか
 (どういうメッセージが表示されたかなど)

今回のようなコマンドラインでの操作の場合、b),c)はウィンドウのコピーアンドペースト
を貼り付けることが、最も手軽で、かつ最も正確になります。

cygwin(UNIX系OSを含む)のbash上での操作であれば、c)について

 コマンド  > ファイル名 2>&1

というリダイレクトで1つのファイルに書き込むことができます。
上記のやり方は、標準エラー出力と標準出力を1つのファイルに書き込むことができます。
(つまり、画面に表示されるメッセージをファイルに書き込むということです)



今回のエラーの具体的な種類、原因は分かりませんが、私は今までに、以下のような
エラーを経験しました。

1)アーカイブファイルが壊れれている
2)cygwinのtarコマンドを実行中にメモリが不足した
3)cygwinのtarコマンドを実行中に異なるバージョンのcygwin1.dllを読み込んだ

1)の場合
私の環境(Windows 7 Home Premium、uname -r の実行結果は 1.7.15(0.260/5/3))
では、jsp-mindstormsnxt-1.4.3.tar.gz はエラーが発生することなく、ファイルを取り出す
ことができました。

cygwinのmd6sumコマンドで調べた、該当ファイルのMD5の値は以下の通りです。

>md5sum jsp-mindstormsnxt-1.4.3.tar.gz
2ae5591eacad7ba86d5d3d6a2aaa1774 *jsp-mindstormsnxt-1.4.3.tar.gz

2)の場合
エラーメッセージに"ca't allocate memory"などと表示されたら、必要でないアプリケーション
などを終了させて、できるだけ空きメモリを多くしてから、tarコマンドを実行してみてください。

3)の場合
エラーメッセージに”can't rebase”などと表示されていれば、このことが原因と考えられます。

cygwinのコマンド、プログラムは実行時にcygwin用のDLL(cygwin1.dllなど)をロードします。
DLLがコンパイル時に想定しているのと異なるバージョンのDLLがロードされることが原因で
発生するエラーです。

cygwinがPC上に唯一つインストールされている場合では発生しませんが、複数の開発環境
をインストールした結果、異なるバージョンのcygwinが存在することも十分ありえます。

環境変数PATHで指定したディレクトリに複数のcygwinのDLLが存在しないようにすれば、
このエラーは避けれます。

使わないものはアンインストールしたほうが確実です。

どうしてもcygwinを混在させたいならば、環境変数PATHの値を変更して、環境変数PATH
からは、1つのcygwinしか参照されないようにすることでエラーを避けられます。
.bashrcで、環境変数PATHを再設定(必要最小限のディレクトリを指定する)したほうが無難です。