使编译 nfsshell 声明 rpc/rpc.h 不存在

Make compiling nfsshell claims rpc/rpc.h doesn't exist

我正在尝试为 1997 年编写的 nfsshell 编译 c 源代码。不幸的是,当试图在现代 Debian 版本上 运行 make 时,make 文件产生了上述错误。广泛的谷歌搜索表明,这在很长一段时间内都是 glibc 的一部分,但现在似乎不再如此。有谁知道如何去追捕恐龙?提前致谢!

https://github.com/NetDirect/nfsshell

Glibc 的 RPC 支持在几年前就被弃用了,但如果提供了适当的配置选项,仍然可以构建到 2.31 版。 Debian 显然做到了这一点,这与其他一些发行版(例如 RedHat)不同。在 GNU libc 的 2.32 版中,遗留支持被移除。这是 2.32 announcement:

的摘录

Deprecated and removed features, and other changes affecting compatibility:

  • Remove configure option --enable-obsolete-rpc. Sun RPC is removed from glibc. This includes the rpcgen program, librpcsvc, and the Sun RPC header files. Backward compatibility for old programs is kept only for architectures and ABIs that have been added in or before glibc 2.31. New programs need to use TI-RPC http://git.linux-nfs.org/?p=steved/libtirpc.git;a=summary and rpcsvc-proto https://github.com/thkukuk/rpcsvc-proto.

  • Remove configure option --enable-obsolete-nsl. libnsl is only built as shared library for backward compatibility and the NSS modules "nis" and "nisplus" are not built at all and libnsl's headers aren't installed. This compatibility is kept only for architectures and ABIs that have been added in or before version 2.28. Replacement implementations based on TI-RPC, which additionally support IPv6, are available from https://github.com/thkukuk/. This change does not affect the "compat" NSS module, which does not depended on libnsl since 2.27 and thus can be used without NIS.

这里是 tirpc 的 Debian 软件包搜索:https://packages.debian.org/search?keywords=tirpc