Насколько отличается компиляция исходного кода в 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 и lib на другой ОС.
1
Возможно, вы ищете новую программу на GNU / Hurd, интерфейс командной строки которой похож на интерфейс программ iptablesи iproute2. Это может быть возможно, поскольку настраиваемые сети (IPv4 и IPv6) похожи. В этом случае посмотрите на источник эквивалентных программ в GNU / Hurd и напишите для них новый интерфейс командной строки.
Капил

Ответы:

24

В целом, это не очень отличается; есть списки известных подводных камней на сайте Херда и в вики Debian . Многие проекты создаются нормально или после нескольких исправлений (наиболее распространенной проблемой является отсутствие PATH_MAX).

Однако в вашем случае вам будет трудно найти что-либо: netfilterи iptablesспецифичны для ядра Linux, поэтому вы не сможете использовать их в Hurd. Вы , вероятно, заметили , что пакет не доступен на - обычно есть хорошая причина для этого ... также Linux-специфичны.iptableshurd-i386iproute2

Что касается Hurd, который вы бы использовали eth-filterвместо этого, обратитесь к разделу о сети в руководстве по конфигурации Debian GNU / Hurd .

Стивен Китт
источник
12
@PavelSayekat Использование брандмауэра, специально не написанного для Linux?
Кусалананда
5
@PavelSayekat Вы всегда можете портировать библиотеки / программы на HURD. Удачного кодирования на ближайшие несколько лет!
Джакомо Альзетта
1
@GiacomoAlzetta не будет работать, потому что библиотеки и программы являются лишь частью пользовательской среды реализации; они говорят с определенными модулями ядра Linux, так что это никогда не будет возможно.
Мирабилось
4
@mirabilos, если кто-то не добавляет поддержку «ядра» в Hurd ;-).
Стивен Китт
1
@StephenKitt принцип Херда скорее превратил бы это в переводчика, который затем говорит с сетевым переводчиком. Ядро не задействовано, оно в основном только передает сообщения. (О, и я бы предпочел портировать pf из OpenBSD, чем то, что Linux использует в наши дни… ☺)
mirabilos