‘Mac’ タグのついている投稿

Debian(lenny)にnetatalkインストール

2009年10月7日 水曜日

Debian(lenny)にnetatalkインストールしてみた。MacのTime Machineを使いたいのでnetatalk-2.0.5rc1をソースからインストールした。

以下のサイトを参考にした。
参考1
参考2
参考3

1.インストール

$ sudo aptitude install avahi-daemon cracklib2-dev fakeroot libssl-dev
$ sudo apt-get build-dep netatalk
$ wget "http://downloads.sourceforge.net/project/netatalk/netatalk/2.0.5-rc1/netatalk-2.0.5rc1.tar.bz2?use_mirror=jaist"
$ tar jxvf netatalk-2.0.5rc1.tar.bz2
$ cd netatalk-2.0.5rc
$ ./configure --prefix=/usr/local/netatalk --enable-debian
$ make
$ sudo make install

2.AppleVolumes.defaultの設定

/usr/local/netatalk/etc/netatalk/AppleVolumes.default

:DEFAULT: maccharset:MAC_JAPANESE volcharset:UTF8 options:usedots,upriv dperm:0700 fperm:0600 cnidscheme:dbd
~

3.AppleVolumes.systemの設定

/usr/local/netatalk/etc/netatalk/AppleVolumes.system
中身を空にする。参考1に理由が書いてある。

$ cd /usr/local/netatalk/etc/netatalk
$ sudo sudo mv AppleVolumes.system AppleVolumes.system.org
$ sudo touch AppleVolumes.system

4.netatalk.confの設定

atalkdとpapdが扱う文字コードの指定だが使用しないので関係ないかな。。念のため設定。

ATALK_MAC_CHARSET='MAC_JAPANESE'
ATALK_UNIX_CHARSET='UTF8'

5.atalkd起動

起動するとエラー発生。

$ sudo /etc/init.d/atalk start
Starting Netatalk services (this will take a while): nbp_rgstr: Connection timed out
Can't register loach:Workstation@*

複数NICが存在するのが原因らしい。atalkd.confにeth0のみ登録。起動成功!atalkd.confってAppleTalk用の設定ファイルだと思うのでAppleTalk自体を無効にする。OS9は使わないのでAppleTalkはいらんでしょ。
/usr/local/netatalk/etc/netatalk/netatalk.conf

ATALKD_RUN=no
PAPD_RUN=no
CNID_METAD_RUN=yes
AFPD_RUN=yes
TIMELORD_RUN=no
A2BOOT_RUN=no

CNID_METAD_RUN=yesはcnid_metadデーモンを有効にするってことらしい。AppleVolumes.defaultでcnidscheme:dbd(cnid_metad経由でのアクセス)となっているのでこれは有効にしないといけない。
CNID (Catalog Node ID)はファイルやフォルダにつけられている管理ID。cind_metadはCINDを管理するデーモン。cnidscheme:cbdとかするとcind_metadを経由せず直接CNIDをデータベースに書き込む。cnidscheme:dbdが安定しているのでお勧めらしい。

あれ??/etc/init.d/atalk stopを行うと以下のエラーでatalkdが終了しない。

Stopping Netatalk Daemons: afpd cnid_metad papd timelordstart-stop-daemon: stat /usr/local/netatalk/sbin/timelord: No such file or directory (No such file or directory)

とりあえず、timelord(使わないが)もインストール

$ cd ~/src/netatalk-2.0.5rc1/contrib
$ sudo make install

終了も正常に行われた。

6.Macから接続

移動ー>サーバへ接続で「afp://192.168.1.1」などと指定。接続を確認。

サイドバーからnetatalkサーバを見えるようにするにはavahi-daemonの設定を行う。/etc/avahi/services に、afpd.service というファイルを作り、以下の内容にする。ちなみにavahi-daemonとはBonjour互換のサービスである。

/etc/avahi/services/afpd.service

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
</service-group>

netatalkサーバではsambaも動作している。netatalk上のホスト名とNetBios名が同じだと問題がある模様。Finderのサイドバーで、Samba接続なのに「CRT」アイコンでなく「Cinema Display」アイコンになったりする。netatalk接続なのかsamba接続か分からないのでsambaのNetBios名を変更する。

/etc/samba/smb.conf

netbios name = hogepage_samba

7.Time Machine用ボリュームの設定

/usr/local/netatalk/etc/netatalk/AppleVolumes.defaultに以下追加

~/TimeMachine "Time Machine" options:usedots,upriv,tm

8.MacのTime Machineの設定

以下参考にした。
http://blog.fiilse.com/2008/04/timemachine.html
ターミナルから以下を実行。

defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

これを行うことで、Time Machine設定時にnetatalkサーバを選択することができる。
※netatalk-2.0.5rc1はTimeMachineに対応しているため、上記は必要ありませんでした。HAT様コメントありがとうございますm(_ _)m

9.Time Machineに使用する容量指定

2009-11-17追記:
アプリケーション→ユーティリティ→ディスクユーティリティでTimeMachineで使用するディスクの容量を制限できるという情報をどこかでみたのでやってみた。ファイル→ディスクイメージを開くを選んで、Time Machine/hoge.sparsebundleを開く。イメージサイズの変更を行ったが以下のエラーが発生し容量変更できなかった。

2009-11-18 03:02:17 +0900: “hoge.sparsebundle”のサイズ変更は、エラー 22 のため失敗しました。引数が無効です

マウントしてパティーションのサイズ変更後にイメージサイズの変更を行ったら出来たっぽい??でもTimeMachineの設定画面上のディスクサイズは元のままだorz
250GBに設定したのでこのサイズを使用しきるまでは様子を見てみる。。

2010-08-31追記:
netatalk-2.1.3をインストールしなおした。
設定は2.0.5のときと変わらない。
ただし、/etc/init.d/netatalkのスクリプト中で、/etc/default/netatalkの設定内容を読み込むようになっているので以下を行った。

ln -s /usr/local/netatalk/etc/netatalk/netatalk.conf /etc/default/netatalk

また、ログを出力したいため、以下の設定を行った。
/usr/local/netatalk/etc/netatalk/afpd.conf

- -setuplog "default log_info /var/log/afpd.log"

MacのEclipse(Galileo)上でSubversion

2009年9月17日 木曜日

1.Eclipse(Galileo)にSubversionプラグインインストール

EclipseでSubversionを使用するためのプラグインはSubclipseとSubversiveがある。eclipse.orgの正式プロジェクト、sshに対応しているという理由でSubversiveを使うことにした。

Subversiveで使用するSubversion クライアントは、SVNKitとJavaHLがある。違いは以下の通り。

  1. SVNKit:Pure Java
  2. JavaHL:JNIを使用

どっちがよいかは分からないのでとりあえず両方インストールしておく。

・JavaHL用のJavaBindingインストール

$ sudo port install subversion-javahlbindings

・SVN Team Providerのインストール(Help->Install new software->add)

http://ftp.yz.yamagata-u.ac.jp/pub/eclipse/technology/subversive/0.7/update-site/

・Subversive SVN Connectors、SVNKit Implementationのインストール(Help->Install new software->add)

http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/

MacなのでJavaHL win32 binaries のチェックは外す(最初の画面。次の画面で外すと完了できない??)。
とりあえずSVN ClientはSVNKitを使用することにする(Preferences->Team->SVN->SVN Clientで設定できる)。

2.サーバ(debian lenny)にSubversionインストール

サーバ(debian lenny)にSubversionをインストール。

# aptitude install subversion

3.HTTPS経由でSubversion使用

まずは、HTTPS経由で接続できるよう設定。

・Apacheの設定

# a2enmod ssl
# aptitude install ssl-cert
# make-ssl-cert generate-default-snakeoil --force-overwrite
# a2enmod ssl
# a2ensite default-ssl
# /etc/init.d/apache2 restart

秘密鍵・公開鍵はとりあえずデフォルトのものを使用

  • 秘密鍵:/etc/ssl/private/ssl-cert-snakeoil.key
  • 公開鍵:/etc/ssl/certs/ssl-cert-snakeoil.pem

・HTTPS経由でのSubversion使用

# aptitude install libapache2-svn libapache2-mod-encoding
#cat /etc/apache2/mods-available/dav_svn.conf
<Location /projects/svn>
  DAV svn
  SVNListParentPath on
  SVNParentPath /var/lib/svn
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  Require valid-user
</Location>
# a2enmod auth_basic authn_file

・hogepageユーザを作成し、testリポジトリを作成。
作成したリポジトリはapacheの動作グループであるwww-dataでchownする。

# htpasswd -c /etc/apache2/dav_svn.passwd hogepage
# mkdir /var/lib/svn
# chown www-data /var/lib/svn
# svnadmin create /var/lib/svn/test
# chown -R www-data /var/lib/svn/test

後はEclipse上のプロジェクトを右クリックして、Team->Share ProjectでSVNの設定を行う。
接続先URLは 「https://hostname/projects/svn/test/」のように設定した。

4.SSH経由でのSubversion使用

SubversionをSSH経由で使用する場合の設定。
複数ユーザでの使用となるのでディレクトリにsetgidを行う。
setgidすることで、このディレクトリ以下に作られるファイルやディレクトリはsvnusersグループで作成される。またsetgidビットも継承する。書き込み権限などは継承されないのでumaskで調整。
※ディレクトリへのsetgidについてはここを参照。

・グループ追加
# addgroup svnusers
・svnusersグループにhogepageを追加
# usermod -G svnusers hogepage
・ /var/lib/svnのグループをsvnusers に変更し、setguidする。
# chown :svnusers /var/lib/svn
# chmod g+sw /var/lib/svn
・リポジトリ作成
# svnadmin create /var/lib/svn/test2
・ test2のgroupがsvnusersになっていることを確認。
# ls -la /var/lib/svn/
drwxr-sr-x  6 root svnusers 4096 2009-11-09 21:40 test2
・dbの内容をグループのユーザが変更できるよう権限変更
# cd /var/lib/svn/test2
# find db/ -perm +200 -exec chmod g+w {} ¥;
・svnserveからのファイル作成時にグループの書き込み許可を付加。
# cd /usr/bin
# mv svnserve svnserve.org
# cat svnserve
------------------------
#!/bin/sh
umask 002
/usr/bin/svnserve.org "$@"
------------------------
# chmod 755 svnserve

Eclipse上のプロジェクトを右クリックして、Team->Share ProjectでSVNの設定。

General

URL: svn+ssh://hostname/var/lib/svn/test2
Authentication->User: hogepage

SSH Settings(公開鍵認証)

private key: /Users/hogepage/.ssh/id_rsa

MacでEclipse(Galileo), PDT, XAMPP, Xdebug

2009年9月13日 日曜日

1.Eclipse(Galileo)インストール

MacでPHPの開発環境を整える。Eclipse PDTがよさそう。
以下から「Eclipse for PHP Developers」をダウンロード。

http://www.eclipse.org/downloads/index.php

解凍するとeclipseフォルダができるので、アプリケーションフォルダに移動。

2.PDTでPHP Project作成

早速PHP Projectを作成しようとしたが、いきなり”build path contains duplicate entry”なんてエラーが出てProjectの作成ができない。新しいPDTをインストールしなきゃならないみたいorz

  1. Help から Install new softwareを選択
  2. add – http://download.eclipse.org/tools/pdt/updates/2.0/
  3. PDT 2.1.1 version にチェック

3.XAMPPのインストール

Apache,MySQLを使えるようにするため、MacにXAMPPを入れた。Mac専用のMAMPってのもあるようだが、XAMPPは以前Windowsで使っていたのでこちらにした。

XAMPP for Mac

インストールはインストーラ起動して終わり。起動は以下。

$ sudo su
# /Applications/XAMPP/xamppfiles/xampp start

「/Applications/XAMPP/XAMPP Control」を起動してもApache,MySQL,FTPの起動停止制御できる模様。

次にApacheの動作をチェック。

http://localhost/

XAMPPの管理画面が出てくればOK!

「http://localhost/~ユーザ名/」でアクセスできるよう調整。

/Applications/XAMPP/etc/extra/httpd-userdir.confの設定

UserDir Sites
<Directory "/Users/*/Sites">
    AllowOverride FileInfo AuthConfig Limit Indexes
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    <Limit GET POST OPTIONS>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>

4.デバッガの選定(ZendDebugger or Xdebug)

デバッグにはZendDebuggerかXdebugが必要だが、Xdebugの方がよさそうなのでこっちを使ってみる。Xdebugはプロファイリング(profiling)機能、コードカバレッジ解析(code coverage analysis)などもできる。ZendDebuggerはZend Studioと併用しないと上記機能が使えないっぽい^^;

  1. プロファイリング:メゾッドがどこから呼ばれたか、実行にかかった時間などを分析
  2. コードカバレッジ:ソース・コード上で実行した部分を調べる。

5.Xdebug

XAMPPにはXdebugが標準で付属している。

/Applications/XAMPP/xamppfiles/lib/php/php-5.3.0/extensions/no-debug-non-zts-20090626/xdebug.so

以下からファイルダウンロードした最新のものを使用しようとしたが、、、

http://aspn.activestate.com/ASPN/Downloads/Komodo/RemoteDebugging

エラーがでてだめだった。

Xdebug requires Zend Engine API version 220090115.
The Zend Engine API version 220090626 which is installed, is newer.
Contact Derick Rethans at http://xdebug.org for a later version of Xdebug.

php.iniは以下のように設定
/Applications/XAMPP/etc/php.ini

[xdebug]
zend_extension="/Applications/XAMPP/xamppfiles/lib/php/php-5.3.0/extensions/no-debug-non-zts-20090626/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
;xdebug.remote_autostart=1
xdebug.remote_handler=dbgp
xdebug.profiler_enable=1
xdebug.profiler_output_dir="/tmp"

問題なければ、phpinfo()にxdebugの項目が出現する。

実際のデバッグは以下のページが参考になる。

http://blog.ne2ma2.com/archives/121

PHPのデバッグって今までprintf()でやってたwが、これは便利だわ^^

MacでMacPorts

2009年9月11日 金曜日

1.MacPorts 設定

macでFreeBSDのportsみたいなことができることを知った。MacPortsに関する情報は以下が参考になる。

http://www.lapangan.net/darwinports/?FrontPage

まずは、以下から最新の MacPorts の .dmg ディスク・イメージをダウンロードしてインストール。

http://www.macports.org/

早速使ってみる。MacPortsは/opt/local以下を使うらしいので以下設定。と思ったら、.profileに自動で設定された^^;

export PATH=/opt/local/bin:/opt/local/sbin/:$PATH
export MANPATH=/opt/local/man:$MANPATH

自分のホームディレクトリの.bashrcに上の2行を書き込んでおく。

.profileの設定を有効にするためにシェルは再起動する。
.profile(.bash_profile)と.bashrcの違いは、前者がログイン時のみ、後者がシェルを起動する度に実行される。

2.MacPortのアップデート

データベースのUpdateかつMacPorts自身のUpdate。

$ sudo port -v selfupdate

データベースのUpdateのみ。通常はselfupdateのみでよい。 いくつかのサイトでsyncも行ってるがsyncはやるなってさ。

http://fujidana.blog.so-net.ne.jp/2008-11-08-1

試しにwgetをインストール

$ sudo port install wget

MacBook使用開始

2009年9月10日 木曜日

MacBook購入した。もう三ヶ月経つけど、どうにも使い勝手が分からなくてThinkpad X31ばっかり使ってた^^;
いいかげん本格的にMacBook使用開始しようかとw
まずはMacのターミナルからサーバへのssh接続で公開鍵認証使えるようにする。

1.公開鍵認証用の秘密鍵と公開鍵の作成

いろんなとこにサンプルあるのでググった。

2.Mac側設定

$ mkdir ~/.ssh/

ここに以下の秘密鍵ファイルを置く。パーミッションに注意。

$ ls -al ~/.ssh/id_rsa
-rw-------@ 1 hogepage  staff  1751  8 20 18:16 /Users/hogepage/.ssh/id_rsa

3.server(debian lenny)の設定

$ mkdir ~/.ssh

authorized_keysに公開鍵ファイルの内容を追加

$ cat id_rsa.pub >> ~/.ssh/authorized_keys

sshd_configの編集。rootでのログイン禁止、パスワード認証方式を無効にする。

$ sudo vi /etc/ssh/sshd_config
・・・
PermitRootLogin no
PasswordAuthentication no
・・・