在centos8上生成nfs-ganesha的相关rpm
- 1.背景
- 2.依赖环境准备
- 2.1配置yum源
- 2.2安装依赖包
- 2.3拉取源代码
- 3编译打包
- 3.1生成makefile
- 3.1生成rpm
1.背景
在某些情况下,可能需要在CentOS 8上从源代码生成NFS Ganesha的RPM包,特别是当内置的软件仓库提供的NFS Ganesha版本不能满足需求时,以及在类似系统上操作,打包ganesha的rpm。
2.依赖环境准备
2.1配置yum源
CentOS 8已于2021年12月31日寿终正非,但软件包仍在官方镜像上保留了一段时间。现在他们被转移到https://vault.centos.org
如果你仍然需要运行你的旧CentOS 8,你可以在/etc/yum.repos中更新repos.d使用vault.centos.org代替mirror.centos.org。
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
有一些源没有启用,需要启用,因为有的包不仅仅是在baseos、appstream、extras中的,不好分辨的情况下将除了本地源之外的都启用
sed -i 's#enabled=0#enabled=1#g' /etc/yum.repos.d/CentOS-Linux-PowerTools.repo
sed -i 's#enabled=0#enabled=1#g' /etc/yum.repos.d/CentOS-Linux-HighAvailability.repo
sed -i 's#enabled=0#enabled=1#g' /etc/yum.repos.d/CentOS-Linux-Plus.repo
sed -i 's#enabled=0#enabled=1#g' /etc/yum.repos.d/CentOS-Linux-FastTrack.repo
sed -i 's#enabled=0#enabled=1#g' /etc/yum.repos.d/CentOS-Linux-ContinuousRelease.repo
2.2安装依赖包
yum install python3-devel selinux-policy-devel libtirpc-devel userspace-rcu userspace-rcu-devel xfsprogs-devel
yum install cmake libarchive-devel bison flex doxygen libuuid-devel libblkid-devel libcap-devel libacl-devel
yum install libattr-devel libnfsidmap-devel libwbclient-devel libnsl2-devel
yum install gcc gcc-c++
yum install krb5-devel dbus-devel
2.3拉取源代码
yum install -y git
git clone https://github.com/nfs-ganesha/nfs-ganesha.git
3编译打包
3.1生成makefile
切换到所需要的代码版本,然后拉取submodule
cd nfs-ganesha/
git checkout V4.2
git submodule update --init
创建一个新的构建目录并进入到这里运行cmake生成构建文件
mkdir build; cd build; cmake ../src
# 也可以指定某些选项,比如-DUSE_FSAL_CEPH=ON
# 这里不指定选择默认直接梭哈
3.1生成rpm
yum install -y rpm-build
make rpm
执行make rpm没有报错后rpm生成