1. 程式人生 > >在ubuntu下用wine執行ie

在ubuntu下用wine執行ie

2010-10-28

周海漢2010.10.28

有時使用者需在linux下測試ie的網頁表現,或者用某些和ie繫結很緊密的網頁和功能。最乾脆的方法是用虛擬機器裝windows或切換到windows,然而wine也是一種解決方案。 在我試用時,發現wine下執行windows程式一直不太順利。

我的系統:

[email protected]:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.1 LTS"

預設用apt安裝的wine版本 1.2穩定版。 執行植物大戰殭屍可以,但漢化版的按鈕看不見中文。 執行ie則直接報錯,看到一個空白框,然後彈出一個出錯對話方塊。

出錯資訊:

[email protected]:~$ env WINEPREFIX=/home/zhouhh/.wine/ wine "C:Program FilesInternet Exploreriexplore.exe"
fixme:ole:CoResumeClassObjects stub
fixme:urlmon:URLMoniker_BindToObject use running object table
fixme:shdocvw:BindStatusCallback_OnProgress status code 1
fixme:shdocvw:BindStatusCallback_OnProgress status code 2
fixme:shdocvw:BindStatusCallback_OnProgress status code 11
fixme:msvcrt:_setmbcp trail bytes data not available for DBCS codepage 0 - assuming all bytes
fixme:system:SetProcessDPIAware stub!
fixme:dwmapi:DwmIsCompositionEnabled 0x32e914
fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (9800012c)
fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (9800012c)
fixme:iphlpapi:NotifyAddrChange (Handle 0x21fe8d8, overlapped 0x21fe8e0): stub
0[13e5a0]: IMM32: InitKeyboardLayout, aKeyboardLayout=e0010804, sCodePage=936, sIMEProperty=00090000
fixme:shdocvw:ClOleCommandTarget_QueryStatus (0x130eb4)->((null) 1 0x32f04c (nil))
fixme:shdocvw:ClOleCommandTarget_QueryStatus command_0: 27, 0x0
fixme:shdocvw:ClOleCommandTarget_Exec Unimplemented cmdid 25
fixme:shdocvw:ClOleCommandTarget_Exec Unimplemented cmdid 26
fixme:shdocvw:ClOleCommandTarget_Exec Unimplemented group {000214d1-0000-0000-c000-000000000046}
fixme:mshtml:nsHttpChannelInternal_SetDocumentURI (0x2409300)->()
fixme:shdocvw:ClientSite_GetContainer (0x130eb4)->(0x32f01c)
fixme:shdocvw:ClOleCommandTarget_Exec Unimplemented group {000214d1-0000-0000-c000-000000000046}
fixme:wininet:InternetLockRequestFile STUB
fixme:mshtml:nsChannel_GetRequestHeader (0x2409300)->(0x32db70 0x240fd7c)
fixme:mshtml:nsChannel_GetRequestMethod (0x2409300)->(0x32dd30)
fixme:mshtml:nsURI_GetHostPort default action not implemented
fixme:mshtml:nsChannel_GetReferrer (0x2409300)->(0x32e250)
fixme:mshtml:nsChannel_IsNoStoreResponse (0x2409300)->(0x32e13c)
fixme:mshtml:nsChannel_IsNoCacheResponse (0x2409300)->(0x32e138)
fixme:mshtml:nsChannel_GetReferrer (0x2409300)->(0x32e290)
fixme:mshtml:nsChannel_SetResponseHeader (0x2409300)->(0x32e390 0x32e210 1)
fixme:mshtml:nsChannel_SetResponseHeader (0x2409300)->(0x32e390 0x32e210 1)
fixme:mshtml:nsChannel_SetResponseHeader (0x2409300)->(0x32e390 0x32e210 1)
fixme:mshtml:nsChannel_SetRequestHeader (0x2424508)->(0x32df40 0x32dfd0 0)
fixme:mshtml:nsChannel_SetReferrer (0x2424508)->(0x2410248)
fixme:shdocvw:ClOleCommandTarget_Exec Unimplemented cmdid 29
fixme:shdocvw:DocHostUIHandler_GetDropTarget (0x130eb4)
fixme:mshtml:HttpNegotiate_GetRootSecurityId (0x2424628)->(0x32f0fc 0x32f0e8 0)
fixme:shdocvw:ClientSite_GetContainer (0x130eb4)->(0x32f9cc)
fixme:shdocvw:InPlaceFrame_SetStatusText (0x130eb4)->((null))
fixme:shdocvw:ClOleCommandTarget_Exec Unimplemented cmdid 25
fixme:shdocvw:ClOleCommandTarget_Exec Unimplemented cmdid 26
fixme:shdocvw:ClOleCommandTarget_Exec Unimplemented cmdid 21
fixme:shdocvw:ClOleCommandTarget_Exec Unimplemented cmdid 28
fixme:wininet:InternetLockRequestFile STUB
fixme:mshtml:nsChannel_SetRequestHeader (0x135998)->(0x32f0a0 0x32f0b0 0)
fixme:mshtml:nsChannel_SetReferrer (0x135998)->(0x2410248)
fixme:mshtml:HttpNegotiate_GetRootSecurityId (0x2407030)->(0x32f46c 0x32f458 0)
fixme:mshtml:nsChannel_SetRequestHeader (0x137eb8)->(0x32f7c0 0x32f7d0 0)
fixme:mshtml:nsChannel_SetReferrer (0x137eb8)->(0x2410248)
fixme:mshtml:nsChannel_SetRequestHeader (0x2406470)->(0x32f6d0 0x2381fe4 0)
fixme:mshtml:nsHttpChannelInternal_SetDocumentURI (0x2406470)->()
fixme:mshtml:nsChannel_SetReferrer (0x2406470)->(0x2410248)
fixme:mshtml:nsChannel_SetRequestHeader (0x136448)->(0x32f6d0 0x2381fe4 0)
fixme:mshtml:nsHttpChannelInternal_SetDocumentURI (0x136448)->()
fixme:mshtml:nsChannel_SetReferrer (0x136448)->(0x2410248)
fixme:mshtml:nsChannel_Open (0x1ea038)->(0x32cbc0)
fixme:mshtml:nsChannel_SetRequestHeader (0x1368c8)->(0x32f7c0 0x32f7d0 0)
fixme:mshtml:nsChannel_SetReferrer (0x1368c8)->(0x2410248)
fixme:mshtml:nsChannel_SetRequestHeader (0x1eaa08)->(0x32f6d0 0x2381fe4 0)
fixme:mshtml:nsHttpChannelInternal_SetDocumentURI (0x1eaa08)->()
fixme:mshtml:nsChannel_SetReferrer (0x1eaa08)->(0x2410248)
fixme:mshtml:HttpNegotiate_GetRootSecurityId (0x2406308)->(0x32f0fc 0x32f0e8 0)
fixme:mshtml:HttpNegotiate_GetRootSecurityId (0x136180)->(0x32f0fc 0x32f0e8 0)
fixme:mshtml:HttpNegotiate_GetRootSecurityId (0x136780)->(0x32f0fc 0x32f0e8 0)
fixme:mshtml:HttpNegotiate_GetRootSecurityId (0x1ea870)->(0x32f0fc 0x32f0e8 0)
fixme:mshtml:HttpNegotiate_GetRootSecurityId (0x1d0648)->(0x32f0fc 0x32f0e8 0)
fixme:wininet:InternetLockRequestFile STUB
fixme:mshtml:nsChannel_GetContentLength (0x1368c8)->(0x32ebf8)
fixme:wininet:InternetLockRequestFile STUB
fixme:mshtml:nsChannel_GetContentLength (0x135998)->(0x32ebf8)
fixme:wininet:InternetLockRequestFile STUB
fixme:mshtml:nsChannel_IsNoStoreResponse (0x2406470)->(0x32ea68)
fixme:mshtml:nsChannel_IsNoCacheResponse (0x2406470)->(0x32ea68)
fixme:resource:GetGuiResources (0xffffffff,0): stub
fixme:wininet:InternetLockRequestFile STUB
fixme:mshtml:nsChannel_GetContentLength (0x137eb8)->(0x32ebf8)
fixme:wininet:InternetLockRequestFile STUB
fixme:mshtml:nsChannel_IsNoStoreResponse (0x136448)->(0x32ea68)
fixme:mshtml:nsChannel_IsNoCacheResponse (0x136448)->(0x32ea68)
fixme:wininet:InternetLockRequestFile STUB
fixme:mshtml:nsChannel_IsNoStoreResponse (0x1eaa08)->(0x32ea68)
fixme:mshtml:nsChannel_IsNoCacheResponse (0x1eaa08)->(0x32ea68)
fixme:mshtml:nsURI_GetUserPass default action not implemented
fixme:mshtml:nsChannel_SetRequestHeader (0x242f300)->(0x32eb20 0x2381fe4 0)
fixme:mshtml:nsHttpChannelInternal_SetDocumentURI (0x242f300)->()
fixme:mshtml:nsChannel_SetReferrer (0x242f300)->(0x2423ea8)
fixme:mshtml:nsURI_GetUserPass default action not implemented
fixme:mshtml:nsURI_GetUserPass default action not implemented
fixme:mshtml:nsURL_GetQuery default action not implemented
fixme:mshtml:nsURI_GetOriginCharset default action not implemented
fixme:mshtml:nsChannel_SetRequestHeader (0x2552578)->(0x32e790 0x2381fe4 0)
fixme:mshtml:nsHttpChannelInternal_SetDocumentURI (0x2552578)->()
fixme:mshtml:nsChannel_SetReferrer (0x2552578)->(0x2423ea8)
fixme:mshtml:nsChannel_SetRequestHeader (0x2552160)->(0x32e790 0x2381fe4 0)
fixme:mshtml:nsHttpChannelInternal_SetDocumentURI (0x2552160)->()
fixme:mshtml:nsChannel_SetReferrer (0x2552160)->(0x2423ea8)
fixme:mshtml:nsChannel_SetRequestHeader (0x254d8d0)->(0x32d450 0x2381fe4 0)
fixme:mshtml:nsHttpChannelInternal_SetDocumentURI (0x254d8d0)->()
fixme:mshtml:nsChannel_SetReferrer (0x254d8d0)->(0x2423ea8)
fixme:mshtml:HttpNegotiate_GetRootSecurityId (0x242f660)->(0x32f0fc 0x32f0e8 0)
fixme:mshtml:HttpNegotiate_GetRootSecurityId (0x25527e8)->(0x32f0fc 0x32f0e8 0)
fixme:mshtml:HttpNegotiate_GetRootSecurityId (0x2550398)->(0x32f0fc 0x32f0e8 0)
fixme:mshtml:HttpNegotiate_GetRootSecurityId (0x254ba50)->(0x32f0fc 0x32f0e8 0)
fixme:shdocvw:ClOleCommandTarget_Exec Unimplemented group {000214d0-0000-0000-c000-000000000046}
fixme:shdocvw:PropertyNotifySink_OnChanged unimplemented dispid 1005
fixme:shdocvw:ClOleCommandTarget_Exec Unimplemented group {000214d0-0000-0000-c000-000000000046}
fixme:mshtml:nsChannel_SetRequestHeader (0x2bcb548)->(0x32e994 0x2381fe4 0)
fixme:mshtml:nsHttpChannelInternal_SetDocumentURI (0x2bcb548)->()
fixme:mshtml:nsChannel_SetReferrer (0x2bcb548)->(0x2410248)
wine: Unhandled page fault on write access to 0x49001100 at address 0x253a6e1 (thread 002b), starting debugger...
Unhandled exception: page fault on write access to 0x49001100 in 32-bit code (0x0253a6e1).

說明wine1.2 很不好用。但預設的ubuntu10.04 apt只能安裝wine1.2. 如果安裝最新的wine1.3會不會解決ie問題呢? 安裝wine 1.3非穩定版本: 先新增wine的軟體源:系統->系統管理->軟體源。在“其他軟體”頁面點新增,輸入: ppa:ubuntu-wine/ppa 點確定。 ppa是Personal Package Archives 個人軟體包檔案, Personal Package Archives(個人軟體包檔案)是Ubuntu Launchpad網站提供的一項服務,允許個人使用者上傳軟體原始碼,通過Launchpad進行編譯併發布為2進位制軟體包,作為apt/新立得源供其他使用者下載和更新。在Launchpad網站上的每一個使用者和團隊都可以擁有一個或多個PPA。 關閉時提示更新。然後可以用sudo apt-get install wine1.3安裝,或者用

點選安裝

安裝完畢,wine ie已經可以執行。但瀏覽某些中文網站還是會崩潰。

也可以安裝ies4linux,但我沒有裝成功。

wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
tar zxvf ies4linux-latest.tar.gz
cd ies4linux-*
./ies4linux

點高階: 但安裝過程中報錯:

[email protected]:~/ies4linux-2.99.0.1$ ./ies4linux
IEs4Linux 2 is developed to be used with recent Wine versions (0.9.x). It seems that you are using an old version. It's recommended that you update your wine to the latest version (Go to: winehq.com).

grep: : 沒有那個檔案或目錄
python: ../../src/xcb_io.c:249:process_responses: 斷言“(((long) (dpy->last_request_read) - (long) (dpy->request)) <= 0)”失敗。
ui/pygtk/python-gtk.sh: line 6:  4655 已放棄               python "$IES4LINUX"/ui/pygtk/ies4linux-gtk.py

參考 http://www.tatanka.com.br/ies4linux/page/Installation  

http://www.winehq.org/download/deb https://launchpad.net/~ubuntu-wine/+archive/ppa

如非註明轉載, 均為原創. 本站遵循知識共享CC協議,轉載請註明來源