‘OS X’ タグのついている投稿
High Sierra にアップグレードしててヤラレる
OS X Mountain Lion セットアップ日記 4 Bazaar激闘編
激闘なんかしたくなかった。
MacOSXDownloads – wiki.bazaar.canonical.com
最新の Stable、Snow Leopard (10.6 – Python 2.6) 2.5.0 をインストールしました。
Mountain Lion 用どころか Lion 用のインストーラーもないんだよね。
でも Bazaar Explorer を起動できたので大丈夫だと思っていた、まだ幸せだった、あの頃。
地獄変
盆休み明けにコードの編集始めようリポジトリを選択したら Bazaar Explorer がぶち落ちやがった。
$ bzr explorer
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
〜 250行位略 〜
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
QEventDispatcherUNIXPrivate(): Unable to create thread pipe: Too many open files
QEventDispatcherUNIXPrivate(): Can not continue without a thread pipe
zsh: abort bzr explorer
(´・ω・`)
いろいろ試してみるとターミナルから操作しても bzr-svn プラグインでエラーとなることが判明。
$ bzr log
〜 略 〜
revno: 14
committer: Junya Murabe
branch nick: trunk
timestamp: Mon 2011-05-09 19:12:41 +0900
message:
chkPassowordCharをapp_modelに移動。chkFilenameChar作成。
bzr: ERROR: exceptions.ImportError: Unable to load subvertpy extensions: dlopen(/Library/Python/2.6/site-packages/subvertpy/repos.so, 2): Symbol not found: _svn_fs__path_change2_create
Referenced from: /usr/lib/libsvn_fs-1.0.dylib
Expected in: /usr/local/lib/libsvn_fs_util-1.0.dylib
in /usr/lib/libsvn_fs-1.0.dylib
Traceback (most recent call last):
File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 930, in exception_to_return_code
return the_callable(*args, **kwargs)
File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 1141, in run_bzr
ret = run(*run_argv)
File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 673, in run_argv_aliases
return self.run(**all_cmd_args)
File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 697, in run
return self._operation.run_simple(*args, **kwargs)
File "/Library/Python/2.6/site-packages/bzrlib/cleanup.py", line 136, in run_simple
self.cleanups, self.func, *args, **kwargs)
File "/Library/Python/2.6/site-packages/bzrlib/cleanup.py", line 166, in _do_with_cleanups
result = func(*args, **kwargs)
File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 1158, in ignore_pipe
result = func(*args, **kwargs)
File "/Library/Python/2.6/site-packages/bzrlib/builtins.py", line 2895, in run
Logger(b, rqst).show(lf)
File "/Library/Python/2.6/site-packages/bzrlib/log.py", line 382, in show
self._show_body(lf)
File "/Library/Python/2.6/site-packages/bzrlib/log.py", line 412, in _show_body
lf.log_revision(lr)
File "/Library/Python/2.6/site-packages/bzrlib/log.py", line 1558, in log_revision
lines.extend(self.custom_properties(revision.rev))
File "/Library/Python/2.6/site-packages/bzrlib/log.py", line 1476, in custom_properties
lines = self._foreign_info_properties(revision)
File "/Library/Python/2.6/site-packages/bzrlib/log.py", line 1498, in _foreign_info_properties
foreign.foreign_vcs_registry.parse_revision_id(rev.revision_id)
File "/Library/Python/2.6/site-packages/bzrlib/foreign.py", line 185, in parse_revision_id
foreign_vcs = self.get(revid.split("-")[0])
File "/Library/Python/2.6/site-packages/bzrlib/registry.py", line 177, in get
return self._dict[self._get_key_or_default(key)].get_obj()
File "/Library/Python/2.6/site-packages/bzrlib/registry.py", line 74, in get_obj
self._obj = get_named_object(self._module_name, self._member_name)
File "/Library/Python/2.6/site-packages/bzrlib/pyutils.py", line 51, in get_named_object
obj = __import__(module_name, {}, {}, from_list)
File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/mapping.py", line 23, in
from subvertpy import properties
File "/Library/Python/2.6/site-packages/subvertpy/__init__.py", line 130, in
raise ImportError("Unable to load subvertpy extensions: %s" % e)
ImportError: Unable to load subvertpy extensions: dlopen(/Library/Python/2.6/site-packages/subvertpy/repos.so, 2): Symbol not found: _svn_fs__path_change2_create
Referenced from: /usr/lib/libsvn_fs-1.0.dylib
Expected in: /usr/local/lib/libsvn_fs_util-1.0.dylib
in /usr/lib/libsvn_fs-1.0.dylib
bzr 2.6b2 on python 2.6.7 (Darwin-12.0.0-x86_64-i386-64bit)
arguments: ['/usr/local/bin/bzr', 'log']
plugins: bash_completion[2.6b2], bzrtools[2.5.0], changelog_merge[2.6b2],
colo[0.4.0], email[unknown], explorer[1.3.0], fastimport[0.14.0dev],
git[0.6.8], keychain[0.1.0], launchpad[2.6b2], loom[2.2.0],
netrc_credential_store[2.6b2], news_merge[2.6b2], pipeline[1.4.0],
po_merge[2.6b2], qbzr[0.23.0], rewrite[0.6.3], svn[1.2.2], upload[1.1.0],
weave_fmt[2.6b2], xmloutput[0.8.8]
encoding: 'utf-8', fsenc: 'utf-8', lang: 'ja_JP.UTF-8'
*** Bazaar has encountered an internal error. This probably indicates a
bug in Bazaar. You can help us fix it by filing a bug report at
https://bugs.launchpad.net/bzr/+filebug
including this traceback and a description of the problem.
中央リポジトリは Subversion なので死活問題。
解決編
bzr-svn
先に解決したのは bzr-svn。こいつのエラーが原因で explorer も落ちてるのかも?と思っていたので(違ったのですが)先に対処しました。
エラーメッセージを読むと subvertpy でエラーが出ています。調べると Mercurial でも Mountain Lion で Subversion 連携が動作しなくなったとの情報などありました。
JavelinDev ブログ: Mountain Lionでpython関係のライブラリが動かなくなったのを復旧した手順
bzr-svn も subvertpy でエラーが起きているので入れなおすことにしました。インストールの邪魔になるので、まず、元のファイルをどかします。消すのは怖いので mv しました。
$ sudo mv /Library/Python/2.6/site-packages/subvertpy ~/
$ sudo mv /Library/Python/2.6/site-packages/subvertpy-0.8.10-py2.6.egg-info ~/
そしてインストール。
$ sudo easy_install-2.6 subvertpy
bzr-svn 復活!
$ bzr commit
Committing to: svn+http://###.###.###.###/##/#######
modified app/controllers/jobs_controller.php
/Library/Python/2.6/site-packages/bzrlib/plugins/svn/commit.py:252: DeprecationWarning: bzrlib.revisiontree.InventoryRevisionTree._get_inventory was deprecated in version 2.5.0.
for child_name, child_ie in base_tree.inventory[file_id].children.iteritems():
/Library/Python/2.6/site-packages/bzrlib/plugins/svn/commit.py:703: DeprecationWarning: bzrlib.revisiontree.InventoryRevisionTree._get_inventory was deprecated in version 2.5.0.
return self.old_tree.inventory[file_id]
/Library/Python/2.6/site-packages/bzrlib/plugins/svn/commit.py:685: DeprecationWarning: bzrlib.revisiontree.InventoryRevisionTree._get_inventory was deprecated in version 2.5.0.
old_ie = self.old_tree.inventory[file_id]
/Library/Python/2.6/site-packages/bzrlib/plugins/svn/commit.py:303: DeprecationWarning: bzrlib.revisiontree.InventoryRevisionTree._get_inventory was deprecated in version 2.5.0.
base_tree.inventory[child_ie.file_id].parent_id != child_ie.parent_id):
/Library/Python/2.6/site-packages/bzrlib/plugins/svn/commit.py:364: DeprecationWarning: bzrlib.revisiontree.InventoryRevisionTree._get_inventory was deprecated in version 2.5.0.
base_tree.inventory[child_ie.file_id].parent_id != child_ie.parent_id):
Committed revision 83.
commit 時に非推奨ワーニング(DeprecationWarning)がでたりしてますが動作しているようです。
Bazaar Explorer
Bug #926439 “Can’t open project in GUI “Too many open files”” : Bugs : Bazaar Explorer
の #9 にあげてくださってる workaround-926439.patch で解決しました。
$ cd /Library/Python/2.6/site-packages/bzrlib/plugins/explorer
$ sudo patch -p0 -b < ~/Downloads/workaround-926439.patch
ここにたどり着くまで、長かった。
調べたりやってみたりしたけどたぶん無駄だったこと
プリインストールの Python が2.7系も入るようになったので(Lionから?)2.6系を使用している Bazaar が動かなくなるという不具合が過去に発生していたようです。コードを見たところこの不具合への対処は入っていました。
Bazaar Explorer が落ちる件、ダウンロードページに「 QT をバージョンアップしてみなよ」とか書いてあるので QT の再インストールを何通りかの方法でやってみましたが症状は変わりませんでした。結果的に Homebrew で入れた QT を使用している状態ですが今回のエラー対処には影響していないとおもいます(たぶん)。
こんな状態だと Bazaar 、オススメできないなぁ。
OS X Mountain Lion セットアップ日記 3 Xcode&Homebrew etc
Git や Subversion、他もろもろのインストールで必要なのでパッケージ管理システムを入れます。
以前は MacPorts を使っていたのですが最近はめっきり Homebrew です。
http://mxcl.github.com/homebrew/
「Xcode は Mac App Store から入れるんだよな。あとはターミナルから
ruby <(curl -fsSkL raw.github.com/mxcl/homebrew/go) で一発やで〜」
ダメでした。Xcode 入れただけじゃコマンドラインツールが入らなくなったのね。
コマンドラインツールは Xcode の Preferences の Downloads からインストールできました。
さっきも書きましたがHomebrewのインストールはターミナルで
ruby <(curl -fsSkL raw.github.com/mxcl/homebrew/go)
一発です。すばらしい。
あとは心のおもむくままに Homebrew で必要なパッケージを入れていきましょう。
特に Subversion は日本語ファイルの扱いに関するパッチが適用された状態でインストールできるので Homebrew で入れるのをオススメします。
brew install subversion --unicode-path
Homebrew は便利ですが perl と ruby は別の方法で入れます(デフォで入ってますが新しいのを入れる場合の話ね)。
perl は perlbrew。CentOS の場合については以前ブログに書きましたね。
メモ:CentOS 5.5 で perlbrew + cpanminus
基本的に同じです。
ruby は rbenv+ruby-build で入れます。
rbenv と ruby-build 自体は Homebrew でインストールできます。
以前は rvm を使ってたんですが切り替えました。
どちらでも良いと思いますが複数のバージョンを切り替えられるようにしておいたほうがいいです。
OS X Mountain Lion セットアップ日記 2 Java&NetBeans
コードはNetBeansで書くことが多いので早速インストール!
Javaはいってないので無理いわれました。
「Java入れないとな〜」と検索したら下記ページを見つけました。
Mountain Lion (Mac OS X 10.8)にJavaをインストールする – memo.yomukaku.net
Java入ってない状態でターミナルで
java -version
とかしたらインストールのダイアログ出てくるのね。知らなかった。
Java入りました。こりゃ楽だ。再度 java -version してみましょう。
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)
おけおけ。
NetBeansは必要なのを選んでインストールするといいです。ボクは全部入り。
特に調整せずに使ってもあまり困りません。Eclipseよりセットアップは楽だと思う。
ねこび〜んカワイイです。
OS X Mountain Lion セットアップ日記 1
Macbook Pro 15 Retina きたー!
5年間開発マシンとして使ってきた Macbook Pro 13 にパワー不足や安定性の低下を感じることが多くなり開発マシンのリプレースをお願いしていました。
リプレースについては既にOKをもらっていたのですが Macbook Air 13 と Retina Macbook Pro 15 で私が悩んでいて先延ばしにしていました(13インチRetinaがあったら即決だったんですけど)。
結局「すべてを一台で」と考えると Retina Macbook Pro 15 に。持ち歩くことも多いので重量が気になりはしましたが今のマシンと変わりませんしね。
てなわけで、昨日新マシンが来たのでセットアップしています。前のマシンのOSは Snow Leopard のままで Lion には上げてなかったので戸惑うことも多いです。
初期セットアップ
とりあえずiCloudとかはスキップしました。
情報表示用ソフトのインストール
表示されないと不便すぎる通知やシステム情報。
Hiss
いろんなソフトの通知を表示してくれる定番ソフトと言えば Growl!
ということで入れようかと思って検索したら Mountain Lion から通知センターってのが導入されたらしく。で、Growl対応ソフトの通知を通知センターにながしこんでくれる Hiss というソフトがありましたのでコッチを入れてみました。
http://collect3.com.au/hissapp/
大変便利です。オススメ。
MnuMeters
CPU、メモリー、ディスク、ネットワークの状態をメニューバーに表示することができます。必須。
http://www.ragingmenace.com/software/menumeters/
特にディスクアクセスと通信状態が見えないと不安で不安で。
システム環境設定
共有
・デフォルトでつけられてる名前はどうかと思うのでコンピュータ名を設定。
キーボード
・キーのリーピートを一番速く。
・リピート入力認識までの時間を一番短く。
これでも遅いくらい。
・F1、F2などのすべてのキーを標準のファンクションキーとして使用にチェック。
この設定のほうが直感として正しい感じるので。
トラックパッド
・タップでクリックを有効に。好みの問題ですね。
マウス
・スクロールの方向:ナチュラルのチェックをはずす。パッドはいいんですけどマウスのホイールが逆になるのはどうかと。好みの問題ですけど。
・軌跡の速さを一番速く。
MenuMeters
好みの表示に。
Mac で複数ファイルの一括置換ってどうしてます?
Windows だと Devas ってソフトでバッチリだったんですが、Mac ではいいソフトを見つけることができずにいます。
サブディレクトリ内のファイルも含めてまとめて置換は、今はターミナルで次の手順でやってます。
まず、find で特定拡張子のファイルリストをとって xargs で grep にわたして置換したい単語を検索。
$ find . -name '*.拡張子' | xargs grep 置換したい単語
で、grepに -l オプションつけて置換したい単語が含まれるファイルリストをとって xargs で perl にわたして置換。
$ find . -name '*.拡張子' | xargs grep -l 置換したい単語 | xargs perl -p -i.bak -e 's/置換したい単語/置換後の単語/g'
perl の -i オプションに .bak と付けてるので元ファイルは bak という拡張子で残ります。
「perlだけでやればいいじゃん」と言われそうですが、いきなりやるのは不安なのと置換が行われてないファイルまで全てタイムスタンプが変わったりしたのでこの方法に落ち着きました。
で、置換されたファイルの内容確認して問題なければbakファイル削除。
$ find . -name '*.bak'
で確認して、
$ find . -name '*.bak' | xargs rm
完了〜。 xargs ラヴ♡
Unix系なら他でも使えると思います。
いいっちゃいいんですが、記憶力がないので思い出せる気がしません。historyがあふれるとオレ終了って感じ(なのでメモという意味もあり)。
ちなみに私がターミナルで一番使うコマンドはブッチギリで
$ history | grep コマンド名
history ラヴ♡♡
OS X に導入した PostgreSQL の自動起動を無効にする
- 2010/02/25
- murave
- OS X
- PostgreSQL
PostgreSQL が自動起動するようになっていたので止めときます。開発・検証用ですので。
OS X では daemon の起動は launchctl コマンドで設定できるようです。拡張子が plist な設定ファイルでコントロールしているそうなので探します。
$ locate plist | grep postgres
/Library/LaunchDaemons/com.edb.launchd.postgresql-8.4.plist
/Library/PostgreSQL/8.4/uninstall-postgresql.app/Contents/Info.plist
com.edb.launchd.postgresql-8.4.plist というファイルのようです。
$ sudo launchctl unload -w /Library/LaunchDaemons/com.edb.launchd.postgresql-8.4.plist
再起動して確認。
$ ps ax | grep postgres
419 s000 S+ 0:00.00 grep postgres
おけおけ。
逆に自動起動させたいときは
$ sudo launchctl load -w /Library/LaunchDaemons/com.edb.launchd.postgresql-8.4.plist
ですかね。
NATなFusion上のWindowsからホストのPostgreSQLに接続
- 2010/02/24
- murave
- OS X
- PostgreSQL
- VMware Fusion
MacBookにPostgreSQLを『Mac OS X で PostgreSQL を使ってみよう』(http://lets.postgresql.jp/documents/tutorial/macosx/)を参考にしつつ導入したのですがpsqlで日本語が通らず困ってたりする今日この頃です。ヘルプミー。
とりあえず、VMware Fusiion3上のWindows7にもPostgreSQLを入れたのですが、ServerだけMac側を使おうかなと。サーバーUnix系OS、クライアントWindowsな実環境に近くなりますし。
ってなわけで、Fusion上のWin7がどうなっているやら調べます。ipconfigで見てみましょう。ネットワーク アダプタはNATです。
IPv4 アドレス . . . . . . . . . . : 192.168.249.131
サブネット マスク . . . . . . . . : 255.255.255.0
デフォルト ゲートウェイ . . . . . : 192.168.249.2
ということで、ホストのアドレスは192.168.249.1のようですね。
次、OS X に導入したPostgreSQL8.4がどうなってるのか探ります(ちょい前に導入したもので設定を忘れてまして)。探っていくと、/Library/PostgreSQL/ってなところにインストールされているようです。
設定ファイルを探します。デフォルトだとデータと同じ場所に設定ファイルがありますね。
$ sudo ls -l /Library/PostgreSQL/8.4/data/
total 80
-rw------- 1 postgres daemon 4 1 15 08:41 PG_VERSION
drwx------ 6 postgres daemon 204 1 16 21:07 base
drwx------ 42 postgres daemon 1428 3 18 17:33 global
drwx------ 3 postgres daemon 102 1 15 08:41 pg_clog
-rw------- 1 postgres daemon 3405 1 15 08:41 pg_hba.conf
-rw------- 1 postgres daemon 1631 1 15 08:41 pg_ident.conf
drwxr-xr-x 69 postgres daemon 2346 3 23 00:00 pg_log
drwx------ 4 postgres daemon 136 1 15 08:41 pg_multixact
drwx------ 3 postgres daemon 102 3 23 11:24 pg_stat_tmp
drwx------ 3 postgres daemon 102 1 15 08:41 pg_subtrans
drwx------ 2 postgres daemon 68 1 15 08:41 pg_tblspc
drwx------ 2 postgres daemon 68 1 15 08:41 pg_twophase
drwx------ 4 postgres daemon 136 1 15 08:41 pg_xlog
-rw-r--r-- 1 postgres wheel 16779 1 15 08:42 postgresql.conf
-rw------- 1 postgres daemon 70 3 18 17:33 postmaster.opts
-rw------- 1 postgres daemon 52 3 18 17:33 postmaster.pid
ありました。設定見たり、いじったりしましょう。
まずは postgresql.conf。postgresさんの持ち物らしいので、なりきってGO。
$ sudo -u postgres vim /Library/PostgreSQL/8.4/data/postgresql.conf
で、眺めると、全てのアドレスでlistenはしてるようです。
listen_addresses = '*' # what IP address(es) to listen on;
修正は必要ありませんでした。
次、pg_hba.confを同じくpostgresさんになりきってエディターで開きます。
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
当然、192.168.249.131からの接続は許可されてません。今回は192.168.249.*からtrust(認証なし)にすることにします。
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Win7 on Fusion3 connections
host all all 192.168.249.0/24 trust
trustな行が追記分です。保存して、PostgreSQLをリスタート。
Fusion 上の Win7 で pgAdmin III を起動して接続してみます。
よしよし。
Mac の Web 共有で Proxy
インターネットからは普段隔離しているお客様のサーバーに yum でソフトを入れたいという状況になりました。メンテナンスなどでインターネットに接続しなければならないときには別ネットワークのLANケーブルと差し替えるという運用なのですが、クライアントに影響が出るためお客様がクライアントを使用している時間帯には作業ができません。
しょうがないので「夜間に作業させてもらうようにお話しようかと思います」と弊社、峰松に相談したら「インターネットに接続したノートPCに Proxy 立ててネットワークに接続させてもらってそれ経由でインストールしたらどうかな?」と。
その手があったか!
ってなわけで、私の Macbook は3G回線でインターネットに接続できるのでコイツに Proxy を立てることします。Mac だと Web 共有で Apache2 が起動するのでこれを利用することにしました。
設定ファイル、/etc/apache2/httpd.conf を眺めるとProxy関係の module はロードされるようになっていました。
LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.so
LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so
追加の必要はなさそう。
最後に他の設定ファイルを読み込む
Include /private/etc/apache2/other/*.conf
という記述がありましたので Proxy の設定、 /private/etc/apache2/other/proxy.conf を作成しました。/private/etc/apache2/ と /etc/apache2/ って同じ場所を指してるみていですね。
proxy.conf はこんな感じ。
ProxyRequests On
ProxyVia On
Order deny,allow
Deny from all
Allow from 192.168.1
192.168.1.* からフルオッケーという漢らしい設定です。「システム環境設定」→インターネットとワイヤレスの「共有」で Web 共有を起動(起動済みの場合は再起動)すると Proxy が有効になります。
漢らしすぎるので普段はこの設定が読み込まれないように proxy.conf_ とかにしておいたほうがいいですね。Web 共有自体普段は切っていますが 、念のため。