簡體   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