last update 2003.04.吉日 since 2002.08.15

Cygwinとおたわむれ


我々のスポンサーも訪れてください。

「X on Windows 2 の一部を構成するrpm集」用インストーラ

rpmが公開されましたので、近々にインストーラのβ版を公開したいと思います。 以前のインストーラを少し改造したもので動作しています。

「はじめに」の前に

2003.03.27にホロンから「X on Windows 2」が発売されました。 このページは「X on Windows 1」の大半を構成するRPM群がホロンのftpサイトに置いてあることを前提にしています。 「2」の発売により「1」のRPM群が消された時点でこのページの存在価値がゼロになりますので ご了承ください。

はじめに

このページを作って半年もたっていないのに10000ヒットするとは驚きモモの木さんしょの木。(ズルッ)

っとくだらないことを言いつつ「はじめに」は始まるのでした。

このページでインストールするCygwinは、いわるゆ本家Cygwinの最新版ではありません。 またHolonの製品版「X on Windows」とも違います。

このページではHolonがFTPで公開しているファイル群(RPM)を使って独自にCygwin環境を構築しています。 このファイル群は「X on Windows」を構成するファイルの一部ではありますが、 「X on Windows」そのものでは全くありません。 また「X on Windows」を持ってないので「X on Windows」が どうインストールされているかも関知していません。

ひとことでいうなら

「本家Cygwinではなく、X on Windowsでもない、もうひとつのCygwin」

かも。ただしCygwinであることは間違いない気がします。(汗)

上記の事情により使用中にトラぶった時に、問い合わせ先が存在しませんので自己解決 努力が必須となります。 ただCygwinの一般的なことは共通している部分が多々あるので、 それはそれで情報として活用できると思います。

このページは、

「適当にインストーラを作ったら適度に動作しているように見えたので、公開してみた」

というのが本質的なところで、自分自身はCygwinについて全くド素人です。

従いまして、

「本家Cygwinのほうがいいかも」と思ったかたは「本家Cygwinをインストール」しましょう。

「X on Windowsのほうがいいかも」と思ったかたは 「X on Windows」 を購入しましょう。(オイ)

それでもなお興味シンシンなかたは、以下を読み進みましょう。

Cygwinインストーラ

なんかHDDの中にCygwinがいっぱいあって収拾つかない状態なので この辺で常用するCygwinを決定する。その条件は、

この条件をさくっと実現できるCygwinと言えばHolonの「(FTP供給物)」しかぬあーい。(でもないが) 正確には「HolonのFTPサイトに置いてある"X on Windowsを構成する大半のRPM群"をダウロードして独自にインストールする版」かな。 で「これようのインストーラ」があれば削除、再インストール等もお気軽なわけで、作ってみました。

インストール後の仕上がり具合

「インストール後に」以下の状態になるようにしました。

注意

以下で述べるインストールは、Holonの製品版とは一切無関係です。 あくまで、FTPで提供されているRPMファイルに基づくものですので、 Holonに問い合わせるなどお茶目なことは一切おやめください。 またインストーラの前半は、

X on Windowsのパッケージを使ってみる のページの内容を参照にさせて頂いてm(__)mスクリプト化しています。

心の準備

ntsec

このインストーラはCYGWIN=ntsecでの動作を全く考慮していません。ntsecが必要な方は独自に対処してください。

Windows95/98/Meについて

個人的に非NT系OSは大嫌いなので、このインストーラでWindows95/98/Meに ついての動作検証を全くする気がありません。さらにインストーラでWindows95/98/Meを 蹴るようにしてあります。 このインストーラを試そうという方はWindows XP以降でお願いします。 (NT 2000でも可ですが)

cygwin-inst-0.6.lzhでインストールした方へ

「gzip.exe」「tar.exe」「instkit2.tar.gz」はこれinstkit-pack.lzhを使ってください。

Ver.0.6ではスクリプト自動生成を一部ミスっていまして、cygwin-rxvt.batを起動するたびにcannaserverの 常駐が増えていきます。非常に気持ち悪いので、以下のように修正してください。

インストール後にできるcygwin-rxvt.batの5行目あたりにある以下の文を

if 0==0  goto startcanna

以下のように修正してください。

if %ERRORLEVEL%==0 goto startcanna

次に以下のスクリプトを「cannatest.sh」という名前でcygwin-rxvt.batと同じフォルダにセーブしてください。

#!/bin/bash

if [ -e /var/lock/subsys/canna ]; then
	exit 1
fi
exit 0

これでcannaserverの起動を1回に制限できます。(Ver.0.7と同じ状態になります) インストールを複数回繰り返す(^^;ような使い方をするなら、Ver.0.7をゲットしたほうがいいかも。

お気楽極楽GUIインストーラでインストール

準備と覚悟ができたところで、<URL:cygwin-inst-0.8.lzh>(約1.6Mバイト)をダウンロードします。

  1. そのあとインストール先のcygwinフォルダ中のcyglauncher.exeをクリックすると以下のようなバッチファイルランチャが起動します。
  2. このバッチファイルランチャはその名のとおり上のバッチファイルを決め打ちでShellApiで呼び出しているだけのお手抜きなものですが、大体2.5倍くらい使いやすくなったような錯覚におちいります。(爆)
  3. ランチャを起動するとデスクトップにランチャのショートカットが作成されます。

ランチャボタン対応するバッチファイル
Rxvtcygwin-rxvt.bat
Consolecygwin.bat
Xxmain.bat
X端末1xserver.bat
X端末2xserver2.bat
CannaStopcannastop.bat
remountremount.bat

日本語入力方法

rxvt-w32j上X Window上
vim(vi)Windowsと同じShift+スペース
xemacsCTL+¥Shift+スペース

Good luck !

このインストーラについて

名称:Yet Another Installer

バージョン:0.8

動作内容:

対応OS:Windows XP/NT2000 /起動時にOSチェックをしているのでこれ以外のOSでは起動しません(のはず)

また以前にはなかった不具合があるやもしれません。 inst.gif

インストーラのデザインは意味も無く変更される可能性が大です。

クリック一発、再マウントスクリプト

この内容は、cygwin-inst-0.4.lzh以降から対応です。

下にででくる「本家cygwinもそっちはそっちで...」に対応するスクリプト「remount.bat」が/cygwinの中にあります。 これをクリックするとインストール直後のマウント状態に戻すことができます。 「remount.sh」を編集してマウントポイントを追加すればさらに便利になるかと思います。 本家Cygwin用のスクリプトは各自で作成してください。

本インストーラを使ってドライブGにCygwinをインストールすると以下のようなremount.batバッチファイルと

@echo off
set cygdrv=g

set CYGWIN=nontsec nowinsymlinks
set PATH=%cygdrv%:\cygwin\miniroot\bin;%cygdrv%:\cygwin\usr\bin;%cygdrv%:\cygwin\bin
echo --- 警告 ---------------------------------------------------------------
echo これは「Cygwinドライブ再マウント」スクリプトです。
echo 全てのマウントを解除した後「remount.sh」の内容に従って再マウントします。
echo 動作内容がわからないときはこのままウインドウを閉じてください。
echo 最初に表示されるのが現在のマウントポイントです。
echo 続行する時は何かキーを押してください。
echo ------------------------------------------------------------------------
pause

mount

pause
umount -A
ash remount.sh %cygdrv%
mount
echo ------------------------
echo 再マウントが終了しました。
echo ------------------------
pause

同様に以下のようなremount.shスクリプトが/cygwinの中に生成されます。

#!/bin/sh
drive=$1
mount -b -s $drive:\\cygwin /
mount -b -s $drive:\\cygwin\\usr\\bin /usr/bin
mount -b -s $drive:\\cygwin\\usr\\lib /usr/lib

独自のマウントポイントを増やしたいときは以下のようにremount.shに追加します。

#!/bin/sh
drive=$1
mount -b -s $drive:\\cygwin /
mount -b -s $drive:\\cygwin\\usr\\bin /usr/bin
mount -b -s $drive:\\cygwin\\usr\\lib /usr/lib
mount -b -u c:\\laputa /home/dareka/homepage       # <--- 追加行

この状態でremount.batをクリックすれば上のマウントポイントに再設定されます。 remount.bat中の「ash」は「bash」でも可だと思います。また、remount.bat の中でマウントしてしまう手もありかも。

ただし、普通はこれらのスクリプトは必要ないと思うので忘れてください。(オイ)

アンインストールは?

アンインストールするときは「cygwin」ディレクトリごと削除してください。 必要ならホームディレクトリ以下のバックアップをとってください。

開発系のRPMをインストールする

上のインストーラでは開発系のRPMをインストールしないのでGCC等のコンパイラでエラー がでます。標準的なC言語のソースをコンパイルするにはRPMのあるフォルダで

$ rpm -hiv cygwin-devel-1.3.5-3h1.i586-cygwin.rpm

でOKです。 またGTK+のアプリをコンパイルするなら使用するライブラリにもよりますが

gtk+-devel-1.2.10-1h6.i586-cygwin.rpm
glib-devel-1.2.10-2h3.i586-cygwin.rpm
XFree86-devel-4.1.0.1-4a.i586-cygwin.rpm
...

等が最低限必要になるかと思います。 面倒な場合全ての開発系のRPMを以下のようにインストールすればよいかと思います。 devel系のRPMがあるフォルダーで

$ rpm -hiv *-devel-*rpm

とします。

本家cygwinもそっちはそっちで破綻無く動くようにしたい

HolonのFTPは全然更新されないというか最新を追っかける気がないようだ。 本家cygwinはアップデートが使命のようにガンガン更新されます HolonがガシガシRPM群を最新版にアップしてくれればいいんだが… 本家cygwinとHolonのFTPのを別ドライブにインストールしてそれぞれが 動くようになればそれはそれで安心かも。

例えば mount コマンドを打ってみると

$ mount
g:\cygwin\usr\bin on /usr/bin type system (binmode)
g:\cygwin\usr\lib on /usr/lib type system (binmode)
g:\test on /home/myname/homepage type user (binmode)
g:\cygwin on / type system (binmode)
c: on /cygdrive/c type user (textmode,noumount)
d: on /cygdrive/d type user (textmode,noumount)
e: on /cygdrive/e type user (textmode,noumount)
f: on /cygdrive/f type user (textmode,noumount)
g: on /cygdrive/g type user (textmode,noumount)

こうなる。 この情報から以下のようなスクリプトを生成すれば、再マウントが可能となります。

-- ドライブG用のマウントスクリプト
#!/bin/sh
mount -b -s g:\\cygwin\\usr\\bin /usr/bin
mount -b -s g:\\cygwin\\usr\\lib /usr/lib
mount -b -u g:\\test /home/myname/homepage
mount -b -s g:\\cygwin /

たとえば、上のは「ドライブGにインストールしたHolonのcygwin」用

-- ドライブR用のマウントスクリプト
#!/bin/sh
mount -b -s r:\\cygwin\\usr\\bin /usr/bin
mount -b -s r:\\cygwin\\usr\\lib /usr/lib
mount -b -s r:\\cygwin /

たとえば、これは「ドライブRにインストールした本家cygwin」用となる

Gドライブのcygwinを正しく動かしたいときは、

$ umount -A

を実行したあと「ドライブG用のマウントスクリプト」を実行すればよい。 ということになる。それぞれのマウントスクリプトを実行すれば それぞれのcygwinが破綻無く動作できます。当然ながら両方同時実行はできません。

本家cygwinのX Windowのほうが起動時間が短い件について

現在検証中ですが、本家「cygwin」と同じ内容の「startwinx.bat」をHolonのFTPのやつで実行すると 起動時間は同じ(twm時)なので日本語がらみの設定の差異かも知れない。 というより、.xinitrcや.Xdefaultsの中のスクリプトを順に実行しているので時間がかかるのでしょう。 X Windowの起動を何度も繰り返さないようにするのが吉でしょう。

アップグレードする

上でインストールしたフルインストール版にHolonのFTPで提供されているUpdate.shを適用してもイマイチうまくなかったので、修正アップグレーダを作ってみました。問題点とは、

対策は、

です。

Upgrade

/home/hoge/tmp---Update.sh
               |
               --RPMS
               |
               --files

という風にtmpの下に作るほうがベターだと思います。

/home/hoge/tmp--- Update.sh
               |  upgrade.sh
               |  Update.diff
               |  gtkrc.ja
               |
               --RPMS
               |
               --files

のようになります。アップグレードは、upgrade.shのあるディレクトリで

sh upgrade.sh

と実行します。その後Cygwinを再起動させます。

ゴキゲン最小 Xサーバ編(2003.03.末日)

FreeのXサーバってVNCを除くとろくなのがないので、Cygwinをなるべく最小インストールでXサーバにしてみたい。

VNC

Xサーバがほしいだけなら、cygwinをインストールする必要はなくて、VNCを使いましょう。これは相当ろくなやつです。

ここを参照してね。 172KByteでXサーバ(風らしい)が動きます。(^^;

Cygwinでクリック一発Xサーバする

フルインストール状態でxdmサーバにつないでX端末にするには、インストール時にIPアドレスを適切に 設定してあれば、cygwinフォルダの「xserver.bat」をクリックするだけです。

不適切な設定の場合「xserver.bat」を正しく編集してください。

いらないファイルは削る(X端末に徹する)

そんなわけで、わかる範囲でファイルを削っていったところ、こうなりました。 ファイル削除の度合いが手ぬるいかもしれませんが、気にいらない場合は各自でrpmファイルを削除してください

HDD容量比較

インストールタイプ必要rpm容量インストール後のファイル容量備考
フルインストール400MB900MBオイ
ゴキゲン最小 Xサーバ67MB137MBフォントは自分で持つタイプ
更ゴキ最小 Xサーバ30MB82MBフォントはフォントサーバにお任せタイプ

こりゃゴキゲン。

FreeのXサーバとしてはCygwinが一番動作がまともだと思う。(MI/X,WiredXとの比較ですが)

インストール

最小構成Xサーバを求めない場合と意味がよくわからない場合は、以下のことは全くする必要がないので無視してください。(フルインストールでも当然Xサーバなわけで)

フルインストールしたcygwinを削除するか、別ドライブにインストールします。

別ドライブにインスコしたときは、「remount.bat」で切り替えると。(そんなことしないと思うが)

GUIインストーラで、

xserver.batの中身の基本は

X -query xdmサーバ名 -from 自分のIP -fp tcp/xdmサーバ名:7100

です。デフォルトでフォントサーバなしですが、この状態で正しくつながることを確認してから フォントサーバ接続を有効にしたほうが無難です。

xdmサーバ上でフォントサーバが動いていないときは、「-fp tcp/xdmサーバ名:7100」の部分を省略します。 (ただし「最小 Xサーバ2」の場合は省略するとフォントがまともに表示できません) なるべくxdm上のフォントサーバを利用したほうがよいと思います。

VineLinux2.5に接続してGnome上でMozillaしてみた図

TeXについて

Windows上でTeXをしたい人は以下のリンクから得られる 情報をもとにWindows版のTeXを入れましょう。わざわざCygwinのTeXを使わなくても 良い気がします。(^^;

日本語TeX情報--必見

ワープロユーザのためのLaTeX入門--このページは大変すばらしい

RPMS補完計画

上でフルインストールした無料で入手できる「X on WindowsのFTPのRPMで構築したcygwin」で簡単にコンパイルが通るものをRPM化してみました。

ポリシーは、「VineLinux,Momongaその他で既にspecファイルが存在する」、「簡単にコンパイルが通るもの」、 「ファイルサイズの小さいもの」、「HolonのFTPにない、または新しいもの」、「興味のあるもの」です。


我々のスポンサーも訪れてください。

GNU Pascal Compiler (GPC)

Pascalというのはとっつき易い言語だが関連書籍を見つけるのは難しいんだろうなと思う。 ヨーロッパと学術系で今後も活躍してください。GPCのホームページはここ gpc-2.1-1.i586-cygwin.rpm(約3メガバイト) コマンドラインで

$ rpm -hiv gpc-2.1-1.i586-cygwin.rpm

ホームの「.bashrc」に以下のようなパス設定を追加します。

PATH=/cygnus/usr/bin:$PATH

その後

$ source .bashrc

またはコンソールを再起動すれば使えるようになります。

$ gpc --automake -o hello hello.pas

でPascalソースをコンパイル。「--automake」はこの場合なくても可です。

/cygnus/usr/doc/gpc/demos
/cygnus/usr/doc/gpc/docdemos

にサンプルソースがあります。

gnotepad+

HTMLエディタです。日本語表示、入力ができます。起動は

gnp&

です。 日本語入力するには、

で次回起動時から日本語表示、入力が可能になります。 画像

gnotepad+-1.3.3-1.i586-cygwin.rpm

少々不安定ところがみうけられました。

RDToolとRTToolとrd2sdoc

HTML文書を少ない記述で生成することができます。(RDTool)

RD文書をSmartDoc文書に変換できます。(rd2sdoc)

RDToolで書いたページへ ゴーゴー!

xsnow,xfishtank,xfusen(付箋)とかxengineとかxgalaga

小物です。xsnowは結構気に入ってます。

<URL:xsnow-1.40-1.i586-cygwin.rpm>

<URL:xfishtank-2.1tp-1.i586-cygwin.rpm>

<URL:xfusen-0.3.0-1.i586-cygwin.rpm>

うちの測定値は以下のようです。

<URL:xengine-1.10pl1-1.i586-cygwin.rpm>

画像

SRPM

なつかしのシューティングゲーム。 <URL:xgalaga-2.0.34-4.i586-cygwin.rpm>

画像

ruby-gtk-0.25

RubyでらくらくGUI。ruby-gtkを使えば、面倒な開発環境のインストールをすることなく いきなりRubyでGUIアプリを書き始めることができます。ただし、GTK+のプログラミング については知識が必要でしょう。 書籍紹介:Ruby/GTK プログラミング入門 この本を持っているわけではありませんが(汗)

<URL:ruby-gtk-0.25-2.i586-cygwin.rpm>

FDclone Ver.2.01b

ソース部分のパッチの出典は <URL:http://www2.raidway.ne.jp/~yzone/dists/cygwin/FDclone2/>

で、X on Windows上ではリンクが通らなかったのでほんの一部修正しました。

<URL:FD-clone-2.01b-1.i586-cygwin.rpm>::<URL:FD-clone-2.01b-1.src.rpm>

kterm上でFDcloneを使う

kterm上だとTERMエントリがないと怒られるので、/etc/termcapの最後に以下を追加しています。

vk|kterm|kterm kanji terminal emurator (X window system):\
:hs:es:ts=\E[?E\E[?%i%dT:fs=\E[?F:ds=\E[?H:tc=xterm:

出典は失念しました。

参考文献

Making RPM(rpm-3.0x対応版)

Vine Linux用 RPM

昔作ったFDcloneパッチ

ずっと前にFD1.03系のころに、cygwinでFD動かしたくて作った記録です。

今ではは古くなってしまいましたが...

Cygwinがいっぱい

うちのHDDの中にはCygwinがいっぱいあったのでした。

最後は 「X on Windowsのパッケージを使ってみる」のページのcygwinを 入れてみたのですが、これがまたashにヒストリ機能がないせいで(あるのかなぁ?) 悶絶するほど苦痛でした。コピペの方法も知らんかったし(汗)

例えば、

$ ./rpm -i /holon/setup-2.4.9-1h6.i586-cygwin.rpm
$ ./rpm -i /holon/filesystem-2.0.7-1h1.noarch-cygwin.rpm  
$ ./rpm -i /holon/basesystem-3.0-1h3.noarch-cygwin.rpm    
$ ./rpm -i /holon/termcap-20010825-2h1.i586-cygwin.rpm
$ ./rpm -i /holon/libtermcap-20010825-2h1.i586-cygwin.rpm
$ ./rpm -i /holon/ncurses-5.2-5h1.i586-cygwin.rpm
$ ./rpm -i /holon/mktemp-1.5-11h3.i586-cygwin.rpm
$ ./rpm -i /holon/bash-2.05-4h5.i586-cygwin.rpm
$ ./rpm -i /holon/zlib-1.1.3-22h1.i586-cygwin.rpm
$ ./rpm -i /holon/etcskel-2.3-1h9.noarch-cygwin.rpm 
$ ./rpm -i /holon/ash-20010827-2.i586-cygwin.rpm
$ ./rpm -i /holon/info-4.0-20h3.i586-cygwin.rpm
$ ./rpm -i /holon/grep-2.4.2-4h2.i586-cygwin.rpm
$ ./rpm -i /holon/bzip2-1.0.1-3h1.i586-cygwin.rpm
$ ./rpm -i /holon/db3-3.1.17-6h3.i586-cygwin.rpm
$ ./rpm -i /holon/popt-1.5.1-4h8.i586-cygwin.rpm
$ ./rpm -i /holon/file-3.33-1h1.i586-cygwin.rpm
$ ./rpm -i /holon/XFree86-libs-4.1.0.1-4a.i586-cygwin.rpm
$ ./rpm -i /holon/gettext-0.10.38-7h7.i586-cygwin.rpm
$ ./rpm -i /holon/rpm-3.0.6-4h8.i586-cygwin.rpm

というのをヒストリ機能なしでノーミスで入力するのは自分には曲芸に近いわけで。(爆)

ならばスクリプト化できればお気楽極楽、失敗もなし。やり直しも「し放題」。 というわけでせっせとスクリプトを作ったのでした。

S・RPMについて

SRPM/RPMはHDDの空き容量がないので未掲載です。 必要な方はメールをいただければファイルをメールします。 (デカイかも)

最後に

このページに出てくる商標登録された文字列はその会社の登録商標です。

結局このページもRDToolで再生成してしまいました。(^^;

このページの内容を実行しようとする方はあくまで自己責任においてお願いします。 こちらの環境で動作確認はしてありますが、全ての不特定環境での動作確認は できるはずもなく、その点をご理解いただきたく。

また、各種設定についてはこちらで独自に設定したものです。 もっと最適な設定がある場合は各自で変更をお願いします。

ご意見、ご感想は、mitchi(inu_no_kuma_san@infoseek.jp)まで。

リンク

HHKとおたわむれ

Lyxとおたわむれ