在Debian GNU / Hurd中编译源代码与Debian GNU / Linux有何不同?


9

我试图libnetfilter_conntrack从github 编译源代码,因为它是iptables在编译iptables时要求的,并且其中的任何一个在HURD软件库中都不可用,并且在配置时最终出错libnetfilter_conntrack

checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking whether ln -s works... yes
configure: error: Linux only, dude!

我的内核是

$ uname -a
GNU debian 0.9 GNU-Mach 1.8+git20190109-486/Hurd-0.9 i686-AT386 GNU

我的最终目标是编译iproute2


11
这里的问题不是在Hurd和Linux上进行编译之间的区别:是您正在尝试编译仅Linux防火墙和在另一个OS上的lib。

1
也许你正在寻找的是一个的GNU / Hurd的,其命令行界面类似于方案的程序iptablesiproute2。由于正在配置的网络(IPv4和IPv6)相似,因此这可能是可行的。在这种情况下,请查看GNU / Hurd上等效程序的源代码,并为它们编写一个新的命令行界面。
卡皮尔

Answers:


24

总的来说,并没有太大的区别。在Hurd的网站Debian Wiki 都有已知陷阱的列表。许多项目构建良好,或者经过一些修复(最常见的问题是缺少PATH_MAX)。

但是,在您的情况下,您将发现难以到达的任何地方:netfilter并且iptables特定于Linux内核,因此您将无法在Hurd上使用它们。您可能已经注意到iptables软件包不可用hurd-i386 -通常有充分的理由... iproute2也是特定于Linux的。

在您要使用的Hurd上eth-filter,请参阅Debian GNU / Hurd配置指南的网络部分以了解详细信息。


12
@PavelSayekat使用不是专门为Linux编写的防火墙吗?
库沙兰丹

5
@PavelSayekat您始终可以将库/程序移植到hurd。未来几年的编码愉快!
Giacomo Alzetta

1
@GiacomoAlzetta无法工作,因为库和程序只是实现的用户空间的一半;他们与特定的Linux内核模块进行通讯,因此这将永远不可能。
mirabilos

4
@mirabilos,除非有人也在Hurd上添加“内核”支持;-)。
斯蒂芬·基特

1
@ StephenKitt,Hurd原则宁愿将其变成翻译器,然后与网络翻译器进行对话。不涉及内核,基本上只进行消息传递。(哦,我宁愿从OpenBSD移植pf,而不是现在使用的Linux……)
mirabilos
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.