[英]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.