2

The Fuse packages that are available by default on CentOS 7.3 are a bit dated. The compilation process for Fuse 3 and s3fs should be pretty straight forward. Fuse compiles and installs fine:

mkdir ~/src && cd src
# Most recent version: https://github.com/libfuse/libfuse/releases
wget https://github.com/libfuse/libfuse/releases/download/fuse-3.0.0/fuse-3.0.0.tar.gz
tar xvf fuse-3.0.0.tar.gz && cd fuse-3.0.0
./configure --prefix=/usr
make 
make install
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/lib64
ldconfig
modprobe fuse
pkg-config –modversion fuse

No problems there... Things show up where they should it seems, $ ls /usr/lib:

libfuse3.a
libfuse3.la
libfuse3.so
libfuse3.so.3
libfuse3.so.3.0.0
pkgconfig
udev

$ ls /usr/local/lib/pkgconfig/:

fuse3.pc

$ which fusermount3:

/usr/bin/fusermount3

So I proceed to install s3fs:

cd ~/src
git clone https://github.com/s3fs-fuse/s3fs-fuse.git
cd s3fs-fuse
./autogen.sh
./configure --prefix=/usr

And then every time, I hit this:

...
configure: error: Package requirements (fuse >= 2.8.4 libcurl >= 7.0 libxml-2.0 >= 2.6) were not met:

No package 'fuse' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables common_lib_checking_CFLAGS
and common_lib_checking_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

Any idea why s3fs is not finding Fuse properly?

1

Version 1.8 of s3fs doesn't support fuse3. I learnt it rather hard way.

I edited s3fs configure script to replace fuse with fuse3 in the version check. configure script went well after that. However, s3fs compilation fails with some error around incompatibility with fuse functions used. (I don't have the exact compilation error - didn't save the error).

I ended up installing fuse 2.9.x and s3fs installation went well.

0

Try:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/

and then:

./configure
  • If you notice, I already did this in the 8th line of the first chunk of commands: export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/lib64 – ylluminate Feb 20 '17 at 19:50
  • Your path is wrong! export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/lib64 Try what I recommended: export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ Notice the "local" part... – TomiC Feb 20 '17 at 22:26
  • Why would I set the path to that when it is empty? The contents of that path, /usr/local/lib/pkgconfig/ is entirely empty. If you note I defined --prefix=/usr instead of /usr/local. Using your suggestion STILL results in the same error. – ylluminate Feb 21 '17 at 2:24
  • 1
    You wrote that: $ ls /usr/local/lib/pkgconfig/: results in: fuse3.pc So it is NOT empty. In short find where your fuse3.pc is now after you ghave been playing around and set PKG_CONFIG_PATH to that path. – TomiC Feb 21 '17 at 11:24
  • You are correct, that was from another attempt when I had used /usr/local and had accidentally copied and pasted an OLD step from my notes. I have corrected it to /usr/ now. Thanks for catching that!. So, still same problem as per what I'd said. – ylluminate Feb 21 '17 at 21:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.