我是在vmware的虚拟机上测试的,用的是ubuntu20,从环境安装开始,我会细无巨细的解释、一步步说起,我用的是一台全新的桌面版的ubuntu,刚刚安装好什么也没设置过,主要是考虑这样比较干净,也正好了解下安装好FastCFS都需要哪些库。
主要分为以下2大步骤:
- 搞一台ubuntu的计算机,我是在vmware上安装的,并给它安装配套环境(国内源、gcc、g++、make、git...)
- 源码安装FastCFS,为了深入探索FastCFS,我选择源码安装,体验它的每一步,其实源码安装步骤FastCFS的作者在gitee上说的很清楚了,但我还是依次详细介绍下每个步骤的细节、作用及在安装时所遇到的问题,稍微有一点点小坑。
1) 安装libaio devel包
2) libfastcommon 编译安装
3) libserverframe 编译安装
4) libdiskallocator 编译安装
5) Vote Node client 编译安装
6) Auth client 编译安装
7) fastDIR 编译安装
8) faststore 编译安装
9) fuse客户端编译安装
安装的内容有点多,官方步骤在这里:
https://gitee.com/fastdfs100/FastCFS/blob/master/docs/INSTALL-zh_CN.md
- 配置ubuntu
1. 配置国内清华源
分别执行依次执行下述指令
sudo apt install ca-certificates --reinstall // 用于验证 SSL/TLS 连接的身份,因为用了https不这么干换国内源可能会失败(也可直接用http的url): https://blog.csdn.net/q965844841qq/article/details/121482942
cd /etc/apt //进入ubuntu源的目录
sudo mv sources.list sources.list.bak // 将原来的备份一下,防止出问题可以恢复
sudo vim sources.list // 把里面的内容全删了,粘贴下列的清华源,或者自己去链接里找
sudo apt update //更新了软件包列表
sudo apt-get upgrade //升级实际安装在系统上的软件包
清华源【ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror】:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
2. 配置编译环境
安装gcc、make、git
sudo apt install gcc //c语言编译器
sudo apt install g++ //c++编译器
sudo apt install make //安装make工具
sudo apt install git //安装git工具
3. 配置ssh免密登录
我用的是windows 10,所以只说在win10下怎么免密ssh登录到ubuntu上
1. 管理员身份打开cmd
2. ssh-keygen #执行ssh-keygen, 一路回车直到结束
3. 该命令会在C:\Users\Admin\.ssh生成公钥(id_rsa.pub)和私钥(id_rsa)
4. 把win10下生成的公钥(id_rsa.pub),拷贝到ubuntu机器某个文件夹里
5. 在ubuntu下执行下面的命令(假设用户名是ubuntu)
cd ~/.ssh/ #进入/home/ubuntu/.ssh目录
cat id_rsa.pub >> authorized_keys #公钥内容写到authorized_keys中
大功告成!
- 安装FastCFS
0. 创建安装文件夹,进入root用户权限
mkdir ~/software //家目录下创建个文件夹用来安装软件啥的,
cd ~/software //下面所有的源码克隆都克隆到这个文件夹里
sudo -s // 进入root用户,因为下面的安装指令需要root权限,它要往root用户的文件夹里复制文件
1. 安装libaio devel包
apt install libaio-dev -y
2. 编译安装libfastcommon
git clone https://gitee.com/fastdfs100/libfastcommon.git; cd libfastcommon/
git checkout master //这一步可能会提示Already on 'master',此时忽略它就行,继续下一步
./make.sh clean && ./make.sh && ./make.sh install
最后安装到了下面这几个目录中 -->
/usr/lib64
/usr/lib
/usr/include/fastcommon
3. 编译安装libserverframe
git clone https://gitee.com/fastdfs100/libserverframe.git; cd libserverframe/
./make.sh clean && ./make.sh && ./make.sh install
4. 编译安装libdiskallocator
git clone https://gitee.com/fastdfs100/libdiskallocator.git; cd libdiskallocator/
./make.sh clean && ./make.sh && ./make.sh install
5. 编译安装### Vote Node client
git clone https://gitee.com/fastdfs100/FastCFS.git; cd FastCFS/
./make.sh clean && ./make.sh --module=vote_client && ./make.sh --module=vote_client install
6. 编译安装### Auth client
git clone https://gitee.com/fastdfs100/FastCFS.git; cd FastCFS/
./make.sh clean && ./make.sh --module=auth_client && ./make.sh --module=auth_client install
7. 编译安装fastDIR
git clone https://gitee.com/fastdfs100/fastDIR.git; cd fastDIR/
./make.sh clean && ./make.sh && ./make.sh install
mkdir -p /etc/fastcfs/fdir/
cp conf/*.conf /etc/fastcfs/fdir/
8. 编译安装faststore
git clone https://gitee.com/fastdfs100/faststore.git; cd faststore/
./make.sh clean && ./make.sh && ./make.sh install
mkdir -p /etc/fastcfs/fstore/
cp conf/*.conf /etc/fastcfs/fstore/
9. 编译安装fuse客户端
9.1 libfuse的安装
直接按照官方安装,稍微有点小坑没有提到,下面是我自己探索的安装步骤,亲测是安装成功了。
# libfuse编译依赖比较复杂,我这里直接使用自带脚本进行安装,如下:
# 1. 先安装python3和pip3
apt install pkg-config python3 python3-pip -y
# 2. 源码安装libiconv字符集转换库,安装libfuse时会检测有没有这个字符转换库,不知道它在里面起到什么作用,先安了再说~
wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.17.tar.gz
tar -xzvf libiconv-1.17.tar.gz
cd libiconv-1.17
./configure --prefix=/usr/local
make -j4 // 这一步执行完后提示个警告,让执行'libtool --finish /usr/local/lib',所以我下面就安装了libtool-bin,执行了这句话
apt install libtool-bin
libtool --finish /usr/local/lib
make install
# 3. 用自带脚本安装libfuse
cd software #先进入刚才创建的software
cd FastCFS #进入刚才克隆的这个文件夹
./libfuse_setup.sh #这是它自带的脚本,执行它进行自动安装libfuse及所有依赖,这一步会提示一个经过'Checking whether type "struct stat" has member "st_atimespec" : NO (cached)',不同操作系统会有可能没有这个成员,可能是用来做不同处理的,具体我也不知道它要干啥,反正没报错,先这样往下走
9.2 编译安装fcfs_fused
cd ~/software/FastCFS # 进入之前clone下来的FastCFS目录
./make.sh --exclude=client clean && ./make.sh --exclude=client && ./make.sh --exclude=client install
mkdir -p /etc/fastcfs/fcfs/
mkdir -p /etc/fastcfs/vote/
mkdir -p /etc/fastcfs/auth/
cp conf/*.conf /etc/fastcfs/fcfs/
cp -R src/vote/conf/* /etc/fastcfs/vote/
cp -R src/auth/conf/* /etc/fastcfs/auth/