Ubuntu 16.04 剛推出兩個月, Windows 10 則推出將近滿一年, 這兩個號稱創新度高的電腦操作系統, 經過幾個禮拜密集的測試, 在今年暑假即將更新的電腦輔助設計室所採購的電腦中, 初步決定都不積極採用, 而只在虛擬機器中提供測試之用.

當然我們必須承認, 問題出在我們迎接創新的速度不足, 現有整體環境沒有辦法迎接這兩種"最新"的操作系統.

兩年多前從 Ubuntu 12.04 轉到 14.04 的過程, 或者 5 年多前從 XP 轉進 Windows 7 時, 也面臨過類似的問題, 但是感覺問題都很容易解決, 只是這次之所以捨棄全面提升到 Ubuntu 16.04, 問題出在 AMD 陣營中的 libGL 程式庫驅動程式老舊, 導致 X-Windows 無法 remote 帶回瀏覽器, 至於 Windows 10 在非觸控螢幕的電腦上感覺操作效能提升不大, 但是必須額外配合新介面與並不實用的許多即時服務, 所花費的代價實在太高, 因此作罷.

另外一個讓我們決定不採用 Windows 10 與 Ubuntu 16.04 作為主要操作系統的原因是, 機械設計工程系正要逐步將已經使用多年的 IPV4 環境, 換轉到 IPV6 與 IPV4 混用的環境, 所遭遇的問題已經夠多, 因此決定在新電腦安裝 Windows 7 專業版, 並且在其中利用 Virtualbox 配置 Windows 7, Windows 10, Ubuntu 14.04 與 Ubuntu 16.04 虛擬機器, 讓使用者可以在虛實整合的環境中配置各種機械設計相關的網路環境.

Python3, Git 與 Leo Editor

機械設計工程系目前的計算機程式、網際內容管理、電腦輔助設計實習與協同產品設計實習等課程, 強調以數位運算方法來協助解決問題的工具, 包含 Python3, Git 與 Leo Editor.

在 Windows 64 位元環境中, 我們已經製作了一套可攜的 Python3 程式環境, 其中還包括 Git 與 Leo Editor, 使用者只要 git clone https://github.com/chiamingyen/kmol2016.git 就可以取得, 但前提是使用者的 Windows 環境必須要有 git 工具, 可以從 https://github.com/git-for-windows/git/releases 下載.

假如是在 Ubuntu 14.04 或 16.04 環境中, 使用純 IPV6 網路協定上網, 而 apt-get, pip3 或 git 等指令, 可能就必須要設定支援 IPV4/IPV6 的代理主機, 才能正確執行.

Git 使用代理主機

git 在純 IPV6 協定下使用代理主機的設定如下:

git config --global http.proxy http://[2001:288:6004:17::17]:3128

git config --global https.proxy http://[2001:288:6004:17::17]:3128

apt 使用代理主機

編輯 /etc/apt/apt.conf, 並且納入下列內容:

Acquire::http::Proxy "http://username:password@your.proxy.server:3128";

之後就可以安裝 python3-pip 與 python3-pyqt5

sudo apt install python3-pip

sudo apt install python3-pyqt5

pip3 使用代理主機

在支援純 IPV6 協定上網的 Ubuntu 電腦安裝 pip3 與 python3-pyqt5 之後, 就可以接著安裝 Leo Editor, 但是為了安裝 5.1 以上的版本 (才提供 @clean 節點指令的支援), 必須要先以下列指令安裝 Leo Editor 5.0b2 版, 然後再利用 5.3 版的程式碼進行替換即可.

首先是利用代理主機安裝 leo:

sudo pip3 --proxy=[2001:288:6004:17::17]:3128 install leo

假如使用者利用:

sudo pip3 --proxy=[2001:288:6004:17::17]:3128 install https://github.com/leo-editor/leo-editor/archive/5.3.zip

執行 Leo Editor 5.3 版程式碼安裝時, 將會出現以 Python2 進行 setup.py 的錯誤, 處理方式可以採直接修改 Leo Editor 5.3 版的原始碼, 或者安裝完 5.0b2 版之後, 再將 5.3 版的程式碼取代 /usr/local/lib/python3.5/dist-packages/leo 中的內容.

另外, 利用 pip3 移除模組的指令如下:

sudo pip3 --proxy=[2001:288:6004:17::17]:3128 uninstall leo

而在 Ubuntu 16.04 中移除 apt 所安裝的模組, 則必須使用:

sudo apt remove python3-pyqt4

完成 Leo Editor 安裝後, 就可以利用 leo& 啟動.

純 IPV6 環境下的 wsgi 程式

當 Virtualbox 環境下的各虛擬機器, 利用 Bridged 網路設定, 成為一台廣域網路上的伺服器之後, 假如要以 IPV6 網址執行 wsgi 程式, 可以修改 CMSimply 的設定:

if inOpenshift:
    # operate in OpenShift
    application = cherrypy.Application(root, config = application_conf)
else:
    # operate in localhost
    cherrypy.server.socket_port = 8080
    cherrypy.server.socket_host = '2001:288:6004:17::6666'
    cherrypy.quickstart(root, config = application_conf)

然後透過 http://[2001:288:6004:17::6666]:8080 擷取 CMSimply wsgi 網際程式, 但是目前的 CMSimply 系統中的 html editor 為 tinymce3, 無法正確解析 IPV6 網址, 因此需要改用最新的 tinymce4 才行.

但是, 隨著改用 tinymce4, 後續衍生的問題就是必須再將先前已經在 tinymce3 實現的各種 html 上傳檔案與圖片整合的程序, 全部修改為 tinymce4 相容.

Virtualbox 虛擬機器採用純 IPV6 結論

隨著操作系統版本不斷更新, 而且各單位轉用 IPV6 的需求日益增高, 許多過去所使用的流程與架構都被迫必須修改因應:

就各純 IPV6 環境架設的虛擬機器, 至少需要以下代理主機設定, 來配合許多僅支援 IPV4 的服務主機:

  1. git 指令的代理, 使用 git config --global http.proxy http://[2001:288:6004:17::17]:3128

  2. apt 或 apt-get 的代理, 必須建立 /etc/apt/apt.conf, 並納入代理主機的設定: Acquire::http::Proxy "http://username:password@your.proxy.server:3128";

  3. pip3 的代理, 則採用 sudo pip3 --proxy=[2001:288:6004:17::17]:3128 install leo

除了上述的程式安裝代理, 後續還有 sftp 的代理, 工程軟體套件的認証協定, 也都必須配合 IPV4 轉進到 IPV6 逐一處理.