ラベル OSX の投稿を表示しています。 すべての投稿を表示
ラベル OSX の投稿を表示しています。 すべての投稿を表示

2013-07-05

MacPortsの後継としてHomebrewを導入してさらにgettextをインストール

ディスクの空きを増やしたくてMacPortsをアンインストールした。wineとか入れててやたらと重かったし、依存関係でごちゃごちゃしすぎてわけが分からなくなったので全部消してやった。でも、そしたらGNUのgettextが動かない。当たり前か。

Djangoで多言語対応をするためにはGNUのgettextが必要だ。そこで、MacPortsの代わりにHomebrewをインストールすることにした。MacPortsもHomebrew、パッケージ管理システムだが、Homebrewの方はMacにもともと入っているパッケージをなるべくつかうようにしているため、ビルドの時間やディスクの容量を節約できるという噂だ。

インストールのためには、Xcodeがインストールされていることが前提らしい。昔っからXcodeは入っているのでこれは問題なし。
あとは、ターミナルで
$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
と打ち込む。途中でパスワードを聞かれたから教えてあげた。
次のような出力があった。
$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
==> This script will install:
/usr/local/bin/brew
/usr/local/Library/...
/usr/local/share/man/man1/brew.1
==> The following directories will be made group writable:
/usr/local/.
/usr/local/bin
/usr/local/share
==> The following directories will have their group set to admin:
/usr/local/.
/usr/local/bin
/usr/local/share

Press ENTER to continue or any other key to abort
==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/. /usr/local/bin /usr/local/share
Password:
==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/. /usr/local/bin /usr/local/share
==> Downloading and Installing Homebrew...
remote: Counting objects: 119077, done.
remote: Compressing objects: 100% (57206/57206), done.
remote: Total 119077 (delta 83061), reused 94319 (delta 60911)
Receiving objects: 100% (119077/119077), 18.97 MiB | 326 KiB/s, done.
Resolving deltas: 100% (83061/83061), done.
From https://github.com/mxcl/homebrew
* [new branch] master -> origin/master
HEAD is now at 4c74e09 fish: don't search extra folders for libiconv
==> Installation successful!
You should run `brew doctor' *before* you install anything.
Now type: brew help

最初に、ターミナルで「$ brew doctor」を実行しろって書いてある。やってみると次のような警告が出た。
Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:
[省略]
Consider amending your PATH so that /usr/local/bin
occurs before /usr/bin in your PATH.
Homebrewもシステムと重複するプログラムとインストールすることもあるってことかな。とりあえず放ったらかし。

肝心なのは、gettextを入れること。インストールは「$ brew install なんちゃら」でいける。
$ brew install gettext
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/gettext-0.18.2.lion.bottle.tar.gz
######################################################################## 100.0%
==> Pouring gettext-0.18.2.lion.bottle.tar.gz
==> Caveats
This formula is keg-only: so it was not symlinked into /usr/local.

OS X provides the BSD gettext library and some software gets confused if both are in the library path.

Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:

LDFLAGS: -L/usr/local/opt/gettext/lib
CPPFLAGS: -I/usr/local/opt/gettext/include

==> Summary
🍺 /usr/local/Cellar/gettext/0.18.2: 366 files, 11M

これでGNU gettextがインストールできた。しかし、「which gettext」とやっても何もでてこない。パスが通ってないからだ。
インストールのときの出力を見ると、OS XのBSD gettextと競合するかもしれないっていう配慮でパスを通していないようだ。こんな情報も見つけた。https://github.com/mxcl/homebrew/issues/8461

パスを通すには、「$ brew link --force gettext」とやる。いまは「--force」を忘れちゃダメみたい。

2012-03-17

OS X Lionにしたら.Xmodmapが効かなくなってた

snow leopardではちゃんと動作していましたが、lionでは .xmodmapが効かなくなっていることに気づきました。
次のように書き換えたらちゃんと動きました。
! Switch meta and control
keycode 67 = Meta_L
keycode 63 = Control_L
clear mod2
clear control
add mod2 = Meta_L
add control = Control_L

2012-03-16

OS X LionにPostgreSQLを入れようとしてエラー

OS X LionにPostgreSQL8.4.11をインストールしようとしたのですが、途中で次のようなエラーメッセージがでて失敗してしまいます。

Problem running post-install step. Installation may not complete correctlyThe database cluster initialisation failed.

試したのは、たしかこのページからダウンロードしたdmgです。

そこでMacPotsでインストールを試みることにします。
$ sudo port install postgresql84 +python

2012-03-14

OS X LionをにアップグレードしたらMacPortsが動かない

なんかトラブルが起こりそうでOSのアップグレードって嫌なんですが、OSをアップグレードしないとXcodeもアップグレードできず、iOS5.1への対応もできないので、仕方がなしにOS X Lionを購入します。

ファイル消えては困るので、SugarSyncでバックアップをとるつもりでしたが止めました。SugarSyncも信頼していいのかよく分からないサービスで、最近は同期させていなかったので、同期するのに途方も無い時間がかかりそうだからです。

***
インストールは上手く行きました。XcodeもAppStoreからダウンロードできました。

eclipseが起動できなくなっていましたが、これはJavaアップデートすれば良かったみたいです。

gitも使えなくなっていることに気づきました。どうも、Git for OS Xがsnow leopardにしか対応していないようです。MacPortsでインストールし直す必要があるみたいです。

ところが、MacPortsがうまく動きません。次のようなエラーが連発します。

Error: Unable to open port: can't read "build.cmd": Failed to locate 'make' in path: '/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin' or at its MacPorts configuration time location, did you move it?

MacPortsを更新することはできました。
sudo port selfupdate
sudo port upgrade outdated
しかしこの後も、エラーが連発します。もう一度 port upgrade outdated を実行しようとしたら、これもエラーになってしまいました。

Xcodeで、UnixのCommand Line Toolsがインストールされていないのが原因で、build.cmdが見つからないというエラーが出ているようです。以前はインストーラでCommand Line Toolsをインストールするか選べたはずですが、いまはAppStoreからダウンロードするだけなので、インストール時には選べません。しかし、Xcodeを起動した後、Preferences(Cmd + ,)のDownloadsタブからインストールできます。Command Line Toolsをインストールできたら、次のコマンドを実行します。
sudo port install git-core +doc +python26

いちおうgitをインストールできたみたいです。
しかし、MacPortsの調子が悪いです。
次のような警告が出ていることに気づきました。
Warning: Xcode appears to be installed but xcodebuild is unusable; some ports will likely fail to build.
Warning: You may need to run `sudo xcode-select -switch /Applications/Xcode.app`

2012-02-29

MacのX11で日本語入力可能にする

Inkscape、Gimpだけじゃなく、Wineもある程度使えるかもしれないので、Mac OS XのX11で日本語入力を可能にすることに挑戦します。

ネットでやり方を調べたんですが、ちょっと難しいそうでした。そこで調べたことをまとめてみます。
なお、変換ができるようになると、Shift + Space で日本語モードの切替になります。かなキーを押して変換するわけじゃないんですね。
いろいろ試したんですが、Inkscapeで日本語入力を行うことは未だにできていません。Gimpでは日本語入力できます。Wineで導入したPupSQLiteでも大丈夫でした。xtermでもできますが、入力中は文字化けしています。


変換クライアントと変換サーバー


そもそもLinuxでの日本語入力を可能にするためには、インプットメソッド(変換クライアント)と変換エンジン(変換サーバー) の二つが必要ということです。変換クライアントがユーザーと対話を行う部分で、変換エンジンは変換する漢字の候補リストを探すみたいな役割分担だと思います。この二つの組み合わせには制限があるみたいです。変換クライアントをkinput2にすると、変換エンジンにはcannaを使わないといけないようですが、cannaというのはちょっと古いみたいです。
変換クライアントがMacUIMならば、変換エンジンとしてAnthy、PRIME、SKK、Cannaなどを選べるようなので、こっちを使うのが良さそうです。ただしxtermだと文字化けします。


.bashrc と .bach_profile


.bashrc と .bach_profileは、両方ともLinuxの設定ファイルで、ユーザのホームディレクトリにあります(隠しファイルなので、デフォルトのFinderの設定では見えないです。ターミナルで ls -a とやれば表示されます)。.bach_profileは、ログイン時だけに実行されるファイルです。一方、.bashrcは別のシェルが起動したときにも実行されます。ログイン時にも .bach_profileから読み込ませるという形で実行するのが一般的なようです。


launchctl


launchctlは、Macでデーモンを管理するプログラムらしいです。
たとえば、sudo port load canna とやれば、cannaをデーモンとして起動・登録することができます。解除する場合は、sudo port unload canna です。


---
書いている途中で力尽きました

2012-02-27

MAC OSXでX11のアプリを切り替える

貧乏でPhotoshopやらIllustratorが買えないので、画像をつくるときは、InkscapeやGimpなどのフリーソフトを利用しています。
これらはもともとLinux環境用につくられたものなので、OS Xで使うときはX11の上で動作することになります。しかし、X11で起動したアプリは、は他のアプリと操作の仕方が違うのでなかなか使いにくいです。

X11で快適に作業を行うには、次のような設定とショートカットキーを組み合わせて使ったらいいのではないかと思います。

X11の環境設定ダイアログのウィンドウタブで[選択されていないウィンドウを直接クリック]にチェックを入れます。これをやらないとGimpが使いにくいです。

あと全画面でもX11を使う場合は、入力タブで[X11の代替キーを有効にする]にチェックを入れます。こうして置けば、X11内部でのウィンドウの切替を Cmd + F1 でできるようになります。各ウィンドウに番号が割り振られるようで、Cmd + 1 やら Cmd + 2 で、切り替えるウィンドウを指定することもできます。(なお、InkscapeやGimpなどのアプリ内でウィンドウを切り替えるには、Ctrl + Tabが使われることが多いようです。)
全画面から戻るときは、Cmd + Alt + A でいけます。タッチパッドをスワイプしても戻れますけど。全画面の場合は、F10で、アプリのメニューバーがフォーカスされます。

* 全画面モードにしなくても、Cmd + F10 でメニューバーを選択することができました。.xmodmapで左commandをcontrolに割り当てている場合は、右commandキーを利用する必要があります。

* X11でいちばん厄介なのは、commandキーやaltキーが効かなくなることかもしれません。 これについては、さきほどちょっと書きました(MAC OS XのX11でALTキーを有効にする)


MAC OS XのX11でALTキーを有効にする(Inkscape用)


InkscapeをMacで使う場合は、altキーを有効にして置かないと不便でどうしようもないです。
ホームに .xmodemap というファイルを作成し、それに以下のような記述して保存することで、X11でaltキーが有効になります。設定を読み込ませるにはX11の再起動が必要です。(MacBook Proには右altキーはないので、keycode 69 の設定は不要かもしれません。 .xmodemap の設定の意味がよく分かっていないので変な記述が含まれているかもしれません。)

keycode 66 = Alt_L
keycode 69 = Alt_R

ちなみに、つぎの記述で左commandキーをcontrolキーとして使えるようにしておけば、Macの他のアプリと同じようなキーバインディングが使えるようになって、誤操作が減るかと思います。

keycode 63 = Control_L
add control = Control_L

ひとつ忘れていました。altキーを有効にするには、X11の環境設定ダイアログの入力タブで、「3 マウスボタンをエミュレート」と「システムのキーボードレイアウトに従う」のチェックを外して、「X11の代替キーを有効にする」にチェックを入れておく必要もあったかと思います。

X11で日本語入力を可能にする方法を紹介しているブログも発見しましたが、これはだいぶ手間がかかりそうなので、たぶんやりません。むかし挑戦して懲りました。日本語入力を可能にしたところで、いろいろと制約があってそれほど使いやすくはならなかったし。