So-net無料ブログ作成

[記]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"のです。
WindowsGNUツールキットを使うことを目的とした最小限のシステムです。
GNUなので、完全にフリーです。フリーというのは価格無料ということではなくて、自由利用できるということです。


まともなblogなら、ここでダウンロード方法とかインストール方法説明するところですが、そんなのはググればいくらでもつかるので割愛します。
とりあえず、のところMinGW(ソフト開発)を使予定はないので、MSYSだけインストールします。
以下は、作業内容をメモした程度のものなので、あくまで参考に。とか、ありがちな保険をかけてみたり。


まずはSourceforgeのMinGW公式サイトにきます。

『DOWNLOAD』から、『All Files』の『MSYS』をして、

  • BaseSystem
    • MSYS-1.0.11.exe

これをダウンロードしてインストールするのが、一番いです。
最新msysCORE1.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

どきcompressgzip使うこともないので、bzip2xzだけインストールしました。というか、compressgzipがどこにまれるのか、つけることができませんでした。

  • 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)

なお、xzunlzmaなどもまれていますので、本来tarxzをインストールしてから、のパッケージをインストールするのがしいのかもれません。
とはいえ、tarlzma形式でリリースされていますので、どうやって展開するのかですが。


にとって最低限必要なのは、こんなところですね。
PerlActivePerl使っていますし、vimWindowsgvim使っていますし。
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で、charsetShift_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

なんか、iconvShift_JIS変換できない文字があるとかエラーをくので、CP932指定していますが、かいことはにしない♪
「いや、にするぜ!!」というは、Wikipediaでもてください。Shift_JIS機種依存文字追加したものがCP932だとっておけばいいです。
とりあえず、msys.bat実行してMSYS起動し、

export LANG=ja_JP.SJIS
basename --help

なんてやると、日本語でヘルプが表示されました。
変換さえんでしまえばgettext不要なのでアンインストールしたいところですが、MSYSにはそんないた仕組みはないので、めましょう。
カタログファイルを変換する専用MSYS用意(ごとコピー)して、そこにiconvgettextをインストールしたなら、ごと削除するだけで後腐れがないです。
そこまで最小システムにこだわるなら、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.batrxvt起動している部分し、フォント指定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

これをダウンロードしてインストールするのが、いちばんてっとりばやいです。
さいしんのmsysCORE1.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

いまどきcompressgzipをつかうこともないので、bzip2xzだけインストールしました。というか、compressgzipがどこにふくまれるのか、みつけることができませんでした。

  • 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などもふくまれていますので、ほんらいはtarxzをインストールしてから、たのパッケージをインストールするのがただしいのかもしれません。
とはいえ、tarlzmaけいしきでリリースされていますので、どうやっててんかいするのかなぞですが。


わたしにとってさいていげんひつようなのは、こんなところですね。
PerlActivePerlをつかっていますし、vimWindowsようの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で、charsetShift_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

なんか、iconvShift_JISにへんかんできないもじがあるとかエラーをはくので、CP932をしていしていますが、こまかいことはきにしない♪
「いや、きにするぜ!!」というひとは、Wikipediaでもみてください。Shift_JISにきしゅいぞんもじをついかしたものがCP932だとおもっておけばいいです。
とりあえず、msys.batをじっこうしてMSYSをきどうし、

export LANG=ja_JP.SJIS
basename --help

なんてやると、にほんごでヘルプがひょうじされました。
へんかんさえすんでしまえばgettextはふようなのでアンインストールしたいところですが、MSYSにはそんなきのきいたしくみはないので、あきらめましょう。
カタログファイルをへんかんするせんようのMSYSをようい(まるごとコピー)して、そこにiconvgettextをインストールしたなら、まるごとさくじょするだけであとくされがないです。
そこまでさいしょうシステムにこだわるなら、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かんきょうをこうちくしたいですが、このあたりはまたべつのきかいにしらべてみたいとおもいます。


nice!(0)  コメント(2)  トラックバック(0) 

nice! 0

コメント 2

tks

>まぁ、リリースノートも読まずにインストールすること自体が間違っているとも言えますが。
リリースノートみたいな日本語ではないやつは自分的には読まないのが当然!
by tks (2011-08-13 20:03) 

tks

ついしん

日本語でも読まない
by tks (2011-08-13 20:11) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。