虛擬機器 Bye!直接在 OS X 上執行 Windows 的程式

by 10月 13, 2015 2 意見        

什麼?! 這怎麼可能 ......
Windows 跟 OS X 根本就是兩個完全不一樣的平台,怎麼可能辦得到 !!!
而且還不是用虛擬機器當底層,那就更不可能了......
最後更新日期 - 2015/11/03

特別注意:
因為 OS X 10.11 El Capitan 的 SIP (System Integrity Protection) 功能,針對許多系統目錄進行更嚴格的管制,本篇的實作無法正常執行!

可以參閱 可丁丹尼@一路往前走 - 關閉 OSX 10.11 SIP (System Integrity Protection) 功能 的步驟,手動將 SIP 功能關閉


其實會注意到這個,是因為我想要在 Mac 上面執行 RouterOS 的管理程式 - Winbox。

在 MikroTik 官網上面只看得到 Windows 版的 Winbox,完全沒有 for Mac 的版本。


MikroTik Wiki 裡找找,才看到了 MacOS 的字眼,以及「using WineBottler software to package the application together with Wine」的說明。

直接下載 Wiki 提供的 Mac 版本 Winbox

解壓縮之後,就可以看到 WinBox.app 這支 Mac App。


有些朋友一看到關鍵字,應該馬上就知道是用什麼來實作的。是的,沒錯! 就是 Wine。

等等~~~~ 不是啦! 是這個 WINE 才對 ...... XD

WINE 簡單的說,就是用來讓我們在 Unix Like 系統裡執行 Windows 程式,而 OS X 也是 Unix Like 系統的一種,所以當然拿來使用囉,更詳細的資料請參閱 WineHQ - About Wine

拜它所賜,我們可以不用為了一支小程式,而不得不在 Mac 上用 BootCamp 安裝 Windows,或是用 VirtualBox、VMWare、Parallel Desktop 搞一台虛擬機出來,請參閱 Oracle VM VirtualBox 虛擬機器的安裝與使用


安裝


根據 WINE Wiki 的資料,官方並沒有編譯 Mac 的版本,如果不打算自己動手的話,可以透過其他第三方的組織編譯的版本,如 WineBottlerWineskinPlayOnMac ...... 等。



這次我們就先跟著 MikroTik 一樣使用 WineBottler 來實作吧。

由於我的 Mac 已經升級到 OS X 10.11 El Capitan,所以下載目前最新的 1.7.37 Development 才可以。

下載完成之後,掛載這個 DMG 檔。

裡面有四個檔案,依照 Mac App 的標準安裝方式,我們只要把 Wine.app 及 WineBottler.app 拉進「應用程式」目錄,就完成安裝了。


打包


執行 WineBottler。

不知是因為 El Capitan 的緣故,還是因為還是開發中的關係,三個頁籤的圖示被截斷了,不過這並不影響執行。
  1. Download
  2. On My Mac
  3. Advanced

Download 頁籤提供一些官方已經處理好的 Windows 程式,共分為下列七個分類:
  1. 瀏覽器
  2. 商務應用
  3. 多媒體
  4. 遊戲
  5. 科學或教育
  6. 工具
  7. 程式開發

On My Mac 頁籤顯示已經安裝在本機的 App。

Advanced 頁籤則是讓我們自己手動調整設定,打包自己的 Windows Software for Mac。

點選「Program Installation」段落後面的「select File...」按鈕,找到我們要執行的 Winbox.exe

因為 Winbox 只有單獨的一支執行檔,所以選擇「This is the program, copy it to Apple Bundle.」。

Winbox 也不需要調整其他選項,所以我們保留預設值,直接點選「Install」按鈕。

接著,指定檔案名稱與儲存目錄。

開始打包之後得稍等一下下......

出現「Prefix created successfully.」的訊息代表打包完畢。

我們可以在剛剛指定的儲存目錄,找到我們打包完成的檔案。

最後,把這個檔案放到「應用程式」目錄裡,就完成安裝了。


執行


既然是一支標準的 Mac App,那當然就直接來執行它。

的確可以把 Windows 的程式,正確的拿來執行了。


那 ...... 我們再試一支小程式,就拿 PieTTY 這支 SSH 連線程式來實測吧。

同樣開始打包。



PieTTY 的確也可以正常的在 Mac 上執行了。

還有一個更好的應用,就是很多 IE only 的網頁,我們本來沒有辦法直接在 Mac 上執行 Microsoft Internet Explorer,透過 WineBottler 的打包之後,這個問題也就迎刃而解了。



缺點


看了 Winbox 跟 PieTTY 的例子,是不是心動了呢?!

但是,這個方法有兩個先天的致命傷。
  1. 因為是透過 WINE 而不是原生的,所以非常有可能會出現不相容或執行異常的問題,這個部份也就只能賭人品了。
    WINE Application Database 的記錄中,已經有 22659 支程式的資料,我們要執行使用這個方法之前,可以先來查詢一下。
  2. 使用 WineBottler 除了程式相容性的問題之外,還有個致命的缺點.....,就是

    容 量 會 爆 增 ~~~~

就拿 Winbox 來說,原本只有 1.6 MB 的小檔案,居然活生生變成 314 MB 的大怪物,PieTTY 本來只有 631KB,也變成了 312 MB。

為了在 Mac 上面執行,必須浪費這麼多空間,還是看情況斟酌著用吧 ......

雖然我們只有實驗這兩套免安裝的 Windows 程式,其實 WinBottler 還可以把需要安裝的程式打包後在 Mac 上安裝並執行,這部份因為我暫時用不到,所以就有待其他勇者來測試了.... ^_^

如果打算直接在 Mac 上用 WINE 而不想透過 WineBottler 的話,請參閱 linfan's blog - 使用Wine在Mac OS X中运行Windows程序 的內容。


參考資料


圖片來源

  • http://evolvefitnessandcoaching.com/

更新紀錄

  • 2015/10/13 撰文。
  • 2015/11/03 - 加註 OS X 10.11 El Capitan 的無法執行的警語。

Heracles Jam,江湖人稱「海公公」

IT 技術家 - 創站部落客

一個常用 Windows、慣用 macOS、愛用 Linux 的 3C 阿宅
現職 MIS / 業界講師 / 資訊顧問 / 部落客

2 則留言 :

  1. 您好:在包裝中文程式後,軟體介面變成了亂碼,請問有辦法解決嗎?

    回覆刪除
  2. 我是菜鳥,剛用mac mini2009年初的玩玩,順便也可學習,系統是10.10.5從這大大的blog學習很多,怕你見笑了,謝謝

    回覆刪除