s3fs-fuseというのをつかってmountをしていたら、謎のエラーが出てハマった。
[root@centos lib64]# /usr/local/s3fs-fuse/bin/s3fs local-orfs /mnt/s3fs -o url=http://192.168.131.131:8080 -o passwd_file=/root/.passwd-s3fs -o default_acl=private -o allow_other,uid=501,gid=501 -o nomultipart
fuse: warning: library too old, some operations may not not work
調べると、libfuse.soとか言うのが古いらしいということが判明
Issue 430 - s3fs - fuse: warning: library too old, some operations may not not work - FUSE-based file system backed by Amazon S3 - Google Project Hosting
しかし、見てみると、特に古くは無いことがわかった。
[root@centos lib64]# ls -l /usr/lib64 | grep libfuse
-rw-r--r--. 1 root root 1103130 Jul 9 15:56 libfuse.a
-rwxr-xr-x. 1 root root 933 Jul 9 15:56 libfuse.la
lrwxrwxrwx. 1 root root 16 Jul 9 15:56 libfuse.so -> libfuse.so.2.9.3
lrwxrwxrwx. 1 root root 16 Jul 9 15:56 libfuse.so.2 -> libfuse.so.2.9.3
-rwxr-xr-x. 1 root root 706380 Jul 9 15:56 libfuse.so.2.9.3
my library version is 2.9.3
先輩に相談して、依存ライブラリを確認してみる。
[root@centos lib64]# ldd /usr/local/s3fs-fuse/bin/s3fs | grep libfuse
libfuse.so.2 => /lib64/libfuse.so.2 (0x0000003110c00000)
ここで依存ライブラリが/usr/lib64/libfuse.so.2
ではなく/lib64/libfuse.so.2
となっていることがわかる。
[root@centos lib64]# rpm -qa | grep fuse
fuse-2.8.3-4.el6.x86_64
gvfs-fuse-1.4.3-15.el6.x86_64
fuse-devel-2.8.3-4.el6.x86_64
fuse-libs-2.8.3-4.el6.x86_64
こっちの古いのを消去する。
[root@centos lib64]# yum erase fuse-devel fuse-libs
[root@centos lib64]# fusermount -u /mnt/s3fs
[root@centos lib64]# /usr/local/s3fs-fuse/bin/s3fs local-orfs /mnt/s3fs -o url=http://192.168.131.131:8080 -o passwd_file=/root/.passwd-s3fs -o default_acl=private -o allow_other,uid=501,gid=501 -o nomultipart
これでいけた。