Rocky Linux 9 编译ossfs

简介: 介绍如何在Rocky Linux 9下编译阿里云的ossfs,本方法对CentOS 9 stream也适用。

ossfs能让您在Linux系统中,将对象存储OSS的存储空间(Bucket)挂载到本地文件系统中,您能够像操作本地文件一样操作OSS的对象(Object),实现数据的共享。

运行环境:Rocky Linux release 9.2 (Blue Onyx)

一、依赖包

dnf install gcc-c++ autoconf automake libtool libcurl-devel gettext-devel

二、源码编译libfuse

编译ossfs无法使用系统自带的libfuse,需要下载源码包自行编译,方法如下:

wget https://github.com/libfuse/libfuse/archive/refs/tags/fuse-2.9.9.tar.gz
tar zxvf fuse-2.9.9.tar.gz
cd libfuse-fuse-2.9.9
./makeconf.sh
./configure
makemake install

make时可能会报如下错误:

make[2]: Entering directory '/root/libfuse-fuse-2.9.9/util'  CC       fusermount-fusermount.o
  CC       fusermount-mount_util.o
  CCLD     fusermount
  CC       ulockmgr_server-ulockmgr_server.o
ulockmgr_server.c:127:12: error: conflicting types for ‘closefrom’; have ‘int(int)’
127 | static int closefrom(int minfd)
      |            ^~~~~~~~~
In file included from ulockmgr_server.c:14:
/usr/include/unistd.h:363:13: note: previous declaration of ‘closefrom’ with type ‘void(int)’
363 | extern void closefrom (int __lowfd) __THROW;
      |             ^~~~~~~~~
make[2]: *** [Makefile:509: ulockmgr_server-ulockmgr_server.o] Error 1make[2]: Leaving directory '/root/libfuse-fuse-2.9.9/util'make[1]: *** [Makefile:338: all] Error 2make[1]: Leaving directory '/root/libfuse-fuse-2.9.9/util'make: *** [Makefile:450: all-recursive] Error 1

原因是ulockmgr_server.c第127行定义的函数static int closefrom(int minfd)与/usr/include/unistd.h中的定义冲突了,给ulockmgr_server.c中的函数改个名字就好了。

编译安装好libfuse后,需要修改/etc/ld.so.conf,加入:

vim /etc/ld.so.conf
/usr/local/lib # 自己编译的libfuse安装目录修改后执行ldconfig -v

三、编译ossfs

git clone https://github.com/aliyun/ossfs.git
cd ossfs
# 下面这两步很重要exportPKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/lib64/pkgconfig/:/usr/local/lib/pkgconfig
pkg-config --modversion fuse
./configure
makemake install

执行configure时可能会报下面的错误:

checking pkg-config is at least version 0.9.0... yeschecking for common_lib_checking... no
configure: error: Package requirements (fuse >=2.8.4 libcurl >=7.0 libxml-2.0 >=2.6 ) were not met:
Package 'fuse', required by 'virtual:world', not found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

原因就是libfuse不兼容,按上面的方法重新编译libfuse即可。


相关文章
|
7月前
|
安全 Linux 虚拟化
Rocky Linux 10 - RHEL 100% 1:1 兼容免费发行版
Rocky Linux 10 - RHEL 100% 1:1 兼容免费发行版
699 34
Rocky Linux 10 - RHEL 100% 1:1 兼容免费发行版
|
2月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
155 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
7月前
|
Linux 虚拟化 iOS开发
Rocky Linux 10 x86_64 OVF (sysin) - VMware 虚拟机模板
Rocky Linux 10 x86_64 OVF (sysin) - VMware 虚拟机模板
408 35
Rocky Linux 10 x86_64 OVF (sysin) - VMware 虚拟机模板
|
7月前
|
Linux 虚拟化 iOS开发
Rocky Linux 10 aarch64 OVF (sysin) - Apple silicon VMware 虚拟机模板
Rocky Linux 10 aarch64 OVF (sysin) - Apple silicon VMware 虚拟机模板
259 34
Rocky Linux 10 aarch64 OVF (sysin) - Apple silicon VMware 虚拟机模板
|
5月前
|
关系型数据库 Linux Nacos
Rocky Linux 部署 Docker 和 NACOS 实例
本文介绍在阿里云环境下基于 Rocky Linux 搭建 Docker 并部署 Nacos 的完整流程。涵盖 Docker 安装、镜像加速配置、网络设置及 MySQL 与 Nacos 容器的创建,适用于开发与生产环境。
733 0
|
5月前
|
Kubernetes Linux 网络安全
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
初始化成功后,记录下显示的 `kubeadm join`命令。
269 0
|
6月前
|
Oracle 关系型数据库 Linux
Rocky Linux 9.6 正式版发布 - RHEL 100% 1:1 兼容免费发行版
Rocky Linux 9.6 正式版发布 - RHEL 100% 1:1 兼容免费发行版
1046 0
Rocky Linux 9.6 正式版发布 - RHEL 100% 1:1 兼容免费发行版
|
7月前
|
安全 Linux iOS开发
Nessus Professional 10.8 | 10.6 Auto Installer for RHEL 9, AlmaLinux 9, Rocky Linux 9 (updated May 2025)
Nessus Professional 10.8 | 10.6 Auto Installer for RHEL 9, AlmaLinux 9, Rocky Linux 9 (updated May 2025)
152 6
|
6月前
|
Oracle 关系型数据库 Linux
MyEMS开源系统安装之CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux
本指南介绍如何在CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux服务器上部署MyEMS开源能源管理系统。内容涵盖系统准备、数据库配置、多个MyEMS服务(如myems-api、myems-admin、myems-modbus-tcp等)的安装与配置,以及Nginx服务器设置和防火墙规则调整。通过完成所有步骤,您将能够访问MyEMS Admin UI和Web UI,默认端口分别为8001和80,初始登录凭据已提供。
301 0
|
9月前
|
Java Linux 应用服务中间件
在Rocky Linux 9上安装JDK并配置环境变量!
本教程介绍在Rocky Linux 9上安装JDK并配置环境变量的完整步骤。首先更新系统,清理旧版本JDK相关包及残留文件,确保环境干净。接着搜索并安装所需版本的JDK(如OpenJDK 17),验证安装是否成功。然后查找JDK安装路径,配置全局环境变量`JAVA_HOME`和`PATH`,最后验证环境变量设置。按照此流程操作,可顺利完成Java开发环境搭建,支持多版本切换(如JDK 8/11/17)。生产环境请谨慎操作,避免影响现有服务。
1423 21