Beginning OS X Lion/アプリ導入編 拾遺
Beginning OS X Lion > アプリ導入編 拾遺
本編に未収録のもの。
目次 |
[編集] シェル
[編集] bash
OS X Lion には bash 3 がデフォルトで含まれているが、MacPorts から最新版を別途導入することもできる。
$ sudo port install bash
bash を実際に用いるにあたっては、.bashrc, .bash_profile の設定が必要となる。
[編集] エディタ
[編集] emacs
OS X Lion には Emacs 22 がデフォルトで含まれているが、MacPorts から最新の Emacs 23 を導入することもできる。
$ sudo port install emacs
Emacs を実際に用いるにあたっては、.emacs の設定が必要となる。
[編集] Cocoa Emacs
必要であれば Cocoa 対応の Emacs 23 を別途導入することもできる。
$ sudo port install emacs-app +patches configure.compiler=llvm-gcc-4.2
+patches により、以下のパッチを一括して適用できる。
- +fullscreen M-x ns-toggle-fullscreen でフルスクリーン表示
- +inline 日本語変換をおこなう際、文節区切りが判りづらいのを、灰色の下線で判りやすく表示
- +jpfont 和文フォントの寸法を調整することで、欧文フォントと比べてベースラインが下がり気味なのを調整
clang でビルドしたバイナリは若干不安定であるため、ここでは代わりに llvm-gcc-4.2 を用いている。(Xcode 4.2.1 にて確認)
Emacs を実際に用いるにあたっては、.emacs の設定が必要となる。
[編集] ユーティリティ
[編集] bonnie++
bonnie++ はディスク周りのベンチマークソフト。
$ sudo port install bonniexx
[編集] 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 Lion/アプリ導入編#lv
[編集] FDclone
→Beginning OS X Lion/アプリ導入編#FDclone
[編集] kinput2
→Beginning OS X Lion/インフラ整備編#kinput2
[編集] lookup
lookup は emacs 上で動作する辞書検索ソフト。
$ sudo port install lookup +emacs_app
Cocoa Emacs で使う場合には、+emacs_app を指定されたい。
設定ファイルのサンプルは以下のとおり。
[~/.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")))
詳しくはマニュアルを参照されたい。(マニュアルを作成するには +ptex を指定すること。)
[編集] smartmontools
smartmontools は HDD の SMART 情報を確認するためのユーティリティ。
$ sudo port install smartmontools
[編集] smartd の設定
smartd を使うには設定ファイルを作成する必要がある。
サンプルを以下に掲げる。
[/opt/local/etc/smartd.conf] /dev/disk0 -a -S on -s (S/../.././02|L/../../6/03) -I 194 -W 4,45,50 -R 5! -m you@your.domain /dev/disk1 -a -S on -s (S/../.././02|L/../../6/03) -I 190 -I 194 -W 4,45,50 -R 5! -m you@your.domain
- ほとんど全ての情報を追跡する。(-a)
- 自動オフラインテストを有効にする。最近の HDD ではサポートされていないことが多いようだ。(-o on)
- アトリビュートの自動セーブを有効にする。(-S on)
- 午前 2 時に ショートセルフテスト、土曜午前 3 時にロングセルフテストを実施する。(-s (S/../.././02|L/../../6/03))
- エアフロー部に 1 度単位の温度変化が生じてもログに出力しない。(-I 190)
- 1 度単位の温度変化が生じてもログに出力しない。(-I 194)
- 4 度以上の温度変化または 45 度以上になれば syslog に daemon.info として出力する。50 度以上では syslog に daemon.crit として出力し、管理者へメールを発する。(-W 4,45,50)
- Reallocated Sector Count (Attribute #5) が増加すれば syslog に daemon.crit として出力し、管理者へメールを発する。(-R 5!)
- 管理者のメールアドレスを設定する。(-m you@your.domain)
ちなみに Mac OS X Lion の syslog.conf では action フィールドに | (vertical bar) から始まる記法が使えないため、cronolog を介したロギングなどはできない。
[編集] ターミナル
[編集] rxvt-unicode
→Beginning OS X Lion/アプリ導入編#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
+freetype_bytecode を指定することで bytecode interpreter を有効にできる。
表示メッセージは日本語化されているが、フォントの設定をしていないと見づらくなるので、
$ LANG=C fontforge
などとして、メッセージを英語表示にして用いたほうがよい。
[編集] ghostscript-fonts-hiragino
→Beginning OS X Lion/アプリ導入編#ghostscript-fonts-hiragino
[編集] ps2eps
ps2eps は、PostScript を EPS に変換するスクリプト。印字されている領域だけを自動的に切り出してくれる。TeX に貼り付ける図版を用意する上で重宝する。
$ sudo port install ps2eps
[編集] pTeX
→Beginning OS X Lion/アプリ導入編#pTeX
[編集] scribus
scribus は Qt4 ベースの DTP ソフトウェア。日本語の組版にはあまり向いていない。
$ sudo port install scribus
[編集] TeX Live 2011
TeX Live は、世界で現在主流として使われている TeX ディストリビューション。TeX ユーザーグループ間のコラボレーションによって 1996年 より開発が続けられており、ソースおよびビルド済みのバイナリ形態で配布されている。
TeX Live 2010 からは pTeX が収録されている。pTeX のデフォルトエンコードは utf-8 に設定されている。
makejvf や mendex などの周辺ツールも用意されてあるが、JBibTeX は pbibtex というコマンドに変更されている。また、updmap(-sys) の KanjiMap 拡張は行われていない。xdvi は日本語に対応しない。pLaTeX 2.09 は省かれている。jsclasses は収録されているが otf.sty などは未収録のようだ。
fmt ファイルが省かれているので、そのままでは TeXShop で動作しない。(TeXShop 側でのスクリプトファイルの書き換えが必要)
[編集] TeX Live 2011 のインストール
TeX Live 2011 の ISO イメージファイルを取得し、ファインダーからダブルクリックしてマウント後、以下のようにしてインストールする。
$ cd /Volumes/TeXLive2011/
$ sudo ./install-tl
======================> TeX Live installation procedure <=====================
=======> Note: Letters/digits in <angle brackets> indicate menu items <=======
=======> for commands or configurable options <=======
Detected platform: universal binaries for MacOSX/Darwin
<B> platforms: 1 out of 19
<S> installation scheme (scheme-full)
84 collections out of 85, disk space required: 2676 MB
Customizing installation scheme:
<C> standard collections
<L> language collections
<D> directories:
TEXDIR (the main TeX directory):
/usr/local/texlive/2011
TEXMFLOCAL (directory for site-wide local files):
/usr/local/texlive/texmf-local
TEXMFSYSVAR (directory for variable and automatically generated data):
/usr/local/texlive/2011/texmf-var
TEXMFSYSCONFIG (directory for local config):
/usr/local/texlive/2011/texmf-config
TEXMFVAR (personal directory for variable and automatically generated data):
~/.texlive2011/texmf-var
TEXMFCONFIG (personal directory for local config):
~/.texlive2011/texmf-config
TEXMFHOME (directory for user-specific files):
~/texmf
<O> options:
[ ] use letter size instead of A4 by default
[X] allow execution of restricted list of programs via \write18
[X] create all format files
[X] install macro/font doc tree
[X] install macro/font source tree
<V> set up for portable installation
Actions:
<I> start installation to hard disk
<H> help
<Q> quit
Enter command: i
- 標準では universal binary (i386/ppc) がインストールされる。これを x86_64 バイナリに変更するには b を押してメニューより選択する。
- TeX Live 2011 は /usr/local/texlive/2011 以下にインストールされる。
PATH の設定
インストール後には、TeX Live 2011 に PATH を通しておく必要がある。これには、たとえば以下のような設定行を ~/.bash_profile の適切な場所に追加する。(universal binary をインストールした場合)
[~/.bash_profile]
...
test -d /usr/local/texlive/2011 && PATH=/usr/local/texlive/2011/bin/universal-darwin:$PATH &&
MANPATH=/usr/local/texlive/2011/texmf/doc/man:$MANPATH
export PATH MANPATH
...
また、Emacs から TeX Live 2011 を呼び出す必要のある場合 (たとえば Cocoa Emacs 上で imaxima を使いたい場合など) には、以下のようにして PATH の設定をおこなう。
[~/.emacs] ... ;; for TeX Live 2011 (setq exec-path (cons "/usr/local/texlive/2011/bin/universal-darwin/" exec-path)) ...
[編集] tlmgr による TeX Live 2011 のアップデート
インターネット上のレポジトリを指定。
$ sudo tlmgr option repository http://ftp.jaist.ac.jp/pub/CTAN/systems/texlive/tlnet/
- CTAN mirror は http://www.ctan.org/tex-archive/CTAN.sites より適したものを選択すること。
tlmgr コマンド自体をアップデート。
$ sudo tlmgr update --self
更新対象となるパッケージの一覧を表示。
$ tlmgr update --list
パッケージを更新。
$ sudo tlmgr update --all
[編集] TeX Live 2011 でヒラギノフォントを使うには
TeX Live 2011 は、そのままでは Mac OS X 付属のヒラギノフォントを使うように設定されず、dvipdfmx がフォント非埋め込み状態の PDF を生成するなどの問題が生じる。ヒラギノフォントを積極的に使用するには、以下のような設定をおこなうとよい。
map ファイルの調整
TeX Live 2011 の updmap-sys は KanjiMap 拡張がなされていないので、ここでは既存の map ファイルを直接書き換える方法をとる。
- dvips(k)
- /usr/local/texlive/2011/texmf/fonts/map/dvips/tetex/cid-base.map を書き換える。
[/usr/local/texlive/2011/texmf/fonts/map/dvips/tetex/cid-base.map] %% This file 'cid-base.map' is read by dvips for default %% config.ps setting. %% %% %% Aleph Example %% %% Adobe-Japan1 %omrml Ryumin-Light-UniJIS-UCS2-H %omgbm GothicBBB-Medium-UniJIS-UCS2-H %% %% ASCII pTeX Examples %% %% Ryumin and GothicBBB found in PostScript printers: %rml Ryumin-Light-H %gbm GothicBBB-Medium-H %rmlv Ryumin-Light-V %gbmv GothicBBB-Medium-V %% %% Morisawa OpenType Basic 7 Family Pack %% %ryumin-l A-OTF-RyuminPro-Light-H %ryumin-l-v A-OTF-RyuminPro-Light-V %gtbbb-m A-OTF-GothicBBBPro-Medium-H %gtbbb-m-v A-OTF-GothicBBBPro-Medium-V %futomin-b A-OTF-FutoMinA101Pro-Bold-H %futomin-b-v A-OTF-FutoMinA101Pro-Bold-V %futogo-b A-OTF-FutoGoB101Pro-Bold-H %futogo-b-v A-OTF-FutoGoB101Pro-Bold-V %jun101-l A-OTF-Jun101Pro-Light-H %jun101-l-v A-OTF-Jun101Pro-Light-V %% %% Morisawa (old cid) %% %ryumin-l Ryumin-Light-H %ryumin-l-v Ryumin-Light-V %gtbbb-m GothicBBB-Medium-H %gtbbb-m-v GothicBBB-Medium-V %futomin-b FutoMinA101-Bold-H %futomin-b-v FutoMinA101-Bold-V %futogo-b FutoGoB101-Bold-H %futogo-b-v FutoGoB101-Bold-V %jun101-l Jun101-Light-H %jun101-l-v Jun101-Light-V %% %% Hiragino %% omrml HiraMinPro-W3-UniJIS-UCS2-H omgbm HiraKakuPro-W6-UniJIS-UCS2-H % rml HiraMinPro-W3-H gbm HiraKakuPro-W6-H rmlv HiraMinPro-W3-V gbmv HiraKakuPro-W6-V % ryumin-l HiraMinPro-W3-H ryumin-l-v HiraMinPro-W3-V gtbbb-m HiraKakuPro-W3-H gtbbb-m-v HiraKakuPro-W3-V futomin-b HiraMinPro-W6-H futomin-b-v HiraMinPro-W6-V futogo-b HiraKakuPro-W6-H futogo-b-v HiraKakuPro-W6-V jun101-l HiraMaruPro-W4-H jun101-l-v HiraMaruPro-W4-V
なお、これらのフォントは現状、適切に設定された ghostscript 上 (MacPorts の port:ghostscript-fonts-hiragino など) でのみ利用できる。PS プリンタに直接送りたい場合には、ghostscript 付属の ps2pdf で変換してから印刷すること。
- dvipdfmx
- /usr/local/texlive/2011/texmf/fonts/map/dvipdfmx/cid-x.map を書き換える。
[/usr/local/texlive/2011/texmf/fonts/map/dvipdfmx/cid-x.map]
...
%%
%% Omega Examples
%%
%% Chinese
%% Arphic TrueType fonts as Adobe-{CNS1,GB1} CID-keyed font.
%ombkai UniCNS-UCS2-H bkai00mp
%ombsmi UniCNS-UCS2-H bsmi00lp
%omgkai UniGB-UCS2-H gkai00mp
%omgbsn UniGB-UCS2-H gbsn00lp
%% Japanese
%% Adobe-Japan1
%omrml UniJIS-UCS2-H Ryumin-Light
%omgbm UniJIS-UCS2-H GothicBBB-Medium
%% Korean
%omgtm UniKS-UCS2-H HYGoThic-Medium
%ombtr UniKS-UCS2-H batang
%%
%% ASCII pTeX Examples
%%
%% Ryumin and GothicBBB found in PostScript printers:
%rml H Ryumin-Light
%gbm H GothicBBB-Medium
%rmlv V Ryumin-Light
%gbmv V GothicBBB-Medium
%% Synthetic font used for futo* family.
%% jun101 not available.
%ryumin-l H Ryumin-Light
%gtbbb-m H GothicBBB-Medium
%futomin-b H Ryumin-Light,Bold
%futogo-b H GothicBBB-Medium,Bold
%ryumin-l-v V Ryumin-Light
%gtbbb-m-v V GothicBBB-Medium
%futomin-b-v V Ryumin-Light,Bold
%futogo-b-v V GothicBBB-Medium,Bold
%% Morisawa OpenType Basic 7 Family Pack
%%
%ryumin-l H A-OTF-RyuminPro-Light
%ryumin-l-v V A-OTF-RyuminPro-Light
%gtbbb-m H A-OTF-GothicBBBPro-Medium
%gtbbb-m-v V A-OTF-GothicBBBPro-Medium
%futomin-b H A-OTF-FutoMinA101Pro-Bold
%futomin-b-v V A-OTF-FutoMinA101Pro-Bold
%futogo-b H A-OTF-FutoGoB101Pro-Bold
%futogo-b-v V A-OTF-FutoGoB101Pro-Bold
%jun101-l H A-OTF-Jun101Pro-Light
%jun101-l-v V A-OTF-Jun101Pro-Light
%% Hiragino
%%
omrml UniJIS-UCS2-H HiraMinPro-W3
omgbm UniJIS-UCS2-H HiraKakuPro-W6
%
rml H HiraMinPro-W3
gbm H HiraKakuPro-W6
rmlv V HiraMinPro-W3
gbmv V HiraKakuPro-W6
%
ryumin-l H HiraMinPro-W3.otf
ryumin-l-v V HiraMinPro-W3.otf
gtbbb-m H HiraKakuPro-W3.otf
gtbbb-m-v V HiraKakuPro-W3.otf
futomin-b H HiraMinPro-W6.otf
futomin-b-v V HiraMinPro-W6.otf
futogo-b H HiraKakuPro-W6.otf
futogo-b-v V HiraKakuPro-W6.otf
jun101-l H HiraMaruPro-W4.otf
jun101-l-v V HiraMaruPro-W4.otf
%% MS Mincho/Gothic
%msmin H msmincho
%msgot H msgothic
...
OpenType フォントの導入
- /usr/local/texlive/2011/texmf/fonts/opentype/public/hiragino から実ファイルへリンクを張る。
$ sudo install -m 0755 -d /usr/local/texlive/2011/texmf/fonts/opentype/public/hiragino $ cd /usr/local/texlive/2011/texmf/fonts/opentype/public/hiragino $ sudo ln -s "/Library/Fonts/ヒラギノ明朝 Pro W3.otf" HiraMinPro-W3.otf $ sudo ln -s "/Library/Fonts/ヒラギノ明朝 Pro W6.otf" HiraMinPro-W6.otf $ sudo ln -s "/Library/Fonts/ヒラギノ角ゴ Pro W3.otf" HiraKakuPro-W3.otf $ sudo ln -s "/Library/Fonts/ヒラギノ角ゴ Pro W6.otf" HiraKakuPro-W6.otf $ sudo ln -s "/Library/Fonts/ヒラギノ角ゴ Std W8.otf" HiraKakuStd-W8.otf $ sudo ln -s "/Library/Fonts/ヒラギノ丸ゴ Pro W4.otf" HiraMaruPro-W4.otf
- mktexlsr を実行してインデックスを更新する。
$ sudo mktexlsr
アップデート時の巻き戻しに注意
tlmgr で dvips / dvipdfmx が更新された場合、map ファイルが初期状態に戻されてしまうので注意。(この場合、ヒラギノフォント利用のための設定を再度おこなう必要が生じる。)
ちなみに、$TEXMFLOCAL が $TEXMFMAIN よりも先に来るディストリビューションの場合には $TEXMFLOCAL に更新後の map ファイルを置くこともできるのだが、TeX Live ではポリシーとして $TEXMFLOCAL が $TEXMFMAIN の後に来るように設定されており、この方法では回避できない。texmf.cnf のコメントによると、$TEXMFMAIN をユーザが変更するのはトラブルの元であると考えているため、このような措置にしているとのこと。
[編集] 画像処理
[編集] 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 for Mac OS X を用いたほうが手軽かもしれない。また、画像ファイルのフォーマットの変換ならば、ImageMagick の convert コマンドでも処理できる。
[編集] ImageMagick
→Beginning OS X Lion/アプリ導入編#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
Cocoa Emacs 上で Imaxima を使うには
$ sudo port install imaxima +emacs_app +ptex
- port:pTeX ではなく port:texlive を使う場合には +ptex の指定を外す。
- port:emacs-app ではなく port:emacs の +gtk などを使う場合には +emacs_app の指定を外す。
[編集] wxMaxima
wxMaxima は Finder 上から起動できる maxima フロントエンド。 ツールキットには wxWidgets が使われる。
$ sudo port install wxMaxima
[編集] octave
Octave は GNU プロジェクトの数値解析ソフトウェア。MATLAB 互換となるように作られており、行列演算をおこなうのに向いている。
$ sudo port install octave +accelerate
[編集] テキスト処理
[編集] chasen
ChaSen は日本語テキストの形態素解析プログラム。
$ sudo port install chasen
辞書は標準で ipadic (eucJP 版, UTF-8 版の 2 種類) がインストールされる。
歴史的な理由からデフォルトの文字コードは eucJP に設定されているが、chasen -r /opt/local/etc/chasen/chasenrc-utf8 -i w <input> または chasen-utf8 <input> とすれば UTF-8 のテキストを直接処理することができる。
Perl モジュールとして p5.12-text-chasen も用意されている。
[編集] cocot
cocot は tty 上でコード変換をおこなうフィルタプログラム。locale が UTF-8 の Mac OS X から eucJP の UNIX サーバにリモートログインする場合や、出力される文字コードが eucJP に決め打ちされているようなアプリケーションを UTF-8 環境から用いる際に使うと便利。
$ sudo port install cocot
[編集] kakasi
KAKASI は漢字仮名交じり文を平仮名や片仮名、ローマ字表記に変換することができるテキストフィルタ。分かち書きもできる。
$ sudo port install kakasi
Perl モジュールとして p5.12-text-kakasi も用意されている。
[編集] mecab
MeCab は形態素解析プログラム。ChaSen や KAKASI よりも設計が新しく、高速に動作するらしい。
$ sudo port install mecab-utf8
辞書は標準で ipadic がインストールされる。
各スクリプト言語へのバインディングとして p5.12-mecab, py27-mecab, rb19-mecab も用意されている。
[編集] nkf
→Beginning OS X Lion/アプリ導入編#nkf
[編集] プログラミング言語
[編集] g95
G95 は安定した Fortran 95 コンパイラ。
$ sudo port install g95
[編集] ghc
GHC - The Glasgow Haskell Compiler は Haskell の処理系。
$ sudo port install ghc
ビルドには少々時間がかかる。
[編集] 開発ライブラリ
[編集] boost
boost は、次期 C++ 標準ライブラリの実装となることを目指して開発が続けられている実験的なライブラリ。
$ sudo port install boost +python27
デフォルトで ICU への依存関係を有しており、Unicode 対応の正規表現が利用できる。また +python27 を指定すると python 向けのモジュール作成サポートが有効になる。
Xcode 4.2.x 上で開発する場合
- PROJECT の Build Settings において、
- Architectures → Build Active Architecture Only を Yes に設定する。(boost を universal binary としてビルドしていない場合)
- Search Paths → Header Search Paths に /opt/local/include を追加する。
- プロジェクトにライブラリを追加 (Add files to...) する。
以上。静的リンクをおこないたい場合も同様。Xcode 3 の時よりも楽になった。
Unicode 対応の正規表現関数の使い方
Working With Unicode and ICU String Types に記述がある。ここでは要点のみ端書する。
-
boost は事前に +icu 付きで導入されていること。現在の port:boost はデフォルトで ICU サポート付き。 - リンク時には -lboost_system-mt -lboost_regex-mt に加え、-licudata -licui18n -licuuc を指定する。
サンプルソースを以下に挙げる。(エンコードは 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"」に。
[編集] git
git は分散型バージョン管理システム。
$ sudo port install git-core
[編集] global
GNU GLOBAL はソースコードにタグを付けて読みやすくしてくれるツール。Doxygen と組み合わせて使うこともできる。
$ sudo port install global
Objective-C のソースに対応していないのは残念。
[編集] subversion
OS X Lion には Subversion がデフォルトで含まれているが、MacPorts から最新版を別途導入することもできる。
$ sudo port install subversion
[編集] ネットワーク
[編集] ncftp
ncftp は FTP クライアント。
$ sudo port install ncftp
[編集] nmap
nmap はポートスキャナ。
$ sudo port install nmap
自分の管理下にないネットワーク/ホストに向けてスキャンをおこなうのは相手方の迷惑になる。
[編集] openssh
OS X Lion には OpenSSH がデフォルトで含まれているが、MacPorts から最新版を別途導入することもできる。
$ sudo port install openssh
[編集] wget
→Beginning OS X Lion/アプリ導入編#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) に戻されてしまうので毎回設定しなおす必要がある。(FreeBSD では /etc/devfs.rules でカスタマイズできるが、OS X では不可。)
[編集] セキュリティ
[編集] gnupg
GnuPG を導入するには以下のようにする。
$ sudo port install gnupg
[編集] マルチメディア
[編集] ffmpeg
ffmpeg は動画・音声ファイルのフォーマット変換ツール。
$ sudo port install ffmpeg +nonfree
[編集] ゲーム
[編集] 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 上では表示が乱れてしまい、使いものにならない。(Lion の 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
$ 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