[記]2010-6-8(火), [PC]MSYS
[記]2010-6-8(火)
[PC]MSYS
Windows上でUNIXコマンドを使いたい場合に、選択肢のひとつとしてCygwinがあります。
CygwinはPOSIXを真面目にエミュレートしてくれるので、UNIX用のソースコードがほぼそのままコンパイルできたりして便利です。
ただ、その反面、ちょっと重いという欠点もあります。イマドキのPCなら、あんまり気にするほどのこともないのですが。
Cygwinは重すぎるという人向けに、MinGW/MSYSなんていうものがあります。
MinGWは、"Minimalist GNU for Windows"の略です。
MSYSは、"Minimal SYStem"の略です。
Windows上でGNUツールキットを使うことを目的とした最小限のシステムです。
GNUなので、完全にフリーです。フリーというのは価格が無料ということではなくて、自由に利用できるということです。
まともなblogなら、ここでダウンロード方法とかインストール方法を説明するところですが、そんなのはググればいくらでも見つかるので割愛します。
とりあえず、私は今のところMinGW(ソフト開発)を使う予定はないので、MSYSだけインストールします。
以下は、作業内容をメモした程度のものなので、あくまで参考に。とか、ありがちな保険をかけてみたり。
まずはSourceforgeのMinGWの公式サイトに行きます。
『DOWNLOAD』から、『All Files』の『MSYS』を探して、
BaseSystem
MSYS-1.0.11.exe
これをダウンロードしてインストールするのが、一番手っ取り早いです。
最新のmsysCORE
は1.0.14
なのですが、1.0.12
以降はインストーラーが提供されていないようです。1.0.11
をインストールしたあと、最新版を上書き展開するのが楽チンです。
ですが、ここは敢えて、最新版をイチからインストールしてみます。
そういうことをするからパッケージの依存関係に悩まされるわけですが。(便宜上、勝手にパッケージと呼んでいます。)
ともあれ、BaseSystem
, coreutils
, bash
は必須でしょう。
BaseSystem
msysCORE-1.0.14-1-msys-1.0.14-bin.tar.lzma
coreutils
coreutils}-5.97-3-msys-1.0.13-bin.tar.lzma
coreutils}-5.97-3-msys-1.0.13-lang.tar.lzma
bash
bash-3.1.17-3-msys-1.0.13-bin.tar.lzma
こんな感じですね。lang
は別に入れなくていいですけど。
ちなみに、lzma
はファイル圧縮書庫形式のひとつです。zip形式より圧縮率がよいのでオススメです。展開するには7-ZIPがオススメです。
これらのファイルを、インストーラーと同様にC:/msys/1.0/
に展開して、C:/msys/1.0/postinstall/pi.bat
を実行してみます。
するとどうでしょう、
msys-regex-1.dllが見つからなかったため、このアプリケーションを開始できませんでした。
これだ、これが逆境だ。
bash
のリリースノートを見ると、必要なランタイムについて書いてあります。
Runtime requirements: msysCORE-1.0.13-2-msys-1.0.13-bin libtermcap-0.20050421_1-2-msys-1.0.13-dll-0 termcap-0.20050421_1-2-msys-1.0.13-bin libregex-1.20090805-2-msys-1.0.13-dll-1
これらもダウンロードしてインストールします。リリースノートに書いてあるバージョンより新しいものを使えばいいようです。
termcap
libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma
termcap-0.20050421_1-2-msys-1.0.13-bin.tar.lzma
regex
libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma
これで、C:/msys/1.0/postinstall/pi.bat
が実行できるようになりました。
This is a post install process that will try to normalize between your MinGW install if any as well as your previous MSYS installs if any. I don't have any traps as aborts will not hurt anything. Do you wish to continue with the post install? [yn ] y Do you have MinGW installed? [yn ] n When you install MinGW I suggest you install it to C:/mingw (replace C: with the drive of your choice). Then create an /etc/fstab file with a line that has a value similar to: C:/mingw /mingw Press ENTER to continue Normalizing your MSYS environment. You have script /bin/cmd MinGW-1.1 has a version of make.exe within it's bin/ directory. Please be sure to rename this file to mingw32-make.exe once youve echo installed MinGW-1.1 because it\s very deficient in function. Press ENTER to continue.
特に問題なしです。
msys.bat
を実行するとbash
が起動しますので、ファイル一覧でも表示してみましょう。
ls -l
するとどうでしょう、
msys-intl-8.dllが見つからなかったため、このアプリケーションを開始できませんでした。
これだ、これが逆境だ。
coreutils
のリリースノートを見ると、必要なランタイムについて書いてあります。
Runtime requirements: msysCORE-1.0.13-2-msys-1.0.13-bin libintl-0.17-2-msys-1.0.13-dll-8 libiconv-1.13.1-2-msys-dll-2 libtermcap-0.20050421_1-2-msys-1.0.13-dll-0
libintl
は国際化ライブラリ(リブ・インターナショナル)で、gettext
の下にあります。
gettext
libintl-0.17-2-msys-dll-8.tar.lzma
libiconv
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
termcap
libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma
これらをインストールすれば、coreutils
が動作するようになります。
gettext
は国際化ライブラリで、言語ファイルを用意すれば、メッセージなどを翻訳できる仕組みです。
lang
ファイルも一緒にインストールすれば、設定によってはメッセージが日本語で表示されるはずです。
『はず』というのは、実際には表示されないからですが、これは後述します。
さて、これでMSYSが使えるようになりましたが、これだと本当にMinimal Systemなので、必要なパッケージを追加していきます。
パッケージを追加するたびに、リリースノートの必要なランタイムを確認しないといけないのが面倒です。
片っぱしからインストールしちゃえばいいという話もありますが、そうすると、Minimal Systemじゃなくなってしまうというジレンマもあります。
まぁ、リリースノートも読まずにインストールすること自体が間違っているとも言えますが。
重複もありますが、私がインストールしたものを順番に挙げていきます。
まずは、前述したものです。
BaseSystem(msysCORE)
msysCORE-1.0.14-1-msys-1.0.14-bin.tar.lzma
coreutils
coreutils-5.97-3-msys-1.0.13-bin.tar.lzma
coreutils-5.97-3-msys-1.0.13-lang.tar.lzma
gettext
libintl-0.17-2-msys-dll-8.tar.lzma
libiconv
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
termcap
libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma
termcap-0.20050421_1-2-msys-1.0.13-bin.tar.lzma
bash
bash-3.1.17-3-msys-1.0.13-bin.tar.lzma
regex
libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma
あとは、make
, tar
, find
, diff
など、ないと死ぬほど困るコマンドですが、必要なランタイムはすでにインストール済みだったりして、特に問題なしです。
ですが、すでにインストール済みのランタイムも括弧つきで示します。何回も上書き展開する必要はありません。
make
make-3.81-3-msys-1.0.13-bin.tar.lzma
make-3.81-3-msys-1.0.13-lang.tar.lzma
- (
libintl-0.17-2-msys-dll-8.tar.lzma
) - (
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
) tar
tar-1.23-1-msys-1.0.13-bin.tar.lzma
tar-1.23-1-msys-1.0.13-lang.tar.lzma
- (
libintl-0.17-2-msys-dll-8.tar.lzma
) - (
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
) - (
libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma
) findutils
findutils-4.4.2-2-msys-1.0.13-bin.tar.lzma
findutils-4.4.2-2-msys-1.0.13-lang.tar.lzma
- (
libintl-0.17-2-msys-dll-8.tar.lzma
) - (
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
) diffutils
diffutils-2.8.7.20071206cvs-3-msys-1.0.13-bin.tar.lzma
diffutils-2.8.7.20071206cvs-3-msys-1.0.13-lang.tar.lzma
- (
libintl-0.17-2-msys-dll-8.tar.lzma
) - (
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
) sed
sed-4.2.1-2-msys-1.0.13-bin.tar.lzma
sed-4.2.1-2-msys-1.0.13-lang.tar.lzma
- (
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
) - (
libintl-0.17-2-msys-dll-8.tar.lzma
)
そうそう、tar
ですが、
tar cf hoge.tar *.txt
というふうにアーカイブを作成可能ですが、オプションによってアーカイブを圧縮することが可能です。
tar cfZ hoge.tar.Z *.txt tar cfz hoge.tar.gz *.txt tar cfj hoge.tar.bz2 *.txt tar cfJ hoge.tar.xz *.txt
これらのオプションを指定すると、ファイル圧縮コマンドが子プロセスとして呼ばれるので、必要に応じてそれらもインストールする必要があります。
-Z, --compress, --uncompress
compress
-z, --gzip, --gunzip, --ungzip
gzip
-j, --bzip2
bzip2
-J, --xz
xz
今どきcompress
やgzip
を使うこともないので、bzip2
とxz
だけインストールしました。というか、compress
やgzip
がどこに含まれるのか、見つけることができませんでした。
bzip2
bzip2-1.0.5-2-msys-1.0.13-bin.tar.lzma
xz
xz-4.999.9beta_20100401-1-msys-1.0.13-bin.tar.gz
liblzma-4.999.9beta_20100401-1-msys-1.0.13-dll-1.tar.gz
- (
libintl-0.17-2-msys-dll-8.tar.lzma
) - (
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
)
なお、xz
の中にunlzma
なども含まれていますので、本来はtar
とxz
をインストールしてから、他のパッケージをインストールするのが正しいのかも知れません。
とはいえ、tar
もlzma
形式でリリースされていますので、どうやって展開するのか謎ですが。
私にとって最低限必要なのは、こんなところですね。
PerlはActivePerlを使っていますし、vimはWindows用のgvimを使っていますし。
rxvt
という仮想端末ソフトもあるのですが、日本語表示がうまくいかないのでインストールしてません。
rxvt
rxvt-2.7.2-3-msys-1.0.14-bin.tar.lzma
いわゆるDOS窓(cmd.exe
)でbash
を使うより、コピー&ペーストがしやすかったりするのですが、日本語化を前提とするなら、今のところ使い物になりません。
私は別に日本語化しなくてもいいのですが、世の中には「日本語化してくれなきゃ死んじゃう~」って人もおられるので、いろいろ調べているわけです。
さて、軽く日本語化でもしてみますか。
私は別に日本語化の必要性を感じないので、ちょっぴりいい加減なところもあります。
まずは、READLINE
を日本語対応するために、/etc/inputrc
を編集します。
set kanji-code sjis set meta-flag on set input-meta on set output-meta on set convert-meta off
次に、bash
の環境変数を設定するために、/etc/profile
を編集します。
export LANG=ja_JP.SJIS export TZ=JST-9 export JLESSCHARSET=japanese-sjis
あと、ls
が8bitを通すようにalias
するのもお約束です。これも/etc/profile
に書いておきます。
alias ls='/bin/ls -F --color=tty --show-control-chars'
これで、日本語ファイル名のついたファイルがあるディレクトリでls
を実行しても、ちゃんとファイル名が見えるようになるはずです。
しかも、色までついてるぜ、ヒャッハー!!
とりあえず日本語化は完了です。
と思ったら、gettext
の動作がイマイチですよ、先生!!
環境変数LANG=ja_JP.SJISにしているのに、出力がEUC-JPになっているようです。
真面目にやるなら、/usr/share/locale/ja
の日本語カタログファイルをSJIS対応に作り直すことになるんでしょうけど、面倒くさいですね。
export LC_MESSAGES=C
これが楽チンですね。諦めたらそこで試合終了です、わ~い♪
日本語カタログファイルをSJISに変換するには、gettext
をインストールする必要があります。
それと、文字コード変換用にiconv
もインストールします。
変換用の捨て環境を作るなら、C:/msys
以下を、まるっとコピーして使うといいでしょう。
gettext
gettext-0.17-2-msys-1.0.13-bin.tar.lzma
gettext-0.17-2-msys-1.0.13-dev.tar.lzma
libgettextpo-0.17-2-msys-dll-0.tar.lzma
libiconv
libiconv-1.13.1-2-msys-1.0.13-bin.tar.lzma
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
libcharset-1.13.1-2-msys-1.0.13-dll-1.tar.lzma
あとは、sed
も使いますが、すでにインストール済み、と。
やることは簡単で、
msgunfmt
で、.mo
を.po
に逆変換する。sed
で、charset
をShift_JISに書き換える。iconv
で、文字コードをEUC-JPからShift_JISに変換する。msgfmt
で、.po
を.mo
に変換する。- できた
.mo
を、/usr/share/locale/ja_JP.SJIS
に置く。
これだけです。
面倒なので、スクリプトにしちゃいましょう。元の.mo
がEUC-JPであると決め打ちしつつ、Shift_JISに変換します。
#!/bin/bash src=/usr/share/locale/ja/LC_MESSAGES dst=/usr/share/locale/ja_JP.SJIS/LC_MESSAGES mkdir -p $dst; for file in $src/*.mo; do out=$dst/`basename $file` echo $file msgunfmt $file | \ sed -e 's/charset=EUC-JP/charset=Shift_JIS/i' | \ iconv -f EUC-JP -t CP932 | \ msgfmt -o $out - done
なんか、iconv
がShift_JISに変換できない文字があるとかエラーを吐くので、CP932を指定していますが、細かいことは気にしない♪
「いや、気にするぜ!!」という人は、Wikipediaでも見てください。Shift_JISに機種依存文字を追加したものがCP932だと思っておけばいいです。
とりあえず、msys.bat
を実行してMSYSを起動し、
export LANG=ja_JP.SJIS basename --help
なんてやると、日本語でヘルプが表示されました。
変換さえ済んでしまえばgettext
は不要なのでアンインストールしたいところですが、MSYSにはそんな気の利いた仕組みはないので、諦めましょう。
カタログファイルを変換する専用のMSYSを用意(丸ごとコピー)して、そこにiconv
とgettext
をインストールしたなら、丸ごと削除するだけで後腐れがないです。
そこまで最小システムにこだわるなら、lang
なんかインストールするなっていう。
ところで、rxvt
ですが、msys.bat
を実行するときに、下記のようにオプションを指定することで、DOS窓(cmd.exe
)ではなく、rxvt
で/bin/sh
が起動します。
msys.bat -rxvt
msys.bat
にオプションを指定するには、msys.bat
のショートカットを作成して、プロパティから、
C:\msys\1.0\msys.bat -rxvt
みたいにすればいいでしょう。
で、このrxvt
で日本語を表示しようとすると、文字化けしてしまいます。デフォルトで指定されているフォントが日本語対応していないからです。
ネットで調べると、msys.bat
の中でrxvt
を起動している部分を探し、フォント指定Courier-12
を、Terminal-14
などに変更すればよい、みたいな情報が得られます。
start %WD%rxvt -backspacekey ^H -sl 2500 -fg %FGCOLOR% -bg %BGCOLOR% -sr -fn Courier-12 -tn msys -geometry 80x25 -e /bin/sh --login -i
これを、下記のように変更しろ、ということですね。
start %WD%rxvt -backspacekey ^H -sl 2500 -fg %FGCOLOR% -bg %BGCOLOR% -sr -fn Terminal-14 -tn msys -geometry 80x25 -e /bin/sh --login -i
ですが、最新版のrxvt
(rxvt-2.7.2-3-msys-1.0.14-bin.tar.lzma
)で試してみたところ、rxvt
の画面がやたら横に伸びてしまい、なおかつ文字化けも直らないという、ひどい有様でした。
どうやら、rxvt
のフォント指定周りは、イマイチ不安定みたいです。
まぁ、私は困らないから、いっか♪
ほかにも、Console2
という仮想端末ソフトもあります。
こんな名前を付けるもんだから、検索しても見つけにくいです。
タブ切り替えに対応しており、使用するシェル(cmd.exe
とかbash.exe
とか)を指定したり、初期ディレクトリを指定できるなど、かゆいところに手が届く感じのソフトです。
MSYSにもconsole
というパッケージがあって、
console
console-2.00b146-1-msys-1.0.14-bin.tar.lzma
なんてファイルが置いてあるのですが、これは上記のConsole2
をネットからダウンロードしてインストールと設定を行ってくれるもので、Console2
の本体は含まれません。
そして、これがまた依存関係が激しいので、私は使ってません。
Runtime requirements: msysCORE-1.0.14-1-msys-1.0.14-bin coreutils-5.97-3-msys-1.0.13-bin sed-4.2.1-2-msys-1.0.13-bin.tar.lzma cygutils-1.3.4-4-msys-1.0.13-bin.tar.lzma wget-1.12-1-msys-1.0.13-bin.tar.lzma unzip-6.0-1-msys-1.0.13-bin.tar.lzma mktemp-1.6-2-msys-1.0.13-bin.tar.lzma
wget
という、ネットからファイルをダウンロードするコマンドがlibopenssl
を要求したりして、気がついたらほぼ全てのパッケージをインストールする羽目になったりします。
Console2
は直接ダウンロードして試してみたのですが、Shift_JISの文字を表示すると画面表示が崩れてしまいます。
日本語ファイル名のあるディレクトリでls
を実行するだけで、画面表示が崩れてしまいます。cls
で画面をクリアすれば、元に戻りますが。
そもそも、/etc/termcap
にもエントリーがありませんし、かといって、そこまで真面目にチャレンジする元気も時間もないので、Console2
に関しては様子見モードに移行します。
いや、日本語化なんかしないで、export LANG=C
として使えば、Console2
は非常に便利なんですけどね。
という感じで、最新のMSYSについて、軽く調べてみました。
私としては、Shift_JISよりも、UTF-8環境を構築したいですが、このあたりはまた別の機会に調べてみたいと思います。
[記]2010-6-8(火)
[PC]MSYS
WindowsうえでUNIXコマンドをつかいたいばあいに、せんたくしのひとつとしてCygwinがあります。
CygwinはPOSIXをまじめにエミュレートしてくれるので、UNIXようのソースコードがほぼそのままコンパイルできたりしてべんりです。
ただ、そのはんめん、ちょっとおもいというけってんもあります。イマドキのPCなら、あんまりきにするほどのこともないのですが。
Cygwinはおもすぎるというひとむけに、MinGW/MSYSなんていうものがあります。
MinGWは、"Minimalist GNU for Windows"のほぼです。
MSYSは、"Minimal SYStem"のほぼです。
WindowsうえでGNUツールキットをつかうことをもくてきとしたさいしょうげんのシステムです。
GNUなので、かんぜんにフリーです。フリーというのはかかくがむりょうということではなくて、じゆうにりようできるということです。
まともなblogなら、ここでダウンロードほうほうとかインストールほうほうをせつめいするところですが、そんなのはググればいくらでもみつかるのでかつあいします。
とりあえず、わたしはいまのところMinGW(ソフトかいはつ)をつかうよていはないので、MSYSだけインストールします。
いかは、さぎょうないようをメモしたていどのものなので、あくまでさんこうに。とか、ありがちなほけんをかけてみたり。
まずはSourceforgeのMinGWのこうしきサイトにいきます。
『DOWNLOAD』から、『All Files』の『MSYS』をさがして、
BaseSystem
MSYS-1.0.11.exe
これをダウンロードしてインストールするのが、いちばんてっとりばやいです。
さいしんのmsysCORE
は1.0.14
なのですが、1.0.12
いこうはインストーラーがていきょうされていないようです。1.0.11
をインストールしたあと、さいしんばんをうわがきてんかいするのがらくチンです。
ですが、ここはあえて、さいしんばんをイチからインストールしてみます。
そういうことをするからパッケージのいぞんかんけいになやまされるわけですが。(べんぎじょう、かってにパッケージとよんでいます。)
ともあれ、BaseSystem
, coreutils
, bash
はひっすでしょう。
BaseSystem
msysCORE-1.0.14-1-msys-1.0.14-bin.tar.lzma
coreutils
coreutils}-5.97-3-msys-1.0.13-bin.tar.lzma
coreutils}-5.97-3-msys-1.0.13-lang.tar.lzma
bash
bash-3.1.17-3-msys-1.0.13-bin.tar.lzma
こんなかんじですね。lang
はべつにいれなくていいですけど。
ちなみに、lzma
はファイルあっしゅくしょこけいしきのひとつです。zipけいしきよりあっしゅくりつがよいのでオススメです。てんかいするには7-ZIPがオススメです。
これらのファイルを、インストーラーとどうようにC:/msys/1.0/
にてんかいして、C:/msys/1.0/postinstall/pi.bat
をじっこうしてみます。
するとどうでしょう、
msys-regex-1.dllが見つからなかったため、このアプリケーションを開始できませんでした。
これだ、これがぎゃっきょうだ。
bash
のリリースノートをみると、ひつようなランタイムについてかいてあります。
Runtime requirements: msysCORE-1.0.13-2-msys-1.0.13-bin libtermcap-0.20050421_1-2-msys-1.0.13-dll-0 termcap-0.20050421_1-2-msys-1.0.13-bin libregex-1.20090805-2-msys-1.0.13-dll-1
これらもダウンロードしてインストールします。リリースノートにかいてあるバージョンよりあたらしいものをつかえばいいようです。
termcap
libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma
termcap-0.20050421_1-2-msys-1.0.13-bin.tar.lzma
regex
libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma
これで、C:/msys/1.0/postinstall/pi.bat
がじっこうできるようになりました。
This is a post install process that will try to normalize between your MinGW install if any as well as your previous MSYS installs if any. I don't have any traps as aborts will not hurt anything. Do you wish to continue with the post install? [yn ] y Do you have MinGW installed? [yn ] n When you install MinGW I suggest you install it to C:/mingw (replace C: with the drive of your choice). Then create an /etc/fstab file with a line that has a value similar to: C:/mingw /mingw Press ENTER to continue Normalizing your MSYS environment. You have script /bin/cmd MinGW-1.1 has a version of make.exe within it's bin/ directory. Please be sure to rename this file to mingw32-make.exe once youve echo installed MinGW-1.1 because it\s very deficient in function. Press ENTER to continue.
とくにもんだいなしです。
msys.bat
をじっこうするとbash
がきどうしますので、ファイルいちらんでもひょうじしてみましょう。
ls -l
するとどうでしょう、
msys-intl-8.dllが見つからなかったため、このアプリケーションを開始できませんでした。
これだ、これがぎゃっきょうだ。
coreutils
のリリースノートをみると、ひつようなランタイムについてかいてあります。
Runtime requirements: msysCORE-1.0.13-2-msys-1.0.13-bin libintl-0.17-2-msys-1.0.13-dll-8 libiconv-1.13.1-2-msys-dll-2 libtermcap-0.20050421_1-2-msys-1.0.13-dll-0
libintl
はこくさいかライブラリ(リブ・インターナショナル)で、gettext
のもとにあります。
gettext
libintl-0.17-2-msys-dll-8.tar.lzma
libiconv
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
termcap
libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma
これらをインストールすれば、coreutils
がどうさするようになります。
gettext
はこくさいかライブラリで、げんごファイルをよういすれば、メッセージなどをほんやくできるしくみです。
lang
ファイルもいっしょにインストールすれば、せっていによってはメッセージがにほんごでひょうじされるはずです。
『はず』というのは、じっさいにはひょうじされないからですが、これはこうじゅつします。
さて、これでMSYSがつかえるようになりましたが、これだとほんとうにMinimal Systemなので、ひつようなパッケージをついかしていきます。
パッケージをついかするたびに、リリースノートのひつようなランタイムをかくにんしないといけないのがめんどうです。
かたっぱしからインストールしちゃえばいいというはなしもありますが、そうすると、Minimal Systemじゃなくなってしまうというジレンマもあります。
まぁ、リリースノートもよまずにインストールすることじたいがまちがっているともいえますが。
ちょうふくもありますが、わたしがインストールしたものをじゅんばんにあげていきます。
まずは、ぜんじゅつしたものです。
BaseSystem(msysCORE)
msysCORE-1.0.14-1-msys-1.0.14-bin.tar.lzma
coreutils
coreutils-5.97-3-msys-1.0.13-bin.tar.lzma
coreutils-5.97-3-msys-1.0.13-lang.tar.lzma
gettext
libintl-0.17-2-msys-dll-8.tar.lzma
libiconv
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
termcap
libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma
termcap-0.20050421_1-2-msys-1.0.13-bin.tar.lzma
bash
bash-3.1.17-3-msys-1.0.13-bin.tar.lzma
regex
libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma
あとは、make
, tar
, find
, diff
など、ないとしぬほどこまるコマンドですが、ひつようなランタイムはすでにインストールすみだったりして、とくにもんだいなしです。
ですが、すでにインストールすみのランタイムもかっこつきでしめします。何回もうわがきてんかいするひつようはありません。
make
make-3.81-3-msys-1.0.13-bin.tar.lzma
make-3.81-3-msys-1.0.13-lang.tar.lzma
- (
libintl-0.17-2-msys-dll-8.tar.lzma
) - (
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
) tar
tar-1.23-1-msys-1.0.13-bin.tar.lzma
tar-1.23-1-msys-1.0.13-lang.tar.lzma
- (
libintl-0.17-2-msys-dll-8.tar.lzma
) - (
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
) - (
libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma
) findutils
findutils-4.4.2-2-msys-1.0.13-bin.tar.lzma
findutils-4.4.2-2-msys-1.0.13-lang.tar.lzma
- (
libintl-0.17-2-msys-dll-8.tar.lzma
) - (
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
) diffutils
diffutils-2.8.7.20071206cvs-3-msys-1.0.13-bin.tar.lzma
diffutils-2.8.7.20071206cvs-3-msys-1.0.13-lang.tar.lzma
- (
libintl-0.17-2-msys-dll-8.tar.lzma
) - (
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
) sed
sed-4.2.1-2-msys-1.0.13-bin.tar.lzma
sed-4.2.1-2-msys-1.0.13-lang.tar.lzma
- (
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
) - (
libintl-0.17-2-msys-dll-8.tar.lzma
)
そうそう、tar
ですが、
tar cf hoge.tar *.txt
というふうにアーカイブをさくせいかのうですが、オプションによってアーカイブをあっしゅくすることがかのうです。
tar cfZ hoge.tar.Z *.txt tar cfz hoge.tar.gz *.txt tar cfj hoge.tar.bz2 *.txt tar cfJ hoge.tar.xz *.txt
これらのオプションをしていすると、ファイルあっしゅくコマンドがこプロセスとしてよばれるので、ひつようにおうじてそれらもインストールするひつようがあります。
-Z, --compress, --uncompress
compress
-z, --gzip, --gunzip, --ungzip
gzip
-j, --bzip2
bzip2
-J, --xz
xz
いまどきcompress
やgzip
をつかうこともないので、bzip2
とxz
だけインストールしました。というか、compress
やgzip
がどこにふくまれるのか、みつけることができませんでした。
bzip2
bzip2-1.0.5-2-msys-1.0.13-bin.tar.lzma
xz
xz-4.999.9beta_20100401-1-msys-1.0.13-bin.tar.gz
liblzma-4.999.9beta_20100401-1-msys-1.0.13-dll-1.tar.gz
- (
libintl-0.17-2-msys-dll-8.tar.lzma
) - (
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
)
なお、xz
のなかにunlzma
などもふくまれていますので、ほんらいはtar
とxz
をインストールしてから、たのパッケージをインストールするのがただしいのかもしれません。
とはいえ、tar
もlzma
けいしきでリリースされていますので、どうやっててんかいするのかなぞですが。
わたしにとってさいていげんひつようなのは、こんなところですね。
PerlはActivePerlをつかっていますし、vimはWindowsようのgvimをつかっていますし。
rxvt
というかそうたんまつソフトもあるのですが、にほんごひょうじがうまくいかないのでインストールしてません。
rxvt
rxvt-2.7.2-3-msys-1.0.14-bin.tar.lzma
いわゆるDOSまど(cmd.exe
)でbash
をつかうより、コピー&ペーストがしやすかったりするのですが、にほんごかをぜんていとするなら、いまのところつかいものになりません。
わたしはべつににほんごかしなくてもいいのですが、よのなかには「にほんごかしてくれなきゃしんじゃう~」ってひともおられるので、いろいろしらべているわけです。
さて、かるくにほんごかでもしてみますか。
わたしはべつににほんごかのひつようせいをかんじないので、ちょっぴりいいかげんなところもあります。
まずは、READLINE
をにほんごたいおうするために、/etc/inputrc
をへんしゅうします。
set kanji-code sjis set meta-flag on set input-meta on set output-meta on set convert-meta off
つぎに、bash
のかんきょうへんすうをせっていするために、/etc/profile
をへんしゅうします。
export LANG=ja_JP.SJIS export TZ=JST-9 export JLESSCHARSET=japanese-sjis
あと、ls
が8bitをとおすようにalias
するのもおやくそくです。これも/etc/profile
にかいておきます。
alias ls='/bin/ls -F --color=tty --show-control-chars'
これで、にほんごファイルめいのついたファイルがあるディレクトリでls
をじっこうしても、ちゃんとファイルめいがみえるようになるはずです。
しかも、しょくまでついてるぜ、ヒャッハー!!
とりあえずにほんごかはかんりょうです。
とおもったら、gettext
のどうさがイマイチですよ、せんせい!!
かんきょうへんすうLANG=ja_JP.SJISにしているのに、しゅつりょくがEUC-JPになっているようです。
まじめにやるなら、/usr/share/locale/ja
のにほんごカタログファイルをSJISたいおうにつくりなおすことになるんでしょうけど、めんどうくさいですね。
export LC_MESSAGES=C
これがらくチンですね。あきらめたらそこでしあいしゅうりょうです、わ~い♪
にほんごカタログファイルをSJISにへんかんするには、gettext
をインストールするひつようがあります。
それと、もじコードへんかんようにiconv
もインストールします。
へんかんようのすてかんきょうをつくるなら、C:/msys
いかを、まるっとコピーしてつかうといいでしょう。
gettext
gettext-0.17-2-msys-1.0.13-bin.tar.lzma
gettext-0.17-2-msys-1.0.13-dev.tar.lzma
libgettextpo-0.17-2-msys-dll-0.tar.lzma
libiconv
libiconv-1.13.1-2-msys-1.0.13-bin.tar.lzma
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
libcharset-1.13.1-2-msys-1.0.13-dll-1.tar.lzma
あとは、sed
もつかいますが、すでにインストールすみ、と。
やることはかんたんで、
msgunfmt
で、.mo
を.po
にぎゃくへんかんする。sed
で、charset
をShift_JISにかきかえる。iconv
で、もじコードをEUC-JPからShift_JISにへんかんする。msgfmt
で、.po
を.mo
にへんかんする。- できた
.mo
を、/usr/share/locale/ja_JP.SJIS
におく。
これだけです。
めんどうなので、スクリプトにしちゃいましょう。もとの.mo
がEUC-JPであるときめうちしつつ、Shift_JISにへんかんします。
#!/bin/bash src=/usr/share/locale/ja/LC_MESSAGES dst=/usr/share/locale/ja_JP.SJIS/LC_MESSAGES mkdir -p $dst; for file in $src/*.mo; do out=$dst/`basename $file` echo $file msgunfmt $file | \ sed -e 's/charset=EUC-JP/charset=Shift_JIS/i' | \ iconv -f EUC-JP -t CP932 | \ msgfmt -o $out - done
なんか、iconv
がShift_JISにへんかんできないもじがあるとかエラーをはくので、CP932をしていしていますが、こまかいことはきにしない♪
「いや、きにするぜ!!」というひとは、Wikipediaでもみてください。Shift_JISにきしゅいぞんもじをついかしたものがCP932だとおもっておけばいいです。
とりあえず、msys.bat
をじっこうしてMSYSをきどうし、
export LANG=ja_JP.SJIS basename --help
なんてやると、にほんごでヘルプがひょうじされました。
へんかんさえすんでしまえばgettext
はふようなのでアンインストールしたいところですが、MSYSにはそんなきのきいたしくみはないので、あきらめましょう。
カタログファイルをへんかんするせんようのMSYSをようい(まるごとコピー)して、そこにiconv
とgettext
をインストールしたなら、まるごとさくじょするだけであとくされがないです。
そこまでさいしょうシステムにこだわるなら、lang
なんかインストールするなっていう。
ところで、rxvt
ですが、msys.bat
をじっこうするときに、かきのようにオプションをしていすることで、DOSまど(cmd.exe
)ではなく、rxvt
で/bin/sh
がきどうします。
msys.bat -rxvt
msys.bat
にオプションをしていするには、msys.bat
のショートカットをさくせいして、プロパティから、
C:\msys\1.0\msys.bat -rxvt
みたいにすればいいでしょう。
で、このrxvt
でにほんごをひょうじしようとすると、もじばけしてしまいます。デフォルトでしていされているフォントがにほんごたいおうしていないからです。
ネットでしらべると、msys.bat
のなかでrxvt
をきどうしているぶぶんをさがし、フォントしていCourier-12
を、Terminal-14
などにへんこうすればよい、みたいなじょうほうがうられます。
start %WD%rxvt -backspacekey ^H -sl 2500 -fg %FGCOLOR% -bg %BGCOLOR% -sr -fn Courier-12 -tn msys -geometry 80x25 -e /bin/sh --login -i
これを、かきのようにへんこうしろ、ということですね。
start %WD%rxvt -backspacekey ^H -sl 2500 -fg %FGCOLOR% -bg %BGCOLOR% -sr -fn Terminal-14 -tn msys -geometry 80x25 -e /bin/sh --login -i
ですが、さいしんばんのrxvt
(rxvt-2.7.2-3-msys-1.0.14-bin.tar.lzma
)でためしてみたところ、rxvt
のがめんがやたらよこにのびてしまい、なおかつもじばけもなおらないという、ひどいありさまでした。
どうやら、rxvt
のフォントしていまわりは、イマイチふあんていみたいです。
まぁ、わたしはこまらないから、いっか♪
ほかにも、Console2
というかそうたんまつソフトもあります。
こんななまえをつけるもんだから、けんさくしてもみつけにくいです。
タブきりかえにたいおうしており、しようするシェル(cmd.exe
とかbash.exe
とか)をしていしたり、しょきディレクトリをしていできるなど、かゆいところにてがとどくかんじのソフトです。
MSYSにもconsole
というパッケージがあって、
console
console-2.00b146-1-msys-1.0.14-bin.tar.lzma
なんてファイルがおいてあるのですが、これはじょうきのConsole2
をネットからダウンロードしてインストールとせっていをいってくれるもので、Console2
のほんたいはふくまれません。
そして、これがまたいぞんかんけいがはげしいので、わたしはつかってません。
Runtime requirements: msysCORE-1.0.14-1-msys-1.0.14-bin coreutils-5.97-3-msys-1.0.13-bin sed-4.2.1-2-msys-1.0.13-bin.tar.lzma cygutils-1.3.4-4-msys-1.0.13-bin.tar.lzma wget-1.12-1-msys-1.0.13-bin.tar.lzma unzip-6.0-1-msys-1.0.13-bin.tar.lzma mktemp-1.6-2-msys-1.0.13-bin.tar.lzma
wget
という、ネットからファイルをダウンロードするコマンドがlibopenssl
をようきゅうしたりして、きがついたらほぼすべてのパッケージをインストールするはめになったりします。
Console2
はちょくせつダウンロードしてためしてみたのですが、Shift_JISのもじをひょうじするとがめんひょうじがくずれてしまいます。
にほんごファイルめいのあるディレクトリでls
をじっこうするだけで、がめんひょうじがくずれてしまいます。cls
でがめんをクリアすれば、もとにもどりますが。
そもそも、/etc/termcap
にもエントリーがありませんし、かといって、そこまでまじめにチャレンジするげんきもじかんもないので、Console2
にかんしてはようすみモードにいこうします。
いや、にほんごかなんかしないで、export LANG=C
としてつかえば、Console2
はひじょうにべんりなんですけどね。
というかんじで、さいしんのMSYSについて、かるくしらべてみました。
わたしとしては、Shift_JISよりも、UTF-8かんきょうをこうちくしたいですが、このあたりはまたべつのきかいにしらべてみたいとおもいます。
>まぁ、リリースノートも読まずにインストールすること自体が間違っているとも言えますが。
リリースノートみたいな日本語ではないやつは自分的には読まないのが当然!
by tks (2011-08-13 20:03)
ついしん
日本語でも読まない
by tks (2011-08-13 20:11)