新しくサーバーを用意することになって,ubuntu 10 をインストールしたら,マザーボード(Intel/インテル BOXDH61DLB3)のLAN機能を利用できなかった。付属のCDROMにドライバーがあって,何とか通信できるようになったが, ubuntu の自動updateの度に通信ができなくなる。何かと不便なので, ubuntu をver.11にしようと試みた。
LAN機能は最初から認識されていて,updateしても大丈夫である。
日本語環境のインストールが変更されていて,セットアップヘルパが無くなった。下記のサイトに従って作業した。
https://simple-note.appspot.com/publish/p15pY6 コマンドは下記。 $ sudo apt-get install texlive texlive-math-extra ptex-bin xdvik-ja $ sudo apt-get install dvipdfmx cmap-adobe-japan1 ptex-jisfonts okumura-clsfiles jmpost jbibtex-base jbibtex-bin mendexk $ sudo jisftconfig add
さて,stack-jaなどの設定である。stack-jaはstack 2.0をもとにしたもので,これは前と同じものを使用する。関係するアプリのバージョンは,少し変化していた。
maxima ver 5.24.0 gnuplot ver 4.4.3
これが関係したのか確認はしていないが,確認用のhelthcheck.phpで、例によってグラフが出ない。ただ今回は下記のように表示されていた。
STACK autogenerated plot
画像ファイルは/stack-ja/tmp/の中に大きさがゼロバイトのpngファイルができていた。
上記のメッセージは下記のファイルが作成している。
/stack-ja/maxima/stackmaxima.mac
まず、stackmaxima.macの中で画像作成用の一時ファイルの消去を止めた。
下記の部分が、gnuplotへのコマンドと一時ファイルの消去の部分である。tfnには一時ファイルのフルパス名が入る。
sysp:concat(GNUPLOT_CMD," ",tfn), sysr:concat(DEL_CMD," ",tfn), print(sysp), system(sysp), system(sysr), simp:old_simp,
この中の system(sysr) をコメントアウトした。そうすると(それぞれの設定に依存するが,例えば)/www/stack/stacklocal/の中に
stackplot-????????-????????.plt
という名前のファイルが残される。?のところは数字が入る。これを上手く動いているサーバーのものと比べると、下記の行が余分に加わっている。
set term pop
これを削除するためにstackmaxima.macを書き換える。先に引用した部分に,下記のように追加する。
syspp:concat("/var/www/html/stack-ja/maxima/delSetTermPop.php"," ",tfn), system(syspp), sysp:concat(GNUPLOT_CMD," ",tfn), sysr:concat(DEL_CMD," ",tfn), print(sysp), system(sysp), system(sysr), simp:old_simp,
delSetTermPop.php の中身は下記。つまり元の一時ファイルを読み込んで,一行消すだけだ。$argv[1]は起動時に渡すオプションのことで、ここでは一時ファイル名が入っている。
#!/usr/bin/php -q <?php $tmp = file_get_contents($argv[1]); $tmp = ereg_replace("set term pop","",$tmp); $pointer=fopen($argv[1], "w"); flock($pointer, LOCK_EX); fputs($pointer, $tmp); flock($pointer, LOCK_UN); fclose($pointer); ?>
実効可能とすることを忘れない。これでグラフは表示される。
他には評価関数にエラーが出ていた。積分に関して、不定積分の判定でエラーが生じている。stackのバージョンを上げることが必要なのかもしれない。