交叉编译nfs-utils

NFS在信息传送中依赖RPC协议,NFS服务端需要安装rpcbind和nfs-utils,客户端只需要安装 nfs-utils。

交叉编译比x86上编译复杂一些,主要是交叉编译环境不能使用软件仓库中的程序,需要下载依赖库的源码,在交叉编译环境编译、安装后才能使用。

rpcbind依赖libtirpc;nfs-utils依赖libtirpc、libevent、device-mapper

先编译这些依赖库,./configure指定交叉编译参数,其中arm-hisiv400-linux-gcc是个人使用的Hi3536芯片提供的SDK:

./configure CC=arm-hisiv400-linux-gcc --host=arm-linux prefix=/usr/arm/xxx

其中device-mapper执行./configure 会提示” ../lib/ioctl/libdevmapper.so: undefined reference to `rpl_malloc'”,处理方法:在configure文件注释掉#define malloc rpl_malloc

 

这些依赖库make&&make install之后,编译rpcbind和nfs-utils时加上他们的lib和include目录

rpcbind:

./configure CC=arm-hisiv400-linux-gcc --host=arm-linux LDFLAGS="-L/usr/arm/tirpc/lib" CPPFLAGS="-I/usr/arm/tirpc/include/tirpc" --with-systemdsystemunitdir=no prefix=/usr/arm/rpcbind

这里禁用了systemd。如果报错”No package 'libtirpc' found”,在PKG_CONFIG_PATH增加tirpcpkgconfig目录:

export PKG_CONFIG_PATH=/usr/arm/tirpc/lib/pkgconfig:$PKG_CONFIG_PATH

 

nfs-utils编译:

./configure CC=arm-hisiv400-linux-gcc --host=arm-linux LDFLAGS="-L/usr/arm/tirpc/lib -L/usr/arm/event/lib -L/usr/arm/devmapper/lib" CPPFLAGS="-I/usr/arm/tirpc/include/tirpc/rpc -I/usr/arm/event/include -I/usr/arm/devmapper/include" --enable-gss=no --disable-uuid --without-tcp-wrappers --prefix=/usr/arm/nfs

configure通过之后执行make

程序移植到嵌入式对应目录后,启动rpcbind和rpc.nfsd,如果启动失败查看错误提示或系统日志/var/log/messages,根据错误提示处理

"Unable to locate package nfs-utils" 这是一个常见的Linux命令行错误,通常发生在尝试通过包管理器安装`nfs-utils`软件包的时候。`nfs-utils`一般用于提供网络文件系统(Network File System,NFS)的服务和工具,如共享目录、挂载等。 这个错误意味着系统找不到指定的软件包,可能是由于以下几个原因: 1. **包名拼写错误**:确保你在输入的包名(`nfs-utils`)没有打错。 2. **包源未添加**:如果你是从非官方的源或者自定义源列表查找,可能需要先添加对应的源才能找到该包。 3. **版本库更新**:有时新版本的软件包尚未同步到默认的包管理器仓库,你可以检查并更新包管理器(如apt-get、yum或dnf)。 4. **权限限制**:如果没有足够的权限访问包源,也可能会遇到这个问题。你需要确认当前用户有安装软件包的权限。 要解决这个问题,你可以按照以下步骤操作: 1. 检查包名是否正确,并确认是否来自正确的软件源。 2. 更新包列表: ``` sudo apt-get update (对于Ubuntu/Debian) sudo yum update (对于CentOS/RHEL) sudo dnf check-update (对于Fedora/CentOS Stream) ``` 3. 安装缺失的包: ``` sudo apt-get install nfs-utils (Ubuntu/Debian) sudo yum install nfs-utils (CentOS/RHEL) sudo dnf install nfs-utils (Fedora/CentOS Stream) ``` 如果问题依然存在,可能需要查看详细的错误信息或查阅相关的文档以获取更精确的帮助。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值