繁体   English   中英

如何在 Solaris 10 (Sparc Sun4v) 上编译 netcat-openbsd

[英]How to compile netcat-openbsd on Solaris 10 (Sparc Sun4v)

你知道如何在 Solaris 10 (Sparc Sun4v) 上编译 netcat-openbsd。

我从以下 URL 下载了 netcat-openbsd_1.187.orig.tar.gz。 https://ftp.vcu.edu/pub/gnu_linux/ubuntu/pool/main/n/netcat-openbsd/netcat-openbsd_1.187.orig.tar.gz

$ gmake
Makefile:8: *** missing separator.  Stop.

只是为了记录,这里是“Makefile”文件的内容。

#       $OpenBSD: Makefile,v 1.7 2015/09/11 21:07:01 beck Exp $

PROG=   nc
SRCS=   netcat.c atomicio.c socks.c
LDADD+= -ltls -lssl -lcrypto
DPADD+=  ${LIBTLS} ${LIBSSL} ${LIBCRYPTO}

.include <bsd.prog.mk>

我是在 2007 年将 OpenBSD Netcat 实际移植到 Solaris 以在官方 Solaris 软件包中可用的人 [1]; 它作为network/netcat IPS 包在 Solaris 11 中可用,并得到维护。 那仍然是在 OpenSolaris 时代,我相信这项工作仍然作为 Illumos 存储库中的开源存在。

无论如何,为了编译问题中引用的特定Netcat源代码,您必须先将其移植。

您已经注意到,随源代码提供的 Makefile 不适用于 GNU make。 事实上,它甚至不适用于 Solaris 提供的 make 实现。 这是因为 BSD 在 Makefile 的最后一行生成特定指令。

假设您拥有 Solaris 的最新最大补丁级别(类似于 CPU 2021-04 - CPU 代表重要补丁更新),源代码将需要进行大量更改。 当我移植 OpenBSD Netcat 时,它的功能相当少。 它已经添加了很多东西,包括 TLS 支持等。这些可以在 Makefile 中注意到,你可以看到它想要将程序与 OpenSSL 库链接。 在 Solaris 10 上,这有点复杂,因为它提供了两个版本的 OpenSSL。 这些是您可能想要禁用的部分(通过修改源代码和 Makefile)以获得最少的功能。

然后,一旦您有了一个可以工作的程序,您就可以着手启用迄今为止禁用的功能,至少是您关心的功能。

更简单的方法是获取旧版本的 OpenBSD Netcat 或者从 Illumos 获取 Netcat 源代码(假设您不关心许可等)。

至于编译器的选择,GNU CC 或 Oracle Developer Studio 都可以。

[1] 你可以在我现在打捞的博客条目中阅读它: https : //github.com/vladak/blogs-oracle/blob/master/netcat-in-solaris.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM