[Mac] 使用 Wine 安裝 WinRAR 來開啟壓縮檔
最近在 Mac 上裝了 Wine 之後,發現確實有好用之處,
可以直接玩 Windows 上的小遊戲、執行簡單的 VBScript,
今天又發現另一個用途:執行 WinRAR 之類需要安裝的程式~
當然網路上也有人製作 WinRAR 的免安裝版本,
不過總是有機會用 Wine 執行需要安裝的程式,因此就拿 WinRAR 來舉例吧~
參考資料:
HowTo: Easily Launch Programs Installed In Wine
Uninstall a program installed with Wine
Advanced Bash-Scripting Guide: Parameter Substitution
1. 下載 WinRAR 安裝檔
到 WinRAR 的官網下載安裝檔,記得要選擇 32-bit 的版本,
因為 Wine 要直接跑 64-bit 的程式會失敗 (應該有解法,但我懶得試了)~
像我抓下來的是 wrar53b6.exe~
2. 使用 Wine 安裝 WinRAR
執行下列的指令,開始安裝 WinRAR:
wine wrar53b6.exe
接著就會看到在 Windows 上熟悉的 WinRAR 安裝畫面~把它安裝完成吧:
3. 執行/移除安裝好的 WinRAR
安裝程式結束後,自動跳出了一個 Wine Explorer,
有點像是用 Windows 的檔案總管開啟了 WinRAR 在 Start Menu 裡的目錄:
直接雙擊 WinRAR 那個檔案,就能執行 WinRAR 囉:
要移除安裝好的 WinRAR 也很簡單,執行下列的指令:
wine uninstaller
就會跳出一個 Add/Remove Programs 的程式,這邊就能移除掉安裝的程式了:
以上是用 Wine 安裝/移除程式的簡單說明~
回到我自己遇到的一個問題:我想在 Mac 上,用 WinRAR 打開一個指定的壓縮檔,怎麼做呢?
假設壓縮檔是在 ~/test.zip 好了,我一開始是這麼執行:
wine "C:\\Program Files\\WinRAR\\WinRAR.exe" ~/test.zip
這時就跳出了一個錯誤視窗,看起來是找不到我指定的 ~/test.zip:
如果指定的是當前目錄下的 test.zip、或是 xxx/test.zip 都可以成功,也就是說相對路徑是 OK 的,
但如果給的是像 /Users/testuser/test.zip 這種絕對路徑 (~/test.zip 也是轉化成這種路徑),
Wine 執行的 WinRAR 就會跳出錯誤訊息…
觀察了一下,我的 Mac 上的 Wine 似乎是將 Mac 的 / 對應到 Wine 裡面的 Z:\,
所以如果想讀 Mac 上的 /Users/testuser/test.zip,
在 Wine 裡面應該要讀 Z:\Users\testuser\test.zip…
不過其實不用辛苦地自己轉換,Wine 就自己帶了一個 winepath 作同樣的事情,
像是執行 winepath -w <unix path> 就能將 Mac/Unix 上的路徑轉成 Wine 裡的 Windows 路徑~
因此我在我的 ~/.bash_profile 裡面,寫了一個 winrar() 的函式,
函式如下,只要執行 winrar ~/test.zip,就會自動用 winepath 轉出正確的 Windows 路徑,
再用 Wine 把 WinRAR 叫起來去開那個 Windows 路徑:
winrar() { wine "C:\\Program Files\\WinRAR\\WinRAR.exe" "$(winepath -w "$1")" }
後記:最近發現 Wine 在跑某些 Windows 程式相當好用,
就不用每次非得去開 Windows 虛擬機器了~
因此 Wine FAQ 雖然非常的落落長,不過還是蠻值得看一下的~
之後再多用 Wine 看看~^^