Windows 10 版本1607 如何跑Ubuntu 子系統的 X-Windows App 筆記

今日花了一些時間更新 Windows 10,迫不及待就趕緊要來試用 Windows 10 所內建的 Ubuntu(還是搶鮮版!! 歪國人好像簡稱WSL 就是 Windows Subsystem for Linux) ,試用了幾小時後,不得不佩服微軟整合的程度超過想像,可能有些人以為 Windows 10 跑的 Ubuntu 是虛擬機,其實不是,Windows 10 跑的 Ubuntu 反而像是 Cygwin,所以本機上所有資源幾乎都可以拿來用,所有關於 Ubuntu 的東西也都可以透過 apt-get 來安裝。

關於 Windows 10 如何啟用 Ubuntu bash,Google 可以找到很多說明,但是關於如何進階到跑 Ubuntu 下的 X-Windows App,也找的到,但沒有中文說明,所以我筆記一下供大家玩看看。

很簡單,只要下載 VCXSRV 就好了,網址如下

https://sourceforge.net/projects/vcxsrv/

下載安裝後,只要執行 VcXsrv,如下圖,會建立一個可以讓 Bash 可以傳畫面的管道

VcXsrv

這時候,只要在 Bash 下,如下方式執行任何 GUI 程式,例如 firefox,可以這麼個執行

export DISPLAY=:0
firefox

接著就真的出現一個新的獨立視窗 Firefox

win10-ubuntu-firefox

這圖左邊真的是 Linux 版 Firefox,看網頁上面是不是 ubuntu 版的 Google ? 證明我沒唬爛

但我試過中文網頁是亂碼,因為我沒有裝中文字形,也不知道 ubuntu 下怎麼裝才對,反正只是試試看 GUI 能不能跑。而其他的部分我試過了,把一些問題解決法分享一下:

  • ssh-server,php5,mysql,  apache, nginx : 確定都能跑,真的是 ubuntu 原生版本,但若要拿來開發測試,原本 Windows 上若也有跑 apache 或 mysql 則一定要關閉,因為會用到相同 port,所以證明了這個子系統並非虛擬化
  • ping : 這道命令不能跑,會出現權限問題,解決方法是,必須要用系統管理者權限來執行 Ubuntu Bash,反正以後都用系統管理者來跑就比較沒問題。
  • 與一般 ubuntu 不同,沒有開機關機的概念,他就是 Bash,所以沒有辦法做到開了 Bash 後就自動啟用一拖拉庫Service,若要當作網站開發測試,最好自行寫個啟動的 script 存放在 /root 下,這樣方便啟用自己想要用的服務,怎麼啟用服務都和 ubuntu一樣,service xxxx start。
  • 這個子系統有完整的 ubuntu 目錄結構與權限,為了達到 Windows 的檔案也能讓 子系統存取,所有 Windows 磁碟機都會在 /mnt/ 下可以找到,例如 /mnt/c 代表 C: 槽,所以開發網站的時候挺方便的,也不用傳來傳去了,就路徑指對就行了,這樣子開發的網站可以說幾乎和真正的 Linux 運作環境是一樣的。
  • 有些命令目前還真的不能跑,如 ifconfig,netstat 會列不出來,其實也更可以證明,這真的不是虛擬機,因為關於網路的檔案 /proc/net 下的檔案少的可憐,哈哈,真希望微軟都給他模擬出來,這樣就可用來開發很多系統程式了。

1 則評論在 Windows 10 版本1607 如何跑Ubuntu 子系統的 X-Windows App 筆記.

  1. Windows 最愛買小雞來劏,先有icq,後有Skype,搞到java變了Sun MicroSoft Java,自從Ubuntu從我用了十年,唔使再用什麼病毒軟件,現在踩入抄襲Ubuntu還是應用開源分享……,真令人噴飯擔心。

發佈留言