TeXインストールエラー「JsclassesのGetInfoで例外が発生しました」対応 ― 2009年07月27日 22時33分29秒
そこで簡単にインストールする方法を検索したところ、阿部紀行氏の作成したTeXインストーラというものがあるということがわかりました。
全体のインストールはこちらが詳しいでしょう。
ところが、私の環境ではインストールの最初の段階でエラーが出ます。同じ症状の人も結構検索すると見つかります。
ということで以下に対応について整理してみます。
現象
インストールの初期段階で「JsclassesのGetInfoで例外が発生しました」というエラーダイヤログが表示されて先に進めません。ログには「Jsclasses::GetInfo : getaddrinfo: no address associated with hostname.」または「Jsclasses::GetInfo : 接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホストが応答しなかったため、確立された接続は失敗しました。 - connect(2)」と格納されていると思います。
現象としては作者の掲示板の「jsclassesについて」と同じです。
この掲示板ではインストーラとしてのエラーは解決していません。
対応方法
以下の概要で対応できます。インストーラの機能をあくまでも使うということが前提です。- 奥村さんのページからjsclasses本体をダウンロード
- ダウンロードしたjsclasses.zipをkakuto3フォルダにコピーする
- kakuto3\pluginフォルダにあるjsclasses.rbファイルを修正する
jsclasses.rbの修正内容
奥村さんのページからダウンロードするURLが記述されている部分をローカル指定に変えてしまいます。修正結果は以下のようになります。要は13行目のURLを「file://」の形式に変更して57行目から87行目をコメントにして「http:チェックをはずす」ということです。
require 'net/http'
require 'uri'
require 'time'
Net::HTTP.version_1_2
class JsclassesClass
def initialize
@ini = ""
@log = ""
@url = "file:///c:/kakuto3/jsclasses.zip"
@size = 0
@success = false
@definstall = true
return true
end
def Info
return [{"softname" => "jsclasses", "info" => "奥村さんによる日本語用のクラスファイルです."}]
end
def Init(ini,log)
@ini = ini
@log = log
end
def IsNeedReboot()
return false
end
def IsNeedSetting(soft)
return false
end
def Set(hwnd,soft)
return
end
def GetInfo(hwnd)
Log("jsclassesの情報取得開始");
if Kakuto3::GETINIINT(@ini,"Connect","UseNetwork") == 0 then
begin
@definstall = File.exist?(Kakuto3::GETINISTR(@ini,"Dir","Hozon") + "jsclasses.zip");
rescue
@definstall = false;
end
return true;
end
uri = URI.parse(@url);
# if uri.scheme != "http" then
# Log("httpでないとダメです.");
# return false;
# end
# Kakuto3::ADDMESSAGE(hwnd,"\r\n\r\n♪jsclassesの情報取得開始♪\r\n");
#
# response = nil;
# Kakuto3::ADDMESSAGE(hwnd,uri.host + "に接続し情報を取得します.\r\n");
#
# proxy = Kakuto3::GETINISTR(@ini,"Connect","Proxy");
# if proxy == "" then
# proxydata = Kakuto3::GETIEPROXYINFO();
# if proxydata == nil || proxydata["server"] == "" then
# proxy = nil;
# proxyport = nil;
# else
# proxy = proxydata["server"];
# proxyport = proxydata["port"];
# end
# else
# proxyport = Kakuto3::GETINIINT(@ini,"Connect","Port");
# end;
# Net::HTTP::Proxy(proxy,proxyport).start(uri.host){|http|
# response = http.head(uri.path);
# }
# Log(uri.host + "に接続成功");
# if response == nil then
# Kakuto3::ADDMESSAGE(hwnd,"情報取得に失敗.\r\n")
# Log("情報取得に失敗.")
# return false
# end
begin
localtime = File.atime(Kakuto3::GETINISTR(@ini,"Dir","Hozon") + "jsclasses.zip");
@size = response['Content-Length'].to_i
nettime = Time.parse(response['last-modified']) + 120
@definstall = (localtime < nettime)
rescue
@definstall = true
end
Log("jsclassesの情報取得終了")
Kakuto3::ADDMESSAGE(hwnd,"完了\r\n")
@success = true
return true
end
def GetDownloadData(soft)
if Kakuto3::GETINIINT(@ini,"Connect","UseNetwork") == 0 then
return {
"success" => true,
"downnum" => 0,
"dls" => []};
else
return {
"success" => @success,
"downnum" => 1,
"dls" => [{
"url" => @url,
"file" => "jsclasses.zip",
"size" => @size}]};
end
end
def IsDefaultInstall(soft)
return @definstall
end
def Install(hwnd,soft)
# 2007/08/03 W32TeXがptexディレクトリをなくす
# dir = Kakuto3::GETINISTR(@ini,"Dir","Install") + "share\\texmf-local\\ptex\\platex\\jsclasses\\"
dir = Kakuto3::GETINISTR(@ini,"Dir","Install") + "share\\texmf-local\\tex\\platex\\jsclasses\\"
from = Kakuto3::GETINISTR(@ini,"Dir","Hozon") + "jsclasses.zip"
Kakuto3::ADDMESSAGE(hwnd,"jsclassesのインストール……")
if Kakuto3::ZIPDLG(hwnd,from,dir) then
Kakuto3::ADDMESSAGE(hwnd,"成功\r\n")
Log("jsclassesのインストールに成功")
return true
else
Kakuto3::ADDMESSAGE(hwnd,"失敗\r\n")
Log("jsclassesのインストールに失敗")
return false
end
end
private
def Log(l)
begin
fp = File.open(@log,"a+")
rescue
return
end
fp.write(l + "\n");
fp.close()
end
end
Jsclasses = JsclassesClass.new
考察
スクリプトを修正してから再度インストーラを実行するとインストーラはエラーを出さずに先に進めるはずです。私の想像ですが、この現象は接続しているプロバイダなどの環境に依存しているのではないかと思います。
ということで私の接続環境を書いておきます。
- Bフレッツマンションタイプ
- VDSL接続
- asahi-net
- WebCaster V100
- バッファローBBR-4HG
- WindowsXP Professional SP3
コメント
_ (未記入) ― 2010年02月11日 00時36分39秒
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。
※投稿には管理者が設定した質問に答える必要があります。
トラックバック
このエントリのトラックバックURL: http://kumikomi.asablo.jp/blog/2009/07/27/4460849/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。


最近のコメント