-
#ATALK_MAC_CHARSET='MAC_ROMAN'
-
というMAC側キャラセットを以下に変更。
-
ATALK_MAC_CHARSET='MAC_JAPANESE'
-
同様に、
-
#ATALK_UNIX_CHARSET='LOCALE'
-
というUNIX側キャラセットを以下に変更。
-
ATALK_UNIX_CHARSET='UTF8'
[mac]Appleのリンゴマーク(Appleマーク)を入力する
Mac使いの特権(?)の1つに、キーボードからリンゴマークを入力できるというものがあります。WindowsやLinuxユーザの方にはなんだそれ?と思われますが、実際に見てみてください。
これです。入力方法は[Option]+[Shift]+[K]です。Macを買ったばかりの頃に友人にとにかく押してみろと言われて知りました。私の周りでは、Skypeの横にこのマークをつけて、Macユーザであることを主張するといった使い方があります。
他にも、MacのFEPでは[Option]キーを押しながらだと、いつもの違う文字が入力できます。バックスラッシュとか、中点とか、三点リーダとか、TMマークとか。自分で探してみるのも面白いですね。
[Thunderbird]hotmailは普通に送受信できる(win/mac)
昔からWindowsでのThunderbirdのHotmail送受信にWebMail Hotmailというプラグインを使っていたのですが、プロファイルごとMac OS Xに移行して、Hotmailの送受信を行おうとしたら、動きませんでした。どうやってHotmailのメールを受信しようかと検索していると、鳥獣保護区 | Hotmail が POP/SMTP 対応で Thunderbird で送受信可能にというページを見つけました。どうやら2009年の始め頃からWindows Live MailはPOP3/SMTPに対応したそうです。つまり、普通のメールの設定で送受信ができるということ。
上記Webページの通りに設定すれば基本的に動くかと思いますが、もしかしたら、SMTPのポート番号は25ではなく、587じゃないと動かないかもしれません。私は587にしました。
先日の開発環境の移行に続き、メール環境までMacに移行してしまうと、いよいよMacを使わざる終えなくなってきました。自分を追い込めばきっとMacに慣れるはず。
[mac]netatalkでmacのEclipseからVMware上のCentOSにアクセス(3/3)
前回はCentOSにnetatalkをインストールしたので、今回はnetatalkの設定と、Mac上のEclipseからCentOSにアクセスするときにハマったところを説明します。
と、その前に、netatalkをインストールすることになった経緯のおさらい。
現在Windows XPのEclipseは、VMware Sever上のCentOS 5上にワークスペースを作ってそこで開発をしていて、WindowsとCentOS間のファイル共有にはsambaを用いていました。今度開発環境をMacに移すにあたり、Mac OS XのEclipseから、VMware Fusion上のCentOS上のワークスペースにアクセスする訳ですが、Mac OS XとCentOS間のファイル共有にはsambaではイマイチなので、netatalkを用いることにしました。イメージとしては下図のような感じです。
私自身はあまり詳しく調べていないので、私の環境では問題なく動いたときの設定を紹介いたします。
まずは、文字コード周りの設定から。netatalk.confを編集します。
-
sudo vim /etc/atalk/netatalk.conf
ゲストユーザの設定は必要かどうかはわかりませんが、適当なユーザ名に変えておきました。
-
#AFPD_GUEST=nobody
-
AFPD_GUEST=hogeuser
ついでに自動起動も設定しておきます。
-
sudo /sbin/chkconfig atalk on
そして、これが結構ハマりどころだった設定を先に有効化しておきます。
-
sudo vim /etc/atalk/AppleVolimes.default
長いコメントの後、最終行に1文字だけ「~(チルダ)」があります。これはnetatalkで読み込むディレクトリを指しています。チルダはもちろんホームフォルダのことです。読み込むディレクトリを増やすには、チルダ以下に改行で列挙していきます。この設定ファイルはディレクトリの指定だけではなく、読み込み方法のオプションや先ほど設定したキャラセットなども設定できます。どういう設定があるかはManpage of AppleVolumes.defaultを参照してください。このなかで、一番大事な設定はoptions:usedotsです。これは、ドットファイル(先頭がドットから始まるファイルやディレクトリ)に対して、:hex変換を用いてファイル名を変えてしまうことを抑制するオプションです。デフォルトでは「.DS_Store」が「:2eDS_Store」として保存されてしまいます。Mac側から見ると、netatalkによって「.DS_Store」に見えるそうです。どうして厄介なのかは毎日モザイク » 2007 » 5月などをご覧ください。どちらかというと、Eclipseのときに厄介でした。ともかく、usedots設定をします。
-
~
-
上記、チルダの1行を
-
~ options:usedots
-
と変更する。他にもディレクトリの指定を追加した場合も同様にusedotsを指定する。
一応、usedotsを使わなかったときのCentOS上のディレクトリをお見せすると、こうなっています。(仕事上のディレクトリですので、モザイクばっかですいません。)
「.AppleDouble」はnetatalkが使っているメタ情報のフォルダです。Macのメタ情報フォルダ「.DS_Store」があるかと思いますが、同時に「:2eDS_Store」もあります。またEclipseのメタ情報フォルダ「.metadata」がありますが、同時に「:2emetadata」が作られています。Eclipseで既存ワークスペースを読み込もうとすると、「.metadata」は認識されず、新規に「:2emetadata」が作成されてしまうので、新規ワークスペース扱いされてしまいます。usedotsオプションを用いれば、「.DS_Store」や「.metadata」が認識されて、Eclipseでも既存のワークスペースが開けます。

さて、いよいよnetatalk経由でCentOSにアクセスしてみます。netatalkのプロトコルはAFPですので、Finderの[移動]-[サーバへ接続...]で以下のように「afp://VMゲストのIP/」を指定します。

ユーザの認証が通れば、Finderに読み込まれます。


どうやら、うまく読み込めたようです。
いよいよEclipseを起動します。CentOS上の既存のワークスペースを指定して、読み込もうとしたら、「ワークスペースが使用中であるか作成できません。別のワークスペースを選択して下さい」といったロックファイル関連のエラーが発生しました。日記(仮) >> 2007/4/7を見るとネットワーク上のファイル共有ディレクトリにワークスペースを置くと、ロックファイルが正しく動かないようです。これを解決する方法はいくつかあるようですが、私の場合は、ワークスペースをロックしない設定にすること。MacのEclipseの設定ファイルは、Eclipseディレクトリのconfiguration/config.iniにありますので、以下のテキストを末尾に追加します。
-
osgi.locking=none
これで無事にEclipseが起動し、既存のワークスペースがそのまま使えるようになりました。netatalkすげー。
これでMacの開発環境も揃いそうです。長かった。
>> [mac]netatalkでmacのEclipseからVMware上のCentOSにアクセス(1/3)
[mac]netatalkでmacのEclipseからVMware上のCentOSにアクセス(2/3)
前回はnetatalkをインストールすることになった経緯とnetatalkの概要を説明したので、今回は実際にnetatalkをCentOSにインストールしてみようかと思います。
と、その前に、前回のおさらい。
現在Windows XPのEclipseは、VMware Sever上のCentOS 5上にワークスペースを作ってそこで開発をしていて、WindowsとCentOS間のファイル共有にはsambaを用いていました。今度開発環境をMacに移すにあたり、Mac OS XのEclipseから、VMware Fusion上のCentOS上のワークスペースにアクセスする訳ですが、Mac OS XとCentOS間のファイル共有にはsambaではイマイチなので、netatalkを用いることにしました。イメージとしては下図のような感じです。
では、インストール開始です。
netatalkはFedora Core用のrpmパッケージは用意してありますが、CentOS用のはありません。CentOSではソースコードからインストールするのもいいのですが、FeforeCore用のSRPMから設定を変えてインストールする方法がよくあるそうです。まずはNetatalk RPM配布所にアクセスして、最新のSRPMをダウンロードしてきます。私の場合は2.1.0-0.1.44.dev.fc11というバージョンでした。
-
# 適当なディレクトリにnetatalkのSRPMをダウンロード
-
cd ~/src
-
wget http://ohkawa.biz/Linux/11/SRPMS/netatalk-2.1.0-0.1.41.dev.fc11.src.rpm
-
# root権限でRPMを展開
-
su
-
rpm -ivh netatalk-2.1.0-0.1.41.dev.fc11.src.rpm
するとエラーが発生しました。
-
エラー: %sourcedir を /usr/src/redhat/SOURCES に作成できません。
どうやら、rpmのビルドに必要なパッケージが不足しているらしいです。サーバ設定手順・パソコントラブル解決・エラー解決・コマンド集・プログラミング/「GOBU」(ゴブ)を参考に、足りないパッケージをインストールします。
-
# 足りないパッケージをインストール
-
rpm -qa | grep ^rpm
-
yum install rpm-build
-
# 再チャレンジ
-
rpm -ivh netatalk-2.1.0-0.1.41.dev.fc11.src.rpm
こんどはうまくいきました。
-
[root@localhost src]# rpm -ivh netatalk-2.1.0-0.1.41.dev.fc11.src.rpm
-
1:netatalk ########################################### [100%]
RPMを展開した状態で、設定を変更せずにいきなりビルドしてみるとこうなります。
-
# 試しにビルドしてみる
-
rpmbuild -bb /usr/src/redhat/SPECS/netatalk.spec
-
エラー: ビルド依存性の失敗:
-
libtool は netatalk-2.1.0-0.1.41.dev.i686 に必要とされています
-
automake は netatalk-2.1.0-0.1.41.dev.i686 に必要とされています
-
pam-devel は netatalk-2.1.0-0.1.41.dev.i686 に必要とされています
-
cups-devel は netatalk-2.1.0-0.1.41.dev.i686 に必要とされています
-
quota-devel は netatalk-2.1.0-0.1.41.dev.i686 に必要とされています
-
cracklib-devel は netatalk-2.1.0-0.1.41.dev.i686 に必要とされています
-
tcp_wrappers-devel は netatalk-2.1.0-0.1.41.dev.i686 に必要とされています
わけもわからず、一通りの足りないパッケージをインストールしてみました。
-
yum install libtool automake pam-devel cups-devel quota-devel cracklib-devel tcp_wrappers-devel
-
Loaded plugins: fastestmirror
-
Loading mirror speeds from cached hostfile
-
* updates: ftp.iij.ad.jp
-
Setting up Install Process
-
Parsing package install arguments
-
No package quota-devel available.
-
No package cracklib-devel available.
-
No package tcp_wrappers-devel available.
-
Resolving Dependencies
-
--> Running transaction check
-
---> Package automake.noarch 0:1.9.6-2.1 set to be updated
-
---> Package cups-devel.i386 1:1.3.7-8.el5_3.6 set to be updated
-
--> Processing Dependency: gnutls-devel for package: cups-devel
-
---> Package libtool.i386 0:1.5.22-6.1 set to be updated
-
---> Package pam-devel.i386 0:0.99.6.2-4.el5 set to be updated
-
--> Running transaction check
-
---> Package gnutls-devel.i386 0:1.4.1-3.el5_2.1 set to be updated
-
--> Finished Dependency Resolution
-
-
Dependencies Resolved
-
-
================================================================================
-
Package Arch Version Repository Size
-
================================================================================
-
Installing:
-
automake noarch 1.9.6-2.1 base 484 k
-
cups-devel i386 1:1.3.7-8.el5_3.6 updates 72 k
-
libtool i386 1.5.22-6.1 base 680 k
-
pam-devel i386 0.99.6.2-4.el5 base 186 k
-
Installing for dependencies:
-
gnutls-devel i386 1.4.1-3.el5_2.1 base 919 k
-
-
Transaction Summary
-
================================================================================
-
Install 5 Package(s)
-
Update 0 Package(s)
-
Remove 0 Package(s)
-
-
Total download size: 2.3 M
-
Is this ok [y/N]: y
-
Downloading Packages:
-
(1/5): cups-devel-1.3.7-8.el5_3.6.i386.rpm | 72 kB 00:00
-
(2/5): pam-devel-0.99.6.2-4.el5.i386.rpm | 186 kB 00:00
-
(3/5): automake-1.9.6-2.1.noarch.rpm | 484 kB 00:00
-
(4/5): libtool-1.5.22-6.1.i386.rpm | 680 kB 00:00
-
(5/5): gnutls-devel-1.4.1-3.el5_2.1.i386.rpm | 919 kB 00:00
-
--------------------------------------------------------------------------------
-
Total 1.1 MB/s | 2.3 MB 00:02
-
Running rpm_check_debug
-
Running Transaction Test
-
Finished Transaction Test
-
Transaction Test Succeeded
-
Running Transaction
-
Installing : gnutls-devel [1/5]
-
Installing : automake [2/5]
-
Installing : libtool [3/5]
-
Installing : cups-devel [4/5]
-
Installing : pam-devel [5/5]
-
-
Installed: automake.noarch 0:1.9.6-2.1 cups-devel.i386 1:1.3.7-8.el5_3.6 libtool.i386 0:1.5.22-6.1 pam-devel.i386 0:0.99.6.2-4.el5
-
Dependency Installed: gnutls-devel.i386 0:1.4.1-3.el5_2.1
-
Complete!
どうやら、quota-devel、cracklib-devel、tcp_wrappers-develはパッケージとしてないようです。どうやらFedoreCore用のパッケージしか配布されていないようです。しかしながら、これらのパッケージはインストールする必要はなく、別のパッケージが必要なようです。どうしてそういえるのかというと、netatalk.specファイル内に、「CentOSだったら、このパッケージ名はこのパッケージに変更するように」といったコメントがいくつかあるからです。netatalk.specファイルの変更箇所は、まずは2カ所です。
-
vim /usr/src/redhat/SPECS/netatalk.spec
-
# If you use CentOS, remove tcp_wrappers-libs
-
Requires: pam cracklib openssl cups-libs krb5-libs db4 perl libgcrypt tcp_wrappers tcp_wrappers-libs
-
という文字列があるので、コメントの指示に従って、以下のように変更
-
Requires: pam cracklib openssl cups-libs krb5-libs db4 perl libgcrypt tcp_wrappers
-
# If you use Fedora 9 or earlier, replace
-
# quota-devel -> quota
-
-
# If you use CentOS, replace
-
# quota-devel -> quota
-
# cracklib-devel -> cracklib
-
# tcp_wrappers-devel -> tcp_wrappers
-
-
BuildRequires: pam libtool automake autoconf openssl-devel pam-devel cups-devel db4-devel krb5-devel libgcrypt-devel quota-devel cracklib-devel tcp_wrappers-devel
-
という文字列があるので、コメントの指示に従って、以下のように変更
-
BuildRequires: pam libtool automake autoconf openssl-devel pam-devel cups-devel db4-devel krb5-devel libgcrypt-devel quota cracklib tcp_wrappers
これで、必要なパッケージは全部そろったはずなので、ビルドに再チャレンジします。
-
rpmbuild -bb /usr/src/redhat/SPECS/netatalk.spec
すると、今度は、configureの途中で次のようなエラーをはいて止まってしまいました。
-
checking for Berkeley DB headers in /usr/local/include/... no
-
checking for Berkeley DB headers in /usr/local/include/db4.7... no
-
checking for Berkeley DB headers in /usr/local/include/db47... no
-
checking for Berkeley DB headers in /usr/local/include/db4.6... no
-
checking for Berkeley DB headers in /usr/local/include/db46... no
-
checking for Berkeley DB headers in /usr/local/include/db4.5... no
-
checking for Berkeley DB headers in /usr/local/include/db45... no
-
checking for Berkeley DB headers in /usr/local/include/db4.4... no
-
checking for Berkeley DB headers in /usr/local/include/db44... no
-
checking for Berkeley DB headers in /usr/local/include/db4... no
-
checking for Berkeley DB headers in /usr/include/... yes
-
checking /usr/include//db.h version>= 4.4.0... no
-
checking for Berkeley DB headers in /usr/include/db4.7... no
-
checking for Berkeley DB headers in /usr/include/db47... no
-
checking for Berkeley DB headers in /usr/include/db4.6... no
-
checking for Berkeley DB headers in /usr/include/db46... no
-
checking for Berkeley DB headers in /usr/include/db4.5... no
-
checking for Berkeley DB headers in /usr/include/db45... no
-
checking for Berkeley DB headers in /usr/include/db4.4... no
-
checking for Berkeley DB headers in /usr/include/db44... no
-
checking for Berkeley DB headers in /usr/include/db4... yes
-
checking /usr/include/db4/db.h version>= 4.4.0... no
-
-
Make sure you have the required Berkeley DB libraries AND headers installed.
-
You can download the latest version from http://www.sleepycat.com.
-
If you have installed BDB in a non standard location use the
-
--with-bdb=/path/to/bdb configure option and make sure
-
your linker is configured to check for libraries there.
-
configure: error: Berkeley DB library required but not found!
-
エラー: /var/tmp/rpm-tmp.30156 の不正な終了ステータス (%build)
-
-
-
RPM ビルドエラー:
-
/var/tmp/rpm-tmp.30156 の不正な終了ステータス (%build)
どうやら、Berkeley DBはインストールされている物の、バージョンが古いらしいです。
yum info db4で確認したところ、4.3.29がインストールされており、netatalkに必要な4.4以降という条件を満たしていないようです。ということで、OracleのWebサイトから、最新のBerkeley DB 4.7をダウンロードし、コンパイルします。
-
cd ~/src
-
wget http://download.oracle.com/berkeley-db/db-4.7.25.tar.gz
-
tar zxvf db-4.7.25.tar.gz
-
cd db-4.7.25/build_unix/
-
../dist/configure
-
make
-
sudo make install
ソースコードからインストールしたBerkeleyDBは通常とは違う場所にインストールされるため、specファイルにBerkeleyDBの場所を通知します。
-
vim /usr/src/redhat/SPECS/netatalk.spec
configureのオプションのところに、BerkeleyDBのパスを追記します。
-
%configure \
-
--with-pkgconfdir=%{_sysconfdir}/atalk \
-
--with-cracklib \
-
--with-pam \
-
--with-shadow \
-
--with-uams-path=%{_libdir}/atalk \
-
--enable-shared \
-
--enable-krbV-uam \
-
--enable-overwrite \
-
--with-gnu-ld \
-
--enable-redhat \
-
--disable-srvloc \
-
--enable-cups \
-
--libexec=%{_libexecdir}/atalk \ # 末尾追記
-
--with-bdb=/usr/local/BerkeleyDB.4.7 # 追記
再び、root権限に戻って、ビルドします。
-
su
-
rpmbuild -bb /usr/src/redhat/SPECS/netatalk.spec
何事もなく終了し、これでようやくrpmパッケージがビルドできそうです。
早速rpmをインストールしてみます。
-
su
-
rpm -Uvh /usr/src/redhat/RPMS/i686/netatalk-2.1.0-0.1.41.dev.i686.rpm
すると、またもやエラーでした。
-
エラー: 依存性の欠如:
-
libdb-4.7.so は netatalk-2.1.0-0.1.41.dev.i686 に必要とされています
どうやらインストールしたBerkeleyDBのライブラリファイルにパスが通ってないようです。適当に、コピーしておきます。
-
# BerkeleyDBのライブラリを/libにでもコピーしておく
-
cp /usr/local/BerkeleyDB.4.7/lib/libdb-4.7.so /lib
再度rpmのインストール
-
rpm -Uvh --nodeps /usr/src/redhat/RPMS/i686/netatalk-2.1.0-0.1.41.dev.i686.rpm
-
rpm -Uvh /usr/src/redhat/RPMS/i686/netatalk-devel-2.1.0-0.1.41.dev.i686.rpm
今度はうまく行きました。
とりあえず、何も設定を変えずに、デーモンが動くかどうかだけ確かめてみます。
-
# ためしに起動してみる
-
sudo /etc/init.d/atalk start
-
Starting AppleTalk services:
-
Starting cnid_metad: [ OK ]
-
Starting afpd: [ OK ]
どうやらインストールは無事に終わったようです。
この時点でMacからアクセスすることも可能かもしれませんが、まだ設定変更をしていないので、保証はできません。次回はnetatalkの設定変更とEclipseの設定変更をして、EclipseからCentOS上のワークスペースを読み込んでみたいと思います。
[mac]netatalkでmacのEclipseからVMware上のCentOSにアクセス(1/3)
MacBookを買って、はや3ヶ月が過ぎたのですが、未だに仕事ではBootCamp上のWindows XPを使っていて、Macを使う機会は少ないというのが現状です。とはいえ、やっぱりMacBookなのだから、Mac OS Xをメインに使いたいという気持ちがあります。どうしてMac OS Xを使えないかというと、Windowsでの開発環境がちょっと込み入っているからです。
簡単にWindowsの開発環境を説明すると、Windows XPにVMware Serverをインストールし、仮想のCentOS 5を構築しています。このCentOS 5のとあるフォルダ(例:/var/develop)にSamba経由でアクセスします。このとき、ネットワークドライブとしてドライブレター(例:L:¥)を割当てています。/var/develop/hogeにアクセスする場合はWindowsのL:¥hogeとなっています。このsamba経由のフォルダをEclipseのワークスペースとして利用しています。つまり、L:¥.metadataフォルダがあり、fooプロジェクトのフォルダはL:¥fooとなっています。
この環境をMacに移行したいと思っています。Windowsで使っていたCentOSのイメージをMac側に持っていき、VMware Fusionで読み込ませるまでは基本的な作業ですので、説明は省略します。さっそくMacのVMware FusionでCentOSを起動し、インストール済みのSamba経由でアクセスしようとしたら、困ったことが起きました。CentOSで作成していたシンボリックリンクが、CentOS上の場所ではなく、Mac上の場所を指しているのです。例えば/etc/tempに向けたシンボリックリンクは、CentOSの/etc/tempではなく、Mac上の/etc/tempを指しているのです。シンボリックリンクは当然Linux上の特定の場所へのリンクですので、Mac側のファイルを指してしまうと困ってしまいます。
※Finderの[移動]-[サーバへ接続...]で「smb://VMゲストのIPアドレス/」を開いたところ、シンボリックリンクはMac上のリンクとして再現されている。
解決策を模索しているうちに、見つけたのがnetatalkです。netatalkはUNIX系OS上でAppleTalkやAFP(Apple Filing Protocol)を実装するオープンソースのサーバソフトウェアです(参考:Netatalk - Wikipedia)。netatalkでCentOS上にAFPデーモン(AFP over TCP)を立ち上げれば、Macとファイル共有ができるということです。いわばsambaのMac版。Mac版というからには当然Macとの親和性は高い訳です。
さてさて次回に向けてのおさらいです。現在Windows XPのEclipseは、VMware Sever上のCentOS 5上にワークスペースを作ってそこで開発をしていて、WindowsとCentOS間のファイル共有にはsambaを用いていました。今度開発環境をMacに移すにあたり、Mac OS XのEclipseから、VMware Fusion上のCentOS上のワークスペースにアクセスする訳ですが、Mac OS XとCentOS間のファイル共有にはsambaではイマイチなので、netatalkを用いることにしました。イメージとしては下図のような感じです。
次回はCentOSにnetatalkを入れてみようと思います。
>> [mac]netatalkでmacのEclipseからVMware上のCentOSにアクセス(2/3)
>> [mac]netatalkでmacのEclipseからVMware上のCentOSにアクセス(3/3)



