s3fs 拒绝在 CentOS 7 上编译,为什么找不到 Fuse?

s3fs 拒绝在 CentOS 7 上编译,为什么找不到 Fuse?

CentOS 7.3 上默认提供的 Fuse 软件包有点过时。 Fuse 3 和 s3fs 的编译过程应该非常简单。 Fuse 编译并安装良好:

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

没有问题......事情出现在它们应该出现的地方, $ ls /usr/lib

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

$ ls /usr/local/lib/pkgconfig/

保险丝3.pc

$ which fusermount3

/usr/bin/fusermount3

所以我继续安装s3fs

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

然后每次我都会这样:

...
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.

知道为什么s3fs没有正确找到保险丝吗?

答案1

s3fs 1.8版本不支持fuse3。我学得很辛苦。

我编辑了 s3fs 配置脚本,将版本检查中的 fusion 替换为 fusion3。配置脚本之后一切顺利。但是,s3fs 编译失败,并出现一些与所使用的熔断函数不兼容的错误。 (我没有确切的编译错误 - 没有保存错误)。

我最终安装了 fusion 2.9.x,并且 s3fs 安装顺利。

答案2

尝试:

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

进而:

./configure

相关内容