by shigemk2

当面は技術的なことしか書かない

信じて導入したgnupackのEmacsが起動時にcannot open fileエラーでめっ☆されてドハマリした

f:id:shigemk2:20131120005717p:plain

またもドハマリした

今度は、もともと持っててParallelsに吸い出したwindows xp sp2で gnupackを使うのを試したら、

cannot open file cp5022x.el

とかなんとかエラーが出たんですけども、 昨日のエントリと同じような感じになっちゃって、酷くイライラしました。

とかくぐぐってもまともな答えが得られない。

原因は、格納パス

しょうがないので、公式に戻ってみると、とても面白いことが書いてありました。

gnupack Users Guide - はじめに

2013-01-03時点の gnupackの制約事項は以下のとおりです.下記の制約事項は gnupackで提供しているソフトウェア自体に起因する内容も含まれます.
gnupackの格納パスのいずれかに日本語が含まれている場合,emacsが正しく動作しない場合があります.
設定ファイルのフォント名が誤っている場合,エラーメッセージを表示することなく emacsの起動に失敗します.
システムの環境変数 TMPと TEMPに存在しないディレクトリを設定していた場合,bashおよび emacsの起動に失敗します.
gnupackの環境変数 LANGを ja_JP.utf8にするとデスクトップ(/top)のマウントに失敗します.
cygwinの gcc以外でビルドしたバイナリは cygwinのマウントポイントを認識できません.
環境変数 CD,DESK,INST_DIRは起動プログラムの内部ロジックで使用しているため,設定を変更すると正しく動作しない可能性があります.
emacsおよび bashの初回起動時に起動が失敗する場合があります.原因不明.

そう、gnupackの格納パスに日本語が混ってた!!

C:¥Documents and Settings¥名前

この直下にgnupackのフォルダが展開されておりました。 (だってプログラマ始める遥か昔に買ったやつだからそんなの気にしないし…)

格納パスを変える その1 名前を変える

この名前を変えたらいいんだね。 ってことでフォルダの名前を変更しようとしたけど怒られて出来ませんでした。

次に、使用者を変更したら「名前」のフォルダ名も変わるんじゃね?と思って、 使用者を変更しました。 (これは直接レジストリを弄る作業なので、会社支給のPCだと出来ない場合があるよ)

http://www.geocities.jp/le_grand_concierge/geo_contents/WinXPOwnerChange/WinXPOwnerChange.html

→やったけど変わらず…

格納パスを変える その2 展開する場所を変える

しょうがないので、

C:¥Users¥¨shigemk2

みたいな感じで新しくフォルダを作って、そこにgnupackを展開しました。

するとどうでしょう。ちゃんとEmacsが動作してくれます。

あーめでたしめでたし。

まとめ

何を言ってるかよく分からない感じでしたね。 僕もなぜそうなのかあまり理解できていません。 結局なぜ格納パスに日本語が混じってたらうまく起動しないのか 微妙に謎ですが、とりあえず起動してもまともに動かない場合は、 格納パスを見たらよいのではないでしょうか。

というか、答えが公式に書いてあったので、まずは公式のドキュメントを確認すべしって ことですね。ええ。