ローカルの仮想マシンにTeX Live (LaTeX) をインストール (2)

Apache2 が動いているローカルの仮想マシンに LaTeX と mathTeX をインストールしてみます。

LaTeX のインストール

まず、「ローカルの仮想マシンにTeX Live (LaTeX) をインストール (1)」を参考にしながら LaTeX を入れます。多少条件を変えました。

適当なディレクトリで、

wget  http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
tar  zxvf  install-tl-unx.tar.gz
./install-tl  -portable

で TeX Live のインストーラを USB などで持ち歩くためのモードで起動します。

メインメニューで、

<S> installation scheme

から、詳細メニュー Select scheme: で

a [ ] basic scheme (plain and LaTeX)

を選択します。メインメニューに戻って、

<C> standard collections

の詳細メニュー Select collections: では

a [X] Essential programs and files
o [X] Basic LaTeX packages

の二つが [X] で選択状態なので、 dvipng が含まれる c を追加します。

c [X] TeX auxiliary programs

メインメニューに戻り、

<D> directories:

詳細メニュー Directories setup: の

<1> TEXDIR:       /usr/local/texlive

以下を書き換えます。<1> を入力すると、<2>~<4> は自動的に書き換わります。<5>~<7>は -portable ではパス指定がないので、デフォルトのままです。仮に /home/makisima/texlive/2010 にインストールするなら、

<1> TEXDIR:       /home/makisima/texlive/2010
<2> TEXMFLOCAL:     /home/makisima/texlive/texmf-local
<3> TEXMFSYSVAR:    /home/makisima/texlive/2010/texmf-var
<4> TEXMFSYSCONFIG: /home/makisima/texlive/2010/texmf-config

<5> TEXMFVAR:       $TEXMFSYSVAR
<6> TEXMFCONFIG:    $TEXMFSYSCONFIG
<7> TEXMFHOME:      $TEXMFLOCAL

これでインストールオプションの設定が終わったので、メインメニューの I でインストールを開始します。

Actions:
<I> start installation to hard disk

ダウンロードしながらインストールが行われます。

インストールが終わっても、./install-tl -portable のときは、環境変数をどう設定するかという指示は表示されません。

LaTeX や dvipng が動くかどうか確認するため、フルパスまたは相対パスを指定して実行します。

find / -name latex
find / -name dvipng

でフルパスがわかります。

ちなみに、 dvipng は TeX Live のインストールオプションとしてインストールしなくても、実行ファイル単体ひとつだけを latex と同じディレクトリにコピーすれば動きます。

mathTeX のコンパイル

LaTeX のインストールが終わったら、mathTeX にとりかかります。LaTeX を web から利用する方法は様々にあると思いますが、 mimeTeX との互換性から mathTeX を選びました。mimeTeX が動いている環境なら、mimetex.cgi へのパスを mathtex.cgi に書き換えるだけで、プラグインも同じプラグインで動きます。
まず、

download mathTeX リンクから、仮想マシンの適当なフォルダにダウンロードします。今回は Ubuntu 10.10 desktop です。

mathTeX のページの指示に従い、コンパイルします。latex と dvipng へのパスは、実行ファイル名まで必要です(複数の LaTeX 処理系のどれかを任意に選べる)。また、それぞれの二重引用符の前には\が必要です(忘れるとコンパイルエラーになる)。上に述べてきたような設定で、デフォルトのオプションでコンパイルするときは次のようになります。デフォルトでは GIF 画像が生成されるようになります。

cc -DLATEX=\”/home/makisima/texlive/2010/bin/i386-linux/latex\” -DDVIPNG=\”/home/makisima/texlive/2010/bin/i386-linux/dvipng\” mathtex.c -o mathtex.cgi

mathTeX で LaTeX を動かすときに環境変数はどうするのだろうかと疑問だったのですが、コンパイル時に cgi に組み込んでしまうんですね。したがって、配布用の実行ファイルも存在しないということになります。

できた mathtex.cgi をターミナルで実行できるかどうか確認します。たとえば、

./mathtex.cgi “x^2+y^2” -o equation1

生成された equation1.gif が予想どおりの画像なら mathtex.cgi は正常です。ファイル・ブラウザですぐに確認できます。

Apache の設定

できた mathtex.cgi を apache2 で動かす設定です。

Ubuntu 10.04 desktop に apache2 を入れると、デフォルトでは、ウェブのルートは /var/www です。今回は http://localhost/mathtex/mathtex.cgi に置くことにしたので、/var/www/mathtex/ に mathtex.cgi をコピーしました。なお、apache の設定次第で、どのディレクトリに置いても //localhost/mathtex に見せることは可能です。

Apache2 mod_rewrite と AllowOverride

のときの設定を流用して、/etc/apache2/sites-available/default を

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews +ExecCGI
#Options Indexes FollowSymLinks MultiViews
# AllowOverride None
AllowOverride All
Order allow,deny
allow from all
</Directory>

と書き換えました。公開するわけではないので、とりあえず動けばいいという設定です。apache2 を再起動します。

$ sudo /etc/init.d/apache2 restart

ブラウザで、

http://localhost/mathtex/mathtex.cgi

を開いて

No expression supplied

などと表示すれば動いています。

http://localhost/mathtex/mathtex.cgi?y=x^2

のように ? の後に LaTeX の式を入れて数式画像が表示されれば正常です。

赤字でエラーメッセージが表示されたら

http://www.forkosh.com/mathtex.html の Run-time error messages… の項を参照して対処します。

たとえば、cache ディレクトリ mathtex が作れないと言ってきたら、mathtex ディレクトリのパーミッションを

sudo chmod 777 /var/www/mathtex

といった具合です。

デフォルトのコンパイル オプションでは、 mathtex.cgi のあるディレクトリに mathtex というサブディレクトリを作って、一度生成した画像をキャッシュとして置いておくようになっています。

プラグインの設定

ここまでの設定で、HTML の <img > タグに mathtex.cgi を指定すれば LaTeX 画像を表示できます。たとえば、

<img src=”http://localhost/mathtex/mathtex.cgi?y=x^2″ alt=”y=x^2″ />

WordPress などではプラグインを使うと便利です。mathTeX は mimeTeX と入替えて使えるので、プラグインの mimeTeX への http パスを mathTeX のものに書き換えるだけです。

ちなみに、 mathTeX の配布先に公開サーバがあるので、http のパスをそちらに接続すれば品質確認できます。

mimeTeX から mathTeX に切り替えたとき、そのままでは数式画像が表示されず、WordPress でページを編集→更新すると表示されるという現象が発生しました。このあたりの動作についてはどうなっているのかよくわかりません。

(2010.11.17)

Ubuntu 10.04 desktop の環境設定メモ

Ubuntu 10.04 desktop の環境設定についてのメモ

情報が錯綜していてわかりにくいと思ったら、Ubuntu 7.04 から bash (デフォルトのシェル)の設定をしているファイル名が変わっていたようです。

要は、「 Ubuntu 7.04 で ~/.bash_profile のかわりに ~/.profile となった。ただし、~/.bash_profile が存在する場合は ~/.bash_profile を読み込む」ということになります。

Ubuntu 10.04 の時点でどうなっているのかわかりませんが、少なくとも Ubuntu 10.04 desktop のインストール直後は ~/.bash_profile は存在しません。bash での環境変数の設定は ~/.bash_profile で説明されていることが多いので、~/.profile に読み替えておけばよさそうです。

なお、どちらのファイルもドットファイル(隠しファイル)ですから、ls -a や ls -al としないと表示されません。

環境変数にパスを通す方法は、一旦シェル変数に設定して、export で環境変数へという手順のようです。 ~/.profile に書き込んでしまう場合は、ファイルを修正して、 source ~/.prifile

実際にローカルの仮想マシンで書き換えたのは、gedit で ~/.profile の末尾に次の4行を追加

PATH=”$PATH:/home/makisima/texlive/2010/bin/i386-linux”
MANPATH=”$MANPATH:/home/makisima/texlive/2010/texmf/doc/man”
INFOPATH=”$INFOPATH:/home/makisima/texlive/2010/texmf/doc/info”
export PATH MANPATH INFOPATH

export の行を忘れると環境変数に反映されません。なお、それぞれのパスはインストールの都合上、標準的でないパスにしてありますのであしからず。ファイルを書き換えたら、

source ~/.profile

です。

最近の Linux ディストリビューションは環境設定を特にしなくても、それなりに動いてしまうところが便利でもあり、落とし穴でもありですね。

(2010.11.15)

仮想マシンに LAMP を入れる tasksel

ローカルな仮想マシンに LAMP を入れます。LAMP は Linux、Apache、MySQL、PHP ですね。

ホストは Windows 7 Ultimate、VirtualBox で Linux は Ubuntu 10.04 desktop です。個人でローカルに動かして試すだけなら、Ubuntu server よりも desktop にサーバを入れたほうが日本語等の扱いが楽だと思います。試しに Ubuntu server を入れるなら、まずは英語にしておくのが無難です。

なお、以下、セキュリティは考慮していません。

tasksel で一括インストール

Apache、PHP、MySQL については順に一つずつインストールしてもかまいませんが、tasksel コマンドを使えば、一括で入れることができます。ターミナルで、

sudo tasksel

で、ソフトウェアの選択画面が出るので、上下の矢印で項目を移動し、

[*] LAMP server

にスペースキーでチェック [*] を入れます。[tab] キーで <了解> に移り、[Enter] 。

MySQL の root のパスワードを求められるので入力します。

あとは放っておくとインストールされます。

cf.

動作確認

Apache

Apache (httpd) は Firefox を立ち上げて、http://localhost/ にすると 「It works!」と表示されます。

その index.html は /var/www/ にあります。

ユーザ名が USERNAME なら、

cd /var/
sudo chown USERNAME -hR www

などとしておくとよいかもしれません。

PHP

taskset でインストールした場合(個別にインストールした場合も)、直後はまだ apache が PHP を認識していないので、再起動します。

sudo /etc/init.d/ apache2  restart

適当につくった PHP ファイルを実行させてみます。たとえば、

<?php

print(“hello\n”);

?>

を /var/www/hello.php と名前をつけて保存、ブラウザで URL に http://localhost/hello.php を指定すると、hello と表示されます。(上の例をコピー&ペーストするときは、二重引用符「”」のコードが書き換わっているかもしれないので、半角英数の通常の二重引用符で上書きすること)

環境設定一式を眺めるなら、次のような PHP が実用的です。ただし、セキュリティ上あぶないので、外部には公開しないことが前提です。

<?php

phpinfo();

?>

cf.

phpMyAdmin

MySQL を管理するのに phpMyAdmin をインストールします。

sudo apt-get  install  phpmyadmin

しばらくすると設定をきかれるので、

自動再設定をする web サーバ: [*] apache2

を選択。

phpmyadmin のデータベースを dbconfig-common で設定しますか? <はい>

<はい>を選択。

データベースの管理権限を持つユーザのパスワード:

パスワードを(複数回)入力。

apache を再起動します。

sudo /etc/init.d/ apache2  restart

ブラウザの URL に

http://localhost/phpmyadmin/

と入力すると、phpMyAdmin のログイン画面になります。上述の root のパスワードで入れます。ちなみに、information_schema、mysql、phpmyadmin の3つのデータベースが作られた状態でした。

cf.

(2010.11.10 – 2010.11.11)

このメモは Ubuntu 10.04 desktop の環境ですが、Ubuntu desktop 11.04 日本語版でもほぼ同じでした。(2011.8.9)

(2011.8.9) (一部修正・追記)