源代码编译安装GlusterFS¶
编译GlusterFS环境¶
编译GlusterFS需要以下软件包:
# GNU Autotools
Automake
Autoconf
Libtool
lex (generally flex)
GNU Bison
OpenSSL
libxml2
Python 2.x
libaio
libibverbs
librdmacm
readline
lvm2
glib2
liburcu
cmocka
libacl
sqlite
fuse-devel
liburing-devel
Fedora编译需要¶
使用dnf在Fedora上安装以下编译环境:
dnf install automake autoconf libtool flex bison openssl-devel \
libxml2-devel python-devel libaio-devel libibverbs-devel \
librdmacm-devel readline-devel lvm2-devel glib2-devel \
userspace-rcu-devel libcmocka-devel libacl-devel sqlite-devel \
fuse-devel redhat-rpm-config rpcgen libtirpc-devel make \
libuuid-devel liburing-devel gperftools libcurl-devel
Ubuntu编译需要¶
使用apt在Ubuntu上安装编译环境:
sudo apt-get install make automake autoconf libtool flex bison \
pkg-config libssl-dev libxml2-dev python-dev libaio-dev \
libibverbs-dev librdmacm-dev libreadline-dev liblvm2-dev \
libglib2.0-dev liburcu-dev libcmocka-dev libsqlite3-dev \
libacl1-dev liburing-dev google-perftools
CentOS/Enterprise Linux v7需要(已实践)¶
需要先激活 CentOS SIG部署Gluster 以便能够安装
userspace-rcu-devel
:
yum install centos-release-gluster
使用 yum 在CentOS / Enterprise Linux 7上安装编译环境:
:<<'EOF'
官方原文安装依赖:
yum install autoconf automake bison cmockery2-devel dos2unix flex \
fuse-devel glib2-devel libacl-devel libaio-devel libattr-devel \
libcurl-devel libibverbs-devel librdmacm-devel libtirpc-devel \
libtool libxml2-devel lvm2-devel make openssl-devel pkgconfig \
pyliblzma python-devel python-eventlet python-netifaces \
python-paste-deploy python-simplejson python-sphinx python-webob \
pyxattr readline-devel rpm-build sqlite-devel systemtap-sdt-devel \
tar userspace-rcu-devel
EOF
:<<'EOF'
需要激活CentOS SIG repos才能安装 userspace-rcu-devel
我的实践去除了官方文档中的4个软件包:
cmockery2-devel
python-eventlet
python-paste-deploy
python-simplejson
增加了:
gperftools
gperftools-devel
EOF
yum install autoconf automake bison dos2unix flex \
fuse-devel glib2-devel libacl-devel libaio-devel libattr-devel \
libcurl-devel libibverbs-devel librdmacm-devel libtirpc-devel \
libtool libxml2-devel lvm2-devel make openssl-devel pkgconfig \
pyliblzma python-devel python-netifaces \
python-sphinx python-webob \
pyxattr readline-devel rpm-build sqlite-devel systemtap-sdt-devel \
tar userspace-rcu-devel gperftools gperftools-devel
CentOS / Enterprise Linux v8需要¶
激活build环境需要的仓库:
yum-config-manager --enable powertools --enable devel
使用 dnf 在CentOS 8上安装编译环境:
yum install autoconf automake bison dos2unix flex fuse-devel glib2-devel \
libacl-devel libaio-devel libattr-devel libcurl-devel libibverbs-devel \
librdmacm-devel libtirpc-devel libuuid-devel libtool libxml2-devel \
lvm2-devel make openssl-devel pkgconfig xz-devel python3-devel \
python3-netifaces python3-paste-deploy python3-simplejson python3-sphinx \
python3-webob python3-pyxattr readline-devel rpm-build sqlite-devel \
systemtap-sdt-devel tar userspace-rcu-devel rpcgen liburing-devel
CentOS Stream 9需要¶
激活build环境需要的仓库:
yum-config-manager --enable crb --enable devel
备注
CentOS Stream 9我还么有实践过,这里只摘录原文,编译需要的安装包可能同 CentOS 8(不确定)
源代码¶
根据 Gluster Community Packages 信息,按照需求(发行版)下载
GlusterFS官方下载 源代码包,例如
glusterfs-11.0
:
gluster_version=11.0
wget https://download.gluster.org/pub/gluster/glusterfs/11/LATEST/glusterfs-${gluster_version}.tar.gz
tar xfz glusterfs-${gluster_version}.tar.gz
cd glusterfs-${gluster_version}
编译配置¶
使用
autogen
生成configure
脚本:
./autogen.sh
执行
configure
./configure
CentOS 7¶
针对CentOS 7使用以下编译配置:
./configure --without-libtirpc --disable-linux-io_uring
编译和安装¶
编译和安装GlusterFS非常简单:
make
sudo make install
编译RPMs¶
在基于 RPM 的系统中,如 Fedora 可以非常容易直接构建RPM包
yum install mock rpm-build selinux-policy-devel bash-completion
备注
这里我比官方文档多安装了一个 bash-completion
,原因是我在 CentOS 7环境编译GlusterFS 11 发现 pkg-config
依赖这个辅助功能
然后执行以下命令构建GlusterFS RPMs:
cd extras/LinuxRPM
make glusterrpms
构建GlusterFS RPMs输出信息显示,实际上构建参数增加了一个 --enable-gnfs