欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

FastDFS安装

程序员文章站 2022-07-03 14:16:09
...

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 

FastDFS安装
2. 进入解压后的目录

cd libfastcommon-1.0.7/

FastDFS安装
3. 编译代码

./make.sh

FastDFS安装
4. 安装

sudo ./make.sh install

FastDFS安装
5. 动态库安装后的路径
安装成功后,默认会复制到 /usr/lib64 下:
FastDFS安装
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'  

FastDFS安装

find / -name 'libpthread.so'  

FastDFS安装
所以增加软连接:

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*

FastDFS安装
安装成功后,自动在 /etc/fdfs 中添加三个配置文件:

cd /etc/fdfs/
ls

FastDFS安装


欢迎关注公众号:c_302888524
发送:”FastDFS“ 获取相关资源*
FastDFS安装

相关标签: fastdfs c++ linux