Beginning OS X 10.6/アプリ導入編 拾遺
提供: Beginning OS X
Beginning OS X 10.6 > アプリ導入編 拾遺
本編に未収録のもの。
目次 |
[編集] シェル
[編集] bash
OS X 10.6 には bash 3 がデフォルトで含まれているが、MacPorts から最新版を別途導入することもできる。
$ sudo port install bash
bash を実際に用いるにあたっては、.bashrc, .bash_profile の設定が必要となる。
[編集] エディタ
[編集] emacs
OS X 10.6 には Emacs 22 がデフォルトで含まれているが、MacPorts から別途導入することもできる。(マクロのインストール先が /opt/local/share/emacs/site-lisp ディレクトリ配下となるため、システムのツリーを綺麗に保てるといったような利点がある。)
$ sudo port install emacs
Emacs を実際に用いるにあたっては、.emacs の設定が必要となる。
[編集] Carbon Emacs パッケージ
Carbon Emacs パッケージは OS X の GUI (Aqua) アプリケーションとして使える Emacs 22。Finder 上でファイルをダブルクリックしたり、ドラッグ&ドロップすることで編集が可能となっている。dmg ファイルからインストールできる。
基本的な設定:
- Help → Carbon Emacs Package → CJK Fixed-Width Fontset
- Help → Carbon Emacs Package → Mac-Style Key Bindings
- Help → Carbon Emacs Package → Save Changes...
[編集] ユーティリティ
[編集] less
less はページャ。
$ sudo port install less
nkf と組み合わせることで、UTF-8 以外のエンコードで書かれた日本語テキストも、ほぼシームレスに扱えるようになる。
[/opt/local/bin/lesspipe.sh] #!/bin/sh case "$1" in *.bz2) bzip2 -dc "$1" | nkf -w;; *.gz) gzip -dc "$1" | nkf -w;; *.z | *.Z) gzip -dc "$1" | nkf -w;; *.lzma) lzma -dc "$1" | nkf -w;; *.xz) xz -dc "$1" | nkf -w;; *) cat "$1" | nkf -w;; esac
$ sudo chmod 755 /opt/local/bin/lesspipe.sh
$ LESSOPEN="|-/opt/local/bin/lesspipe.sh %s"; export LESSOPEN $ PAGER=/opt/local/bin/less; export PAGER $ unalias less
[編集] lv
→Beginning OS X 10.6/アプリ導入編#lv
[編集] FDclone
→Beginning OS X 10.6/アプリ導入編#FDclone
[編集] kinput2-macim
Oct 26, 2007 現在、kinput2.macim は OS X 10.6 に未対応。
[編集] kinput2
→Beginning OS X 10.6/インフラ整備編#kinput2
[編集] lookup
lookup は emacs 上で動作する辞書検索ソフト。
$ sudo port install lookup +with_carbon_emacs_package
Carbon Emacs Package で使う場合には、+with_carbon_emacs_package を指定されたい。
設定ファイルのサンプルは以下のとおり。
[~/.emacs] ... ;; for Lookup (autoload 'lookup "lookup" nil t) (autoload 'lookup-region "lookup" nil t) (autoload 'lookup-pattern "lookup" nil t)
[~/.lookup]
(setq lookup-search-agents '((ndeb "~/Documents/cdrom/iwanami_k4" :enable ("koujien"))
(ndeb "~/Documents/cdrom/KENKYUSYA_READERS_PLUS_V2")
(ndeb "~/Documents/cdrom/GN03" :enable ("gn03ep01"))
))
(setq ndeb-binary-programs
'((wave "afplay")
(mpeg "/Applications/VLC.app/Contents/MacOS/VLC")))
詳しくはマニュアルを参照されたい。(マニュアルを作成するには +with_ptex を指定すること。)
[編集] ターミナル
[編集] rxvt-unicode
→Beginning OS X 10.6/アプリ導入編#rxvt-unicode
[編集] 印刷
[編集] a2ps-j
a2ps-j は plain text を整形して PostScript で出力する Perl スクリプト。
$ sudo port install a2ps-j
スクリプト内部で nkf を呼んでいるので、UTF-8 で書かれたテキストも処理できる。ただし、JIS X 0208 (第一・第二水準) 範囲外の漢字は扱えない。
出力された PostScript を OS X の Preview.app で開くと文字化けして表示されるが、これは Preview.app が一般的な和文 PostScript フォント (Ryumin-Light-H など) を正常に扱えないため。 ghostscript-fonts-hiragino を導入後、 ps2pdf コマンドで PDF に変換して用いるとよい。
[編集] fontforge
FontForge はフォント作成ツール。
$ sudo port install fontforge
+with_freetype_bytecode を指定することで bytecode interpreter を有効にできる。
表示メッセージは日本語化されているが、フォントの設定をしていないと見づらくなるので、
$ LANG=C fontforge
などとして、メッセージを英語表示にして用いたほうがよい。
[編集] ghostscript-fonts-hiragino
→Beginning OS X 10.6/アプリ導入編#ghostscript-fonts-hiragino
[編集] ps2eps
ps2eps は、PostScript を EPS に変換するスクリプト。印字されている領域だけを自動的に切り出してくれる。TeX に貼り付ける図版を用意する上で重宝する。
$ sudo port install ps2eps
[編集] pTeX
→Beginning OS X 10.6/アプリ導入編#pTeX
[編集] scribus
scribus は Qt ベースの DTP ソフトウェア。日本語の組版にはあまり向いていない。X11 上で動作する。
$ sudo port install scribus
なお、プルダウンメニューがウインドウの背後に隠れてしまう問題は quartz-wm に起因するものであるらしく、 ウインドウマネージャをそれ以外のものに変更すると回避できる。
[編集] 画像処理
[編集] gimp
ペイント系のグラフィックソフトとして gimp2 を導入する。
$ sudo port install gtk2 +x11
$ sudo port install gimp2
$ sudo port install gimp-app
$ sudo port install gimp
Aug 9, 2007 現在、port:gimp はメタポートになっており、gimp2 のほかに ufraw, xsane, gimp-app など、Gimp に関連するパッケージが一括導入される。コマンドラインから呼び出すコンパクトな Gimp が欲しいという場合には、gimp ではなく gimp2 として導入すること。
簡単な画像処理なら、Cocoa アプリケーションの ToyViewer を用いたほうが手軽かもしれない。また、画像ファイルのフォーマットの変換ならば、ImageMagick の convert コマンドでも処理できる。
[編集] ImageMagick
→Beginning OS X 10.6/アプリ導入編#ImageMagick
[編集] inkscape
ドロー系のグラフィックソフトが必要であれば、Inkscape を導入することができる。
$ sudo port install inkscape
依存関係により boost も入る。
TeX で使う外字の作成にも、Inkscape で十分対応が可能。詳しくは「Inkscape による TeX の外字作成メモ」を参照されたい。
なお、Inkscape の公式サイトには OS X 用にプリビルドされたバイナリも用意されているが、中身はどちらも X11 上で動くアプリケーションであるため、大差ない。むしろ、MacPorts を使って導入したほうが、ライブラリや Xft のフォントキャッシュに既存のものを利用できるので、トラブルが起きにくいのではないかと思われる。
[編集] 数値計算・グラフ
[編集] gnuplot
gnuplot はグラフを作成するプログラム。
$ sudo port install gnuplot
依存関係で AquaTerm も導入される。
MacPorts の gnuplot は、デフォルトターミナルが aqua に設定されている。
参考:
[編集] graphviz
graphviz はグラフを作成するプログラム。
$ sudo port install graphviz
[編集] maxima
数式処理システム Maxima。
$ sudo port install maxima
Carbon Emacs パッケージ上で Imaxima を使うには
MacWiki における Imaxima の項を参照されたい。
[編集] wxMaxima
wxMaxima は Finder 上から起動できる maxima フロントエンド。 ツールキットには wxWidgets が使われる。
$ sudo port install wxMaxima
[編集] octave
Octave は GNU プロジェクトの数値解析ソフトウェア。MATLAB 互換となるように作られており、行列演算をおこなうのに向いている。
$ sudo port install octave
[編集] plplot
plplot はグラフを描画するためのライブラリで、C, C++, FORTRAN, Java などのコンパイル型言語、および、Python などのインタープリタ型言語から呼び出して使うことができる。
$ sudo port install plplot
+octave を指定することで Octave のサポートが有効になる模様。また、+gcw を指定すると Gnome Canvas Widget を使ったグラフの描画が可能になる。Fortran に g95 を使いたい場合には、+g95 を指定すること。 (デフォルトでは gcc42 収録の gfortran-mp-4.2 が使われる。)
[編集] テキスト処理
[編集] chasen
ChaSen は日本語テキストの形態素解析プログラム。
$ sudo port install chasen
辞書は標準で ipadic (eucJP 版, Shift_JIS 版, UTF-8 版の三種類) がインストールされる。
歴史的な理由からデフォルトの文字コードは eucJP に設定されているが、chasen -r /opt/local/etc/chasenrc-UTF-8 -i w <input> とすれば UTF-8 のテキストを、chasen -r /opt/local/etc/chasenrc-Shift_JIS -i i <input> とすれば Shift_JIS のテキストを、それぞれ直接処理することができる。
Perl モジュールとして p5-text-chasen も用意されている。
[編集] cocot
cocot は tty 上でコード変換をおこなうフィルタプログラム。locale が UTF-8 の Mac OS X から eucJP の UNIX サーバにリモートログインする場合や、出力される文字コードが eucJP に決め打ちされているようなアプリケーションを UTF-8 環境から用いる際に使うと便利。
$ sudo port install cocot
[編集] hyperestraier
Hyper Estraier は全文検索エンジン。
$ sudo port install hyperestraier
+mecab を指定することで、キーワードの抽出を MeCab に任せることができる。
各スクリプト言語へのバインディングとして py-hyperestraier, rb-hyperestraier も用意されている。
[編集] kakasi
KAKASI は漢字仮名交じり文を平仮名や片仮名、ローマ字表記に変換することができるテキストフィルタ。分かち書きもできる。
$ sudo port install kakasi
Perl モジュールとして p5-text-kakasi も用意されている。
[編集] mecab
MeCab は形態素解析プログラム。ChaSen や KAKASI よりも設計が新しく、高速に動作するらしい。
$ sudo port install mecab +utf8only
デフォルトの文字コードは eucJP となっているが、+sjis または +utf8 を指定することで Shift_JIS/UTF-8 に対応した辞書を追加インストールすることができる。また、+utf8only を指定すると、MeCab が扱う文字コードを UTF-8 に固定できる。(文字コード変換用のテーブルが MeCab 内部に埋め込まれなくなり、結果としてサイズの小さなバイナリが得られる。)
オプションの辞書として ipadic (mecab-ipadic-eucjp, mecab-ipadic-sjis, mecab-ipadic-utf8) と jumandic (mecab-jumandic-eucjp, mecab-jumandic-sjis, mecab-jumandic-utf8) のパッケージが用意されており、追加して使うことができる。
各スクリプト言語へのバインディングとして p5-mecab, py-mecab, py25-mecab, rb-mecab も用意されている。
[編集] nkf
→Beginning OS X 10.6/アプリ導入編#nkf
[編集] プログラミング言語
[編集] g95
G95 は安定した Fortran 95 コンパイラ。
$ sudo port install g95
[編集] gauche
Gauche は R5RS Scheme の処理系。
$ sudo port install gauche
[編集] ghc
GHC - The Glasgow Haskell Compiler は Haskell の処理系。
$ sudo port install ghc
ビルドには少々時間がかかる。
[編集] 開発ライブラリ
[編集] boost
boost は、次期 C++ 標準ライブラリの実装となることを目指して開発が続けられている実験的なライブラリ。
$ sudo port install boost +icu +python26
+icu を指定すると Unicode 対応の正規表現が利用できる。また +python26 を指定すると python 向けのモジュール作成サポートが有効になる。
Xcode 上で開発する場合
- Debug 構成の「プリプロセッサマクロ」から_GLIBCXX_DEBUG=1 を削除する。(プロジェクトを Command Line Tool テンプレート、Type: C++ stdc++ として作成した場合)
- Release 構成の「アクティブアーキテクチャのみをビルド」をチェックする。(boost を universal binary としてビルドしていない場合)
- Release 構成の「デフォルトでシンボルを隠す」をクリアする。(動的ライブラリを利用する場合。Re: Xcode 3 and boost-1_35 参照)
- すべての構成の「ヘッダ検索パス」に /opt/local/include を追加。
- プロジェクトにライブラリを追加。
静的リンクをおこないたい場合
静的リンクをおこないたい場合には、静的ライブラリを既存のファイルとしてプロジェクトに追加。
このとき「デスティネーショングループのフォルダに項目をコピーする」をチェックしておくこと。これによりプロジェクトディレクトリ内部には静的ライブラリのみが配置され、同名の動的ライブラリは存在しない状態が作られる。
なぜこうした操作が必要かというと、静的ライブラリをプロジェクトに追加しても、リンカには "<ライブラリ名>.a" ではなく、動的ライブラリを追加した場合と同様に "-l<ライブラリ名>" が渡される。このため同一ディレクトリに静・動両方のライブラリが存在すると、動的ライブラリが先に使われてしまい、静的ライブラリが用いられないままとなってしまう。
最後に Technical Q&A QA1393 で示されている -Wl,-search_paths_first を「他のリンカフラグ」に設定。(すべての構成) これにより /opt/local/lib よりも先にプロジェクトディレクトリが検索される場合、そこにある静的ライブラリが使われるようになる。
Unicode 対応の正規表現関数の使い方
Working With Unicode and ICU String Types に記述がある。ここでは要点のみ端書する。
- boost は事前に +icu 付きで導入されていること。
- リンク時には -lboost_system-mt -lboost_regex-mt に加え、-l(s)icudata -l(s)icui18n -l(s)icuuc を指定する。(ICU の静的ライブラリにはライブラリ名にプリフィクス 's' が付く。)
サンプルソースを以下に挙げる。(エンコードは UTF-8)
#include <iostream>
#include <boost/regex.hpp>
#include <boost/regex/icu.hpp>
using namespace std;
using namespace boost;
int main(void) {
const char *s = "なにか書く";
u32regex rx(make_u32regex("(に)(.)(.)"));
cmatch r;
if (u32regex_search(s, r, rx)) {
cout << r.prefix() << endl;
for (int i=1; i<r.size(); ++i) {
cout << r[i] << endl;
}
cout << r.suffix() << endl;
}
return 0;
}
ワイド文字列を格納するのに wchar_t, wstring の利用は避けたほうがよい。
参考:
[編集] アーカイバ
[編集] lha
アーカイバ lha を導入する。
$ sudo port install lha
lha はディレクトリやファイル名を Shift_JIS でエンコードして格納する点に注意。
[編集] 開発ツール
[編集] class-dump
class-dump は Objective-C で作られた Mach-O ファイルからクラス定義などの情報を抜き出して表示するプログラム。
$ sudo port install class-dump
参考:
- Reverse engineering Apple's OS X • The Register
- class-dump-x: class-dump for ObjectiveC 2.0 ABI
- ダイナミックObjective-C (1) CocoaとObjective-Cと動的なオブジェクト指向 - Cocoaハックの第1歩
[編集] doxygen
Doxygen はソースコードからドキュメントを生成するシステム。
$ sudo port install doxygen
依存関係で graphviz も同時にインストールされる。
Doxygen で日本語を扱うには
Doxygen で日本語を扱うには、doxygen -g にて生成される Doxyfile の内容を、最低限以下のように設定しなおしてから使うとよい。(Doxygen 1.5.2 以降、エンコードが Unicode に統一された。)
- OUTPUT_LANGUAGE は 「English」のままでも構わない。(以前は Japanese にする必要があった。)
- INPUT_FILTER を 「"nkf -w"」に。(ダブルクォートも必要。)
- LATEX_CMD_NAME を 「"platex -kanji=utf8"」に。
[編集] global
GNU GLOBAL はソースコードにタグを付けて読みやすくしてくれるツール。Doxygen と組み合わせて使うこともできる。
$ sudo port install global
Objective-C のソースに対応していないのは残念。
[編集] subversion
OS X 10.6 には Subversion がデフォルトで含まれているが、MacPorts から最新版を別途導入することもできる。
$ sudo port install subversion
[編集] ネットワーク
[編集] konversation
konversation は IRC クライアント。version 1.1 までのものは KDE3 上で動作する。
$ sudo port install konversation11
[編集] ncftp
ncftp は FTP クライアント。
$ sudo port install ncftp
[編集] nmap
nmap はポートスキャナ。
$ sudo port install nmap
自分の管理下にないネットワーク/ホストに向けてスキャンをおこなうのは相手方の迷惑になる。
[編集] openssh
OS X 10.6 には OpenSSH がデフォルトで含まれているが、MacPorts から最新版を別途導入することもできる。
$ sudo port install openssh
[編集] sshfs-gui
sshfs は MacFUSE 上で動くファイルシステムで、リモートサーバのディスクを ssh 経由でマウントして使うことができる。sshfs-gui はその GUI 版。
$ sudo port install sshfs-gui
詳細については MacWiki: MacFUSE を参照のこと。
[編集] wget
→Beginning OS X 10.6/アプリ導入編#wget
[編集] wireshark
Wireshark はネットワークプロトコルアナライザ。
Ethereal の中心的開発者 Gerald Combs 氏の米 CACE Technologies 社への転職に伴い作られたソフトウェアで、Ethereal の後継。(Ethereal の商標は前勤務先である米 Network Integration Services 社が所有しており、継続して利用することができなかったらしい。) Ethereal での開発陣が参加し、GPL 下で配布されている。
$ sudo port install wireshark
bpf を開く必要があるので、実行時は sudo wireshark とする (非推奨) か、
$ sudo chgrp admin /dev/bpf* $ sudo chmod g+rw /dev/bpf*
などとする。ただしこの場合、リブートするごとに /dev/bpf* のオーナーシップとパーミッションは初期状態 (root:wheel, 0600) に戻されてしまうので毎回設定しなおす必要がある。(OS X の devfs は古い FreeBSD のものをベースにしている (?) らしく、/etc/devfs.rules でカスタマイズするといった芸当はできない。)
[編集] セキュリティ
[編集] gnupg
GnuPG を導入するには以下のようにする。
$ sudo port install gnupg
[編集] マルチメディア
[編集] ffmpeg
ffmpeg は動画・音声ファイルのフォーマット変換ツール。
$ sudo port install ffmpeg
[編集] ゲーム
[編集] jnethack
JNetHack はダンジョン探索ゲーム。
$ sudo port install jnethack
+x11 を指定することで、タイルを使った表示が可能になる。
以下は設定ファイルの例。
[~/.jnethackrc] #OPTIONS=windowtype:tty OPTIONS=color,DECgraphics #OPTIONS=color OPTIONS=menustyle:traditional OPTIONS=autopickup,pickup_types:$ OPTIONS=hilite_pet OPTIONS=showexp
ちなみに、DECgraphics は OS X 10.4 までの Terminal.app 上では表示が乱れてしまい、使いものにならない。(10.6 の Terminal.app なら OK。)
参考:
- RogueLike@lab3: Let's begin NetHack!
- WikiHack - a free community web site for the game NetHack
- hackaholic - Roguelike Tips
バージョンアップ時にスコアファイルを初期化されたくない場合には
JNetHack をバージョンアップすると、スコアファイルが初期化される。スコアを残しておきたい場合には、/opt/local/share/jnethackdir/ にある logfile と record を保存しておき、バージョンアップ後に書き戻すとよい。
ウィザードモードで遊ぶには
「wizard」というアカウントを作成し、そのユーザでログイン後、「jnethack -D」として起動。
巫女パッチを適用するには
$ sudo port uninstall jnethack
($ sudo port clean --archive jnethack)
$ mkdir ~/Sources
$ cd ~/Sources
$ wget http://lunor.s201.xrea.com/jnh/miko_20071016.txt
$ openssl rmd160 miko_20071016.txt
RIPEMD160(miko_20071016.txt)= c370c0f8298c08ee109c62fc77c943f554389897
$ sudo port clean jnethack
$ sudo port patch jnethack
$ cd `port dir jnethack`
$ cd work
$ sudo patch -p0 < ~/Sources/miko_20071016.txt
$ cd ..
$ sudo port install
