ImportError: No module named fw_nm

 

日前開始將幾部 CentOS 伺服器從 6.5 版更新到 6.6 版,卻在更新後發現 setup 工具的防火牆設定(Firewall configuration)無法執行,關閉 setup 後則會看到 Python 程式的錯誤訊息:

Traceback (most recent call last):
  File "/usr/bin/system-config-firewall-tui", line 29, in <module>
    import fw_tui
  File "/usr/share/system-config-firewall/fw_tui.py", line 34, in <module>
    import fw_nm
ImportError: No module named fw_nm

 

若直接執行 system-config-firewall-tui 也會得到相同的錯誤訊息。上網查了一下,找到 RHEL 6.6 的 Bug 1123919,原來更新後的 system-config-firewall-tui 需要 fw_nm 模組,而這個模組卻是包含在圖形介面的 system-config-firewall 裡。至於解決方法則很簡單,就是將 system-config-firewall 套件裝起來:

  • yum install system-config-firewall

 

如果進一步查詢 system-config-firewall 套件所在的群組:

  • yum groupinfo "*"|less +/system-config-firewall

 

會看到該套件是收納在「圖形化管理工具」(Graphical Administration Tools)中,也就是說有使用圖形介面的使用者可能就不會遇到這個問題,反之僅使用文字介面的使用者就有可能遇到。但無論如何,未來 RHEL/CentOS 6.6 的後續更新應該要從修改套件相依性或者是修改程式內容的方式來修正這個問題。

 

12/12/2014 更新:

根據 RHBA-2014:1961-1, fw_nm 模組已在後續的更新裡被轉移到 system-config-firewall-base 套件,因此只要進行軟體更新就無須再安裝 system-config-firewall 套件。

 

分類: