Knowledge Base

29.03.11

Centos: Using Amazon S3 (s3fs) on 64bit System and building fuse 2.8.4

I wanted to use s3fs on my Centos 5.5 64bit System from code.google.com/p/s3fs/wiki/FuseOverAmazon to use Amazon S3 on my server for backing up data.

I wanted to use the version mentioned on https://www.vitki.net/book/page/using-amazon-s3-backup-your-server but it is only for i386

Building the s3fs Tool would be a very simply task, if a fuse >= 2.8.4 would be available for Centos, but the currently newest version is fuse-2.7.4-8.el5.x86_64

So i downloaded the fuse source rpm from https://rpm.vitki.net/pub/SRPMS/fuse-2.8.5-99.vitki.01.el5.src.rpm and build it myself.

rpmbuild --rebuild fuse-2.8.5-99.vitki.01.el5.src.rpm
rpm -i /usr/src/redhat/RPMS/x86_64/fuse-2.8.5-99.vitki.01.el5.x86_64.rpm
rpm -i /usr/src/redhat/RPMS/x86_64/fuse-devel-2.8.5-99.vitki.01.el5.x86_64.rpm
rpm -i /usr/src/redhat/RPMS/x86_64/fuse-libs-2.8.5-99.vitki.01.el5.x86_64.rpm

This was very easy but pkg-config did not find it when i wanted to build s3fs:

checking pkg-config is at least version 0.9.0... yes
checking for DEPS... no
configure: error: Package requirements (fuse >= 2.8.4 libcurl >= 7.0 libxml-2.0 >= 2.6 libcrypto >= 0.9) were not met:

The reason is that the fuse.pc required for pkg-config was not in the lib64 directory. i solved it by symlinking the one found in /usr/local/lib/pkgconfig/fuse.pc

ln -s /usr/local/lib/pkgconfig/fuse.pc /usr/lib64/pkgconfig/fuse.pc

if you want to create it yourself:

create a file fuse.pc in /usr/lib64/pkgconfig such as:
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: fuse
Description: Filesystem in Userspace
Version: 2.8.5
Libs: -L${libdir} -lfuse -pthread -lrt -ldl
Cflags: -I${includedir}/fuse -D_FILE_OFFSET_BITS=64

Update 2012-07-18:

I did the same on a RHEL 6 machine and encountered alot of different problems now. first of all i start which packages were missing and which had to be installed first:

Installed: libcurl-devel
Installed: libxml2-devel
Installed: libssh2-devel
Installed: openssl-devel

Unfortunately my libssh2 was from rpmforge and was not compatible with libssh2-devel from base, therefore i had to downgrade it

yum downgrade libssh2.x86_64
This was the working combination:
rpm -qa|grep libssh2
libssh2-1.2.2-11.el6_3.x86_64
libssh2-devel-1.2.2-11.el6_3.x86_64

Update 2:

Doing this on a i386 System is different obviously - you can get this directly:
http://rpm.vitki.net/pub/centos/5/i386/fuse-2.8.5-99.vitki.01.el5.i386.rpm
http://rpm.vitki.net/pub/centos/5/i386/fuse-devel-2.8.5-99.vitki.01.el5.i386.rpmrpm.vitki.net/pub/centos/5/i386/fuse-libs-2.8.5-99.vitki.01.el5.i386.rpm
https://rpm.vitki.net/pub/centos/5/i386/s3fs-1.61-vitki.2368.el5.i386.rpm


Or build it from the source rpm. my old system needed:
yum install auto-buildrequires.i386
yum install libselinux-devel



<- Zurück zur Übersicht