VNC on Solaris8 (or Solaris9)
VNCを扱ったページはそれはもうたくさんあると思いますが、例によってここで紹介するのはSolaris8に特化した方法です。
いきさつ
論文の図を書くにはtgifが便利。LaTeXで扱うことができるEPSフォーマットを直接作成できます。tgifの操作に慣れた人は、その
便利さのためになかなか他のツールへ移ることができないでしょう。tgifは無料で利用できることも、魅力のひとつです。
また、LaTeXの利用についてはWindowsプラットフォームが便利です。CD-ROM付の書籍が多く発売されていますから、インストーラー
の指示に従っていくだけで、簡単にLaTeX環境が構築できます。
さてこうなると、原稿作成環境と図の作成環境が別々のコンピュータに構築されてしまいます。しかし、tgifにWindows版はあり
ません。かといって、UNIXへLaTeX環境を構築するのは少々困難なところがあります。
そして、利用ツールを変更する予定も無い。
そんなヌルユーザーの私が到達した先は、tgifの画面をWindowsへ転送する案でした。
お金をかけず、手間をかけず、表示速度は度外視。そんな環境を、なんとか構築してみましょう。
構築イメージ
出来上がりはこんな感じになります。大体イメージはつかめます?
インストール方針
- Solaris8を使う。
Solaris8のXを転送します。転送先はWindowsです。
- XDMCPを使う。
ウィンドウだけでなく、Solaris8のCDEをログイン画面から丸ごと転送することにします(XDMCP)。
- tgifを使う。
筆者としては、このツールが正常に動いてほしいのです。
- お金をかけない。
筆者はお金持ちではありません。
コンパイルの準備
必要なもの一式はこちら。
- Solaris8以上が稼動している環境。
当方では、SPARC版のSolaris9を用意しました(Solaris8でも流れは一緒です)。
- /etc/rc2.d/S71rpc と /etc/rc2.d/S99dtlogin が起動している環境。
これが動いていませんと、Xが呼べません。このサービスは止めないでください。
- bison、flex、gcc2.95.2がインストール済みであること。
http://sunsite.sut.ac.jp/ からバイナリーを持ってきて入れるのが楽です(software、solaris binariesの順で辿ってください)。なお、gccのver3系を用いたコンパイルも試しましたが、どうにもうまくいきませんでした。2.95.2の利用が安全です。
そうそう、makeはsolaris8の標準品(/usr/ccs/bin/make)で大丈夫です。
- pathを設定しておくこと。
tcshを使っているなら、ホームフォルダの.cshrcファイルに下記の行を設定しましょう。特に /usr/ccs/bin を設定しないとmakeはおろか、arやldといったプログラムが全然呼べません。
set path = (/bin /usr/sbin /usr/bin /usr/dt/bin /usr/local/bin /usr/local/sbin /usr/ccs/bin /usr/ucb /usr/openwin/bin)
- setenvもしたほうがよいかと。
gccを入れたのにccを呼びにいってしまうかもしれません。また、コンパイルフラグが -O2 だと、x86版のgcc2.95.2では不穏な動きをすることがあります。この両者を解決するために、下記のコマンドを打っておきましょう。以下はシェルがtcshの時の例です。
setenv CC gcc
setenv CFLAGS
- vnc関連のファイルを用意します。
まず、 http://www.uk.research.att.com/vnc/ から、ファイルを取ってきましょう。なお、ここで示すファイルは2002年6月11日現在のものですから、これより新しいものがあれば、そちらを選んでもよいでしょう。
・トップページの左メニューから「Download」を選択します。
・「Other packages」の「Unix sources (2.5M) 」のチェックボックスを選んで右下の「Proceed to download」ボタンをします。
・3.3.3r2(latest)のtgzとtar.Zとzipがあるので、どれでもお好きなアーカイブをダウンロードします(当方はzipを持ってきました)。
コンパイルの手順
vncのアーカイブをunzipして、出来上がったディレクトリに入りましょう。
・sv1(europa)% unzip vnc-3.3.3r2_unixsrc.zip
・sv1(europa)% cd vnc_unixsrc
その後、コンパイルします。手順はこのディレクトリのREADMEに書いてあります。読んでおきましょう。
・sv1(europa)% xmkmf
・sv1(europa)% make World
このコンパイルはすぐに終了します。続けて、Xvncディレクトリへ入って、make Worldを行います。
ここで注意することは、./Xvnc/config/imake/Makefile.iniのファイルにおいてコンパイラがccとなっていることです。ここを先にgccに書き換えておきましょう。
・sv1(europa)% vi ./Xvnc/config/imake/Makefile.ini (好みのエディタでccの部分をgccに書き換えてください)
コンパイルを行います。
・sv1(europa)% cd Xvnc
・sv1(europa)% make World
このコンパイルは結構時間がかかります。ゆっくり待ちましょう。
終了したら、下記のメッセージが表示されます。
Full build of Release 6.3 of the X Window System complete.
インストール
コンパイルが終わったら、早速インストールしましょう。suコマンドでrootになり、インストールを実施します。
・sv1(europa)% su
・Password:
・sv1(root)% cd ..
・sv1(root)% ./vncinstall /usr/local/bin
下記のメッセージが表示されて、完了します。
Copying Xvnc/programs/Xserver/Xvnc to /usr/local/bin
Copying vncviewer/vncviewer to /usr/local/bin
Copying vncpasswd/vncpasswd to /usr/local/bin
Copying vncconnect/vncconnect to /usr/local/bin
Copying vncserver to /usr/local/bin
サーバ環境の設定
vncを起動をinetd経由にします。これにより、サーバ側でvncを起動する手間が省けます。まず、/etc/servicesファイルの末尾に、下記の行を追加します。
・vnc-800x600x8 5950/tcp
・vnc-1024x768x8 5952/tcp
/etc/inetd.confファイルの末尾に、下記の行を追加します。IPアドレスである「xxx.xxx.xxx.xxx」の部分には、このサーバのIPアドレスを記入します。
・vnc-800x600x8 stream tcp nowait nobody /usr/local/bin/Xvnc Xvnc -inetd -query xxx.xxx.xxx.xxx -once -geometry 800x600 -depth 8 -cc 3
・vnc-1024x768x8 stream tcp nowait nobody /usr/local/bin/Xvnc Xvnc -inetd -query xxx.xxx.xxx.xxx -once -geometry 1024x768 -depth 8 -cc 3
/etc/inetd.confへの変更を反映するために、inetdをハングアップします。
・sv1(root)% kill -HUP `pgrep inetd` (ここでの"`"の記号は「Shift」+「@」で出力するものです)
最後にもうひとつ。上記のinetdからの呼び出しによって、/tmp/.X11-unixディレクトリへの書き込みが発生します。
しかし、このディレクトリの所有者はrootであり、しかもotherに対する書き込み権限がありません。nobodyが書き込めるように、このディレクトリにotherに対する書き込み権限を与えます。
・sv1(root)% chmod o+w /tmp/.X11-unix
※この権限の変更は、サーバをリブートしたりローカルでXを利用すると元に戻ってしまいます。Xサーバの起動時に、このディレクトリにwrite権限が書き込まれるように、
/usr/dt/config/Xsetup ファイルの末尾に、下記のコマンドを書き込んでおくとよいでしょう。
chmod o+w /tmp/.X11-unix
以上で、サーバ側の準備が完了しました。
クライアント環境の設定
クライアント側の環境設定はありません。vncviewerを起動するだけです。http://www.uk.research.att.com/vnc/ から、ファイルを取ってきましょう。
・トップページの左メニューから「Download」を選択します。
・「Binary packages」の「Windows 9x/2000/NT (Intel Win32)」のチェックボックスを選んで右下の「Proceed to download」ボタンをします。
・3.3.3r9(latest)のtgzとtar.Zとzipがあるので、どれでもお好きなアーカイブをダウンロードします(当方はzipを持ってきました)。
展開すると、vncviewerというディレクトリがあります。その中に、vncviewerは単体で入っています。これさえあれば大丈夫。早速起動しましょう。
起動したら上記のように、サーバのIP(サーバ名でもよいです)とポート番号を指定します。50だと800×600、52だと1024×768のスクリーンが表示されるはずです。
あとは、通常のデスクトップと同じように扱ってくださいませ。
未解決の問題点
- Solaris9では起こりませんが、Solaris8の場合に800×600の時にフォントが潰れた感じ(もしくは無表示)になります。また、どの解像度においても最初に表示されるSolarisレジスト画面のフォントが化けます。