試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

Ubuntu 12.04における幾つかのメモ(C/Migemo,Wine,unzipについて)

GNU EmacsにおけるC/Migemoの設定

(2016/6/28)ここに記述した内容は古いため、「Debian/UbuntuのEmacsでC/Migemoによる日本語の文字列検索を行う」を参照。

x86_64版ディストリにおけるWineの64bit/32bit同時対応(サポートパッケージの共存)について

x86_64版のDebian/Ubuntuにおける「:i386」付きの名前のパッケージについて(Ubuntu 11.10時点)」で扱っているMultiarchの対応が更に進んだことで、x86_64版のUbuntuWinex86_64対応が改善され、x86_64版ディストリでは「wine[バージョン]-i386」パッケージが32bitアプリケーションのサポートを,「wine[バージョン]-amd64」パッケージが64bitアプリケーションのサポートをそれぞれ提供するようになり、64bit用のWindowsアプリケーションを動かすためのWine(実行コマンドはwine64)と32bit用のWindowsアプリケーションを動かすためのWineとを共存できるようになっている。
Wine環境(WINEPREFIX)については、最初に64bitアプリケーションを動かした64bit版Wineを使用したWine環境は32bit/64bit両対応になるようになっており、最初に32bitアプリケーションを動かしたWine環境は32bitアプリケーション専用となる。この種類はWine環境の作成時に決められ、後から変更することはできない。
(2012/5/9)最初に動かしたのが32bitのWindowsアプリケーションでも、Ubuntuの「wine[バージョン]」の名前のパッケージがamd64版であればWine環境は32bit/64bit両対応になる。「wine[バージョン]」の名前のパッケージがamd64版だと

  • widl
  • wine64
  • wine64-preloader
  • winebuild
  • winedump
  • winegcc
  • wineserver
  • wmc
  • wrc

の実行ファイルがx86_64向け(fileコマンドで「ELF 64-bit LSB executable, x86-64, [以下略]」と表示される)となる。なお、64bitアプリケーションはwine64ではなくwineコマンドで起動することもできる。
64bit対応(32bit/64bit両対応)のWine環境における仮想Cドライブはディレクトリ構成が一部32bit専用のものと異なり、下のようになる。

[drive_c]-+-[Program Files]        64bitアプリケーション向けのProgram Files
          +-[Program Files (x86)]  32bitアプリケーション向けのProgram Files
          +-[windows]-+-[system32] 64bit環境向けのシステムファイル群
          |           +-[syswow64] 32bit環境向けのシステムファイル群
          |           |

このProgram Files (x86)syswow64といった名前の32bit版プログラム用ディレクトリは、x86_64(x64)版のWindowsにおいても同様に存在する(Wineがこれに合わせている)。「system32」の中身が64bit向けで「syswow64」の中身が32bit向けなのは紛らわしいかもしれないが、Windowsではこのようになっている。

unzipのエンコーディング指定オプションについて

unzipのバージョン6.0-4ubuntu1(以上)では-Oというオプションが追加され、これに「cp932」を指定することで、エンコーディングにCP932が用いられた(ASCII範囲外の)ファイル名のファイル/ディレクトリを含む書庫が扱えるようになっている(Windowsなどで日本語ファイル名のファイル/フォルダを含んだ書庫を作成したものが文字化けせずに展開できるようになっている)。

$ unzip -O cp932 [Windowsなどで作成した.zipファイルの場所]
(ここで処理中に流れるファイル/ディレクトリ名は一部「?」に化けるが実際に出力される名前は正常)

ただ、これは本家版unzipの機能ではなく04-unzip60-alt-iconv-utf8(元のファイル名はunzip60-alt-iconv-utf8.patch)というパッチにより提供されており、全てのディストリで使えるわけではない(例えば、Debianの「6.0-6」のバージョンではこのパッチは含まれないため、この時点ではDebianでは-Oというオプションは使えない)。また、書庫のエンコーディングを自動判別するわけではないため、「文字化けするような書庫があったときに指定する」という形で使うことになる。また、File Roller(アーカイブマネージャー)などのGUIツールでもエンコーディングは自動的に判別されないため、文字化けせずに正しく扱うということはできない状況。
(2012/5/7)GUIアプリケーションで上のような書庫を扱いたい場合、Wine7-ZipGUI版(7-Zip File Manager・ファイル名は7zFM.exe)などを動かすとよい。

関連記事:

使用したバージョン: