Linux系统下的FastDFS安装

1.旧版本FastDFS说明

FastDFS有一部分是网络通信功能,旧版本FastDFS(FastDFS 2.0之间版本)没有直接使用epoll实现,而是通过libevent实现(libevent 是一个用C语言编写的、轻量级的开源高性能网络库),但是最新版的FastDFS最终网络IO这部分重新用epoll实现。
所以如果是FastDFS是2.0之前的版本,请先安装好libevent环境(新版本不需要安装)。
libevent下载地址: http://libevent.org

2.libfastcommon的安装

libfastcommonFastDFS操作的基础库,FastDFS没有使用标准的库,而是封装了一套和FastDFS相关的库。

关注公众号:c_302888524,回复:”FastDFS“ 获取相关资源

  1. 解压压缩包:
tar -xzvf libfastcommonV1.0.7.tar.gz 

在这里插入图片描述
2. 进入解压后的目录

cd libfastcommon-1.0.7/

在这里插入图片描述
3. 编译代码

./make.sh

在这里插入图片描述
4. 安装

sudo ./make.sh install

在这里插入图片描述
5. 动态库安装后的路径
安装成功后,默认会复制到 /usr/lib64 下:
在这里插入图片描述
6. 设置环境变量或者创建软连接 
由于系统不会自动在 /usr/lib64 找动态库,所以需要人为设置环境变量或者创建软链接( 二 者 选 一 \color{red}{二者选一} ):

export LD_LIBRARY_PATH=/usr/lib64/:$LD_LIBRARY_PATH

推 荐 \color{red}{推荐}

sudo ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so

3.FastDFS的安装

这里使用的是V5.05版本:FastDfs_V5.05.tar.gz

关注公众号:c_302888524,回复:“FastDFS” 获取相关资源

FastDFS 安装过程和 libfastcommon 是一样的:

tar -zxvf FastDfs_V5.05.tar.gz
cd fastdfs-5.05/
./make.sh
sudo ./make.sh install

若出现如下错误:
/tmp/ccCrDJLU.o:在函数‘main’中:
/media/c-feng/Deepin_study/FastDFS/FastDFS/tracker/fdfs_trackerd.c:277:对‘pthread_kill’未定义的引用
../common/shared_func.o:在函数‘init_pthread_lock’中:
/media/c-feng/Deepin_study/FastDFS/FastDFS/tracker/../common/shared_func.c:924:对‘pthread_mutexattr_init’未定义的引用
/media/c-feng/Deepin_study/FastDFS/FastDFS/tracker/../common/shared_func.c:932:对‘pthread_mutexattr_settype’未定义的引用
/media/c-feng/Deepin_study/FastDFS/FastDFS/tracker/../common/shared_func.c:949:对‘pthread_mutexattr_destroy’未定义的引用
../common/shared_func.o:在函数‘init_pthread_attr’中:
/media/c-feng/Deepin_study/FastDFS/FastDFS/tracker/../common/shared_func.c:976:对‘pthread_attr_getstacksize’未定义的引用
/media/c-feng/Deepin_study/FastDFS/FastDFS/tracker/../common/shared_func.c:1007:对‘pthread_attr_setstacksize’未定义的引用
../common/shared_func.o:在函数‘create_work_threads’中:
/media/c-feng/Deepin_study/FastDFS/FastDFS/tracker/../common/shared_func.c:1734:对‘pthread_create’未定义的引用
../common/shared_func.o:在函数‘kill_work_threads’中:
/media/c-feng/Deepin_study/FastDFS/FastDFS/tracker/../common/shared_func.c:1760:对‘pthread_kill’未定义的引用
../common/sched_thread.o:在函数‘sched_start’中:
/media/c-feng/Deepin_study/FastDFS/FastDFS/tracker/../common/sched_thread.c:235:对‘pthread_create’未定义的引用
collect2: error: ld returned 1 exit status
Makefile:23: recipe for target 'fdfs_trackerd' failed
make: *** [fdfs_trackerd] Error 1

网上查看资料是说在make.sh 文件中没有指定libpthread.solibpthread.a的正确路径,所以打开make.sh找到如下代码:

if [ -f /usr/lib/libpthread.so ] || [ -f /usr/local/lib/libpthread.so ] || [ -f /lib64/libpthread.so ] || [ -f /usr/lib64/libpthread.so ]  
 || [ -f /usr/lib/libpthread.a ] || [ -f /usr/local/lib/libpthread.a ] || [ -f /lib64/libpthread.a ] || [ -f /usr/lib64/libpthread.a ]; 

在我机器上找了下,确实在以上代码中指定的路径中没有找到libpthread.solibpthread.a;随后我在 /usr/lib/x86_64-linux-gnu/ 中找到了libpthread.solibpthread.a(Deepin系统):

find / -name 'libpthread.a'  

在这里插入图片描述

find / -name 'libpthread.so'  

在这里插入图片描述
所以增加软连接:

ln -s /usr/lib/x86_64-linux-gnu/libpthread.a /usr/lib/libpthread.a
ln -s /usr/lib/x86_64-linux-gnu/libpthread.so /usr/lib/libpthread.so

再次运行 ./make.sh 问题解决


确认 make 没有错误后,执行安装,可执行程序程序默认安装到 /usr/bin 中:

cd /usr/bin/
 ls fdfs*

在这里插入图片描述
安装成功后,自动在 /etc/fdfs 中添加三个配置文件:

cd /etc/fdfs/
ls

在这里插入图片描述


欢迎关注公众号:c_302888524
发送:”FastDFS“ 获取相关资源*
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值