【分布式存储项目】(2)动态库链接问题以及服务器配置

岁酱吖の 提交于 2019-12-07 12:18:08

1.动态库问题以及解决方案

1.1问题发现

在Linux环境下编写C程序时,经常需要使用动态库,这里给出常见动态库问题的解决方案。
开源项目使用redis中的examples.c程序
直接编译错误
直接使用指令对example.c进行编译

gcc example.c

出现以下错误

缺少头文件
提示缺少头文件hiredis.h,使用查找指令

find /usr/local/include -name "hiredis.h"

查找头文件
导入头文件继续进行编译

gcc examples.c -I /usr/local/include/hiredis -o example

出现动态库未找到错误

动态库错误
找到动态库文件的目录
返回父目录

1.2 解决动态库问题的三种方案

1.

使用环境变量LD_LIBRARY_PATH
将动态库的绝对路径添加到该环境变量中

LD_LIBRARY_PATH = /usr/include/xxx:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

写入到配置文件当中

~/.bashrc  -用户级别
/etc/profile -系统级别

2.

给动态库设置软连接 /usr/USERNAME/fastdfs
将软连接放到 /usr/lib /usr/lib64 /lib /lib4

sudo ln -s /usr/USERNAME/fastdfs/XXX.so /usr/lib/libXXX.so

3.(推荐)

刷新/etc/ld.so.cache

vi etc/ld.so.conf
sudo ldconfig -v

1.3

完成动态库配置之后,再检查动态库链接情况

ldd example

动态库连接情况
执行redis-test程序
测试程序通过

2.fastDFS基本配置

1.默认配置文件的位置

/etc/fdfs

2.Tracker追踪器配置

修改配置文件

bind_addr = 192.168.82.101
port = 22122
base_path = /home/USERNAME/fastDFS/tracker

启动tracker服务

fdfs_trackered /etc/fdfs/tracker.conf
sudo fdfs_trakcerd /etc/fdfs/trakcer.conf restart
sudo fdfs_trakcerd /etc/fdfs/trakcer.conf stop

3.Storage配置

group_name = group1 //存储节点所属的组
bind_addr = 192.168.82.101 //存储节点绑定的IP
port = 23000
base_path = /home/USERNAME/fastDFS/storage
store_path_count = 1//存储目录的个数
store_path0=/home/USERNAME/fastDFS/storage //配置具体存储目录
tracker_server=192.168.82.101:22122

启动Storage服务

fdfs_storaged /etc/fdfs/storage.conf

4.Clinet配置

base_path = /home/USERNAME/fastDFS/client
tracker_server=192.168.82.101:22122

5.检测fdfs环境

检测通过

6.进行文件上传至服务器

fdfs_upload_file /etc/fdfs/client.conf makefile(some file...)

文件上传
至此,fastDFS服务器配置完成

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!