Wie unterschiedlich ist das Kompilieren von Quellcode in Debian GNU / Hurd von Debian GNU / Linux?

9

Ich habe versucht, die libnetfilter_conntrackQuelle aus Github zu kompilieren, wie es iptablesbeim Kompilieren von iptables angefordert wurde und da diese nicht im HURD-Software-Repo verfügbar waren und beim Konfigurieren einen Fehler aufwiesenlibnetfilter_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!

und mein Kernel ist,

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

und mein ultimatives Ziel war es, iproute2 zu kompilieren .

Pavel Sayekat
quelle
10
Hier geht es nicht um den Unterschied zwischen dem Kompilieren unter Hurd und Linux: Versuchen Sie, eine Nur-Linux-Firewall und -Bibliothek auf einem anderen Betriebssystem zu kompilieren?
1
Vielleicht suchen Sie nach einem neuen Programm auf der GNU / Hurd, dessen Befehlszeilenschnittstelle der der Programme iptablesund ähnelt iproute2. Dies ist möglicherweise möglich, da die zu konfigurierenden Netzwerke (IPv4 und IPv6) ähnlich sind. Schauen Sie sich in diesem Fall die Quelle der entsprechenden Programme auf der GNU / Hurd an und schreiben Sie eine neue Befehlszeilenschnittstelle für diese.
Kapil

Antworten:

23

Im Allgemeinen ist es nicht sehr unterschiedlich; Es gibt Listen bekannter Fallstricke auf der Hurd-Website und im Debian-Wiki . Viele Projekte funktionieren einwandfrei oder nach einigen Korrekturen (das häufigste Problem ist das Fehlen von PATH_MAX).

Aber in Ihrem Fall finden Sie es schwierig , überall zu bekommen: netfilterund iptablesist spezifisch für die Linux - Kernel, so dass man sie nicht auf dem Hurd in der Lage , zu verwenden. Sie werden wahrscheinlich bemerkt haben, dass das iptablesPaket nicht verfügbar isthurd-i386 - es gibt normalerweise einen guten Grund dafür ... es iproute2ist auch Linux-spezifisch.

Auf dem Hurd, den Sie eth-filterstattdessen verwenden würden, finden Sie weitere Informationen im Netzwerkabschnitt des Debian GNU / Hurd-Konfigurationshandbuchs .

Stephen Kitt
quelle
12
@PavelSayekat Verwenden Sie eine Firewall, die nicht speziell für Linux geschrieben wurde?
Kusalananda
5
@PavelSayekat Sie können die Bibliotheken / Programme jederzeit auf hurd portieren. Viel Spaß beim Codieren für die nächsten Jahre!
Giacomo Alzetta
1
@GiacomoAlzetta funktioniert nicht, da die Bibliotheken und Programme nur die Hälfte der Implementierung des Benutzerbereichs ausmachen. Sie sprechen mit bestimmten Linux-Kernelmodulen, sodass dies niemals möglich sein wird.
Mirabilos
4
@mirabilos, es sei denn, jemand fügt dem Hurd auch "Kernel" -Unterstützung hinzu ;-).
Stephen Kitt
1
@StephenKitt das Hurd-Prinzip würde das lieber zu einem Übersetzer machen, der dann mit dem Netzwerkübersetzer spricht. Kein Kernel beteiligt, es wird im Grunde nur die Nachrichtenübermittlung durchgeführt. (Oh, und ich würde lieber pf von OpenBSD portieren als was auch immer Linux heutzutage verwendet… ☺)
mirabilos