前回、CentOS 5.6にfuse-2.8.5とs3fs-1.40のインストールでインストールが出来ましたが、s3fsを実際に利用してみようとしたところ、非常に難航しました。
はじめに、下記のようなエラーが表示されました。
# s3fs static.cloudpack.jp /mnt/s3/static_cloudpack_jp s3fs: error while loading shared libraries: libfuse.so.2: cannot open shared object file: No such file or directory
これは、fuseを/usr/localにインストールしていたので、そこにライブラリパスが通っていないことが原因でした。
対策として、/etc/ld.so.confを下記のように調整したところ、無事解決ました。
(反映にはldconfigを実行する必要があります。)
/usr/local/lib include ld.so.conf.d/*.conf
すると今度は、下記のようなエラーに変わりました。
# ldconfig # s3fs static.cloudpack.jp /mnt/s3/static_cloudpack_jp s3fs: credentials file /etc/passwd-s3fs should not have others permissions
これは単に、/etc/passwd-s3fsが適切に作成されてないということなので、下記のように作成しておきます。
※Access Key:Secret Keyの形式でchmod 600しておきます。
AAAAAAAAAAAAAAAAAAAA:SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
すると今度は、下記のようなエラーが表示されました。
これは、デバイスが無いのでmodprobe fuseをしてくださいとのことでした。
実際にmodprobe fuseをすると、モジュール自体が無いとのことでした。
# s3fs static.cloudpack.jp /mnt/s3/static_cloudpack_jp fuse: device not found, try 'modprobe fuse' first # modprobe fuse FATAL: Module fuse not found.
このエラーを解決するために、fuseモジュールを作成します。
今回は、こちらのDiscussion Forums:fuse and Xen?で提供されているファイルを利用しました。
手順は下記となります。
# cd / # curl -OL https://forums.aws.amazon.com/servlet/JiveServlet/download/30-11544-42641-670/modules-added-to-ami-6bae4b02.tgz # tar xvzf modules-added-to-ami-6bae4b02.tgz lib/modules/2.6.16-xenU/kernel/fs/binfmt_aout.ko lib/modules/2.6.16-xenU/kernel/fs/fuse/fuse.ko lib/modules/2.6.16-xenU/kernel/fs/relayfs/relayfs.ko lib/modules/2.6.16-xenU/kernel/net/xfrm/xfrm_user.ko # /sbin/depmod # modprobe fuse # s3fs static.cloudpack.jp /mnt/s3/static_cloudpack_jp
長々と書いてきましたが、、これでs3fsが利用出来るようになりました。