我正在创建一组实用程序来为特定的网络和域配置配置Linux系统。此配置的步骤之一是配置网络接口。尽管我可以轻松地配置诸如Samba或NTP之类的东西(因为它们具有相同的配置文件语法,而不管发行版如何),但联网似乎要困难一些。
Debian使用/etc/network/interfaces,Fedora和Red使用/etc/sysconfig/network-scripts,其他发行版使用各自的网络管理器(我个人在Arch上使用netctl ),因此获得能够配置网络接口的脚本几乎是不可能的。是否有任何可移植的方式来配置网络接口?
如果做不到这一点,什么是为各种发行版创建“模块”的好方法?我的项目将使用Autotools来配置和安装实用程序,这样就可以进行一些“编译”,但是如何检测哪个网络管理器在使用呢?此方法的问题包括在使用中的网络管理器不存在模块时应如何处理。还是应该让编译用户来决定启用哪个“模块”?
然后,这个问题扩展到打包--当将它创建为一个包时,我如何支持存在的多个网络管理器,即使是在一个发行版上?例如,在Arch中,用户可能安装了netctl,它使用一组配置文件,或者使用Wicd或GNOME网络管理器。
发布于 2014-01-09 10:16:45
您可以使用插件API创建您的软件。API描述了如何配置网络接口。然后您将为NM提供一个插件,一个用于Wicd,一个用于/ etc /网络/接口等。用户可以选择在./configure阶段编译哪些插件,这样他就不需要安装不必要的依赖项了。
对于多个启用插件(例如NM和Wicd),您可以使用D总线进行检查,注册什么服务来管理网络接口。
https://stackoverflow.com/questions/20997735
复制相似问题