Quelle est la différence entre la compilation du code source dans Debian GNU / Hurd et Debian GNU / Linux?

9

J'essayais de compiler la libnetfilter_conntracksource à partir de github comme cela avait été demandé par iptableslors de la compilation d' iptables et comme aucun d'entre eux n'était disponible dans le repo du logiciel HURD et s'est retrouvé dans une erreur lors de la configurationlibnetfilter_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!

et mon noyau est,

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

et mon objectif ultime était de compiler iproute2 .

Pavel Sayekat
la source
11
La question ici n'est pas la différence entre la compilation sur Hurd et Linux: c'est que vous essayez de compiler un pare-feu et une lib uniquement Linux sur un autre OS.
1
Peut-être que vous cherchez un nouveau programme sur GNU / Hurd dont l'interface de ligne de commande est similaire à celle des programmes iptableset iproute2. Cela peut être possible car les réseaux (IPv4 et IPv6) en cours de configuration sont similaires. Dans ce cas, regardez la source des programmes équivalents sur GNU / Hurd et écrivez une nouvelle interface de ligne de commande pour eux.
Kapil

Réponses:

24

En général, ce n'est pas très différent; il y a des listes d'embûches connues sur le site de Hurd et sur le wiki Debian . De nombreux projets se construisent bien, ou après quelques corrections (le problème le plus courant étant l'absence de PATH_MAX).

Cependant, dans votre cas, vous aurez du mal à aller n'importe où: netfilteret iptablessont spécifiques au noyau Linux, vous ne pourrez donc pas les utiliser sur le Hurd. Vous aurez probablement remarqué que le iptablespaquet n'est pas disponible surhurd-i386 - il y a généralement une bonne raison à cela ... iproute2est également spécifique à Linux.

Sur le Hurd que vous utiliseriez à la eth-filterplace, consultez la section mise en réseau du guide de configuration Debian GNU / Hurd pour plus de détails.

Stephen Kitt
la source
12
@PavelSayekat Vous utilisez un pare-feu non spécifiquement écrit pour Linux?
Kusalananda
5
@PavelSayekat Vous pouvez toujours porter les bibliothèques / programmes sur hurd. Bon codage pour les prochaines années!
Giacomo Alzetta
1
@GiacomoAlzetta ne fonctionnera pas, car les bibliothèques et les programmes ne sont que la moitié de l'espace utilisateur de l'implémentation; ils parlent à des modules spécifiques du noyau Linux, donc cela ne sera jamais possible.
mirabilos
4
@mirabilos à moins que quelqu'un ajoute également le support "noyau" sur le Hurd ;-).
Stephen Kitt
1
@StephenKitt le principe Hurd préfère en faire un traducteur qui parle ensuite au traducteur du réseau. Aucun noyau impliqué, il ne fait que passer des messages. (Oh, et je préfère porter pf depuis OpenBSD que ce que Linux utilise de nos jours… ☺)
mirabilos