2007-05-01 23:52 當OSSACC Live(Ubuntu 6.06 Desktop)遇上IE
一、什麼是wine ?? 和這回主題的關係是什麼?
wine
也正因為wine有這樣的妙用,才讓原本專屬於Windows下的東東,可以「跨平台」喔!
這也讓我們能提出Linux下面對「IE Only」網頁的解決方案!
那就是讓IE的網頁回歸IE去處理!
或許有人會說......Windows下的Firefox下不是有個「IE Tab」的Plugin可以解決這種問題?
呵......Windows下可以這樣玩沒錯,那是因為IE Tab可以去呼叫IE的核心進來給Firefox處理。不過,這招在Linux底下無效喔!
OK......廢話不多說,我們就看看OSSACC Live這個版本,該如何安裝wine,讓它能搞定「IE Only」的網頁吧!
二、OSSACC Live( Ubuntu 6.06 Desktop 中文加強版 )安裝實作:
1.開機進到圖形介面之後,滑鼠點選「應用程式」--> 「附屬應用程式」 --> 「終端機」,把GNOME終端機開起來!

2.安裝「wine」和「cabextract」套件。需在GNOME終端機執行如下的指令:
$ sudo apt-get install wine cabextract
3.下載「ies4linux」,在GNOME終端機執行如下的指令:
$ wget
http://www.tatanka.com.br/ies4linux/downloads/ies4linux-2.0beta8.tar.gz
4.解壓縮所下載的Source。Sam會習慣先建立一個「src」資料夾,再建立其目錄後,解壓縮處理之!一樣在GNOME終端機去執行如下的指令喔!
$ mkdir src/ies4linux
$ mv ies4linux-2.0beta8.tar.gz src/ies4linux
$ tar -zvxf src/ie4linux/ie4linux-2.0beta8.tar.gz
5.執行「ie4linux」指令。別用root身份執行喔!那會造成錯誤!:)
$ cd src/ie4linux/ie4linux-2.0beta8
$ ./ies4linux
之後......安裝scripts會問一些問題......照如下所示去選擇即可(注意藍字的地方)!
IE 6 will be installed automatically.
Do you want to install IE 5.5 SP2 too? [ y | n ] n
And do you want to install IE 5.01 SP2? [ y | n ] n
IEs can be installed using one of the following locales:
EN-US PT-BR DE FR ES IT PT HU RU NL SV
JA KO NO DA CN TW FI PL AR HE CS EL TR
Default is EN-US. Hit enter to keep it or choose a different one:
TW
By default, I will install everything at /home/samchen/.ies4linux
I will also install Flash 8 plugin and create Desktop shortcuts.
Is that ok for you? (To configure advanced options type n) [ y | n ] y
All right! Let's start the installations...
接著......它安裝完成後,可能會開起來一個怪怪的IE視窗(如下圖,那是字型沒有沒有調整完成的關係)......別理它!把它關掉就是囉!:)

6.修改「win.ini」(完整檔案路徑為:~/.ies4linux/ie6/drive_c/windows/win.ini)檔案,將字型修正到能正確顯示。可利用vi編輯器或其他文字編輯器(Ex. 附屬應用程式中的「文字編輯器」)處理之。要修正的內容如下所示:
[Desktop]
menufontsize=13
messagefontsize=13
statusfontsize=13
IconTitleSize=13
嗯......假設你比較喜歡用vi的話,那在GNOME終端機中......

接著,把要修改的內容增加於原本檔案末端即可:

OK......編輯完成後,就可以存檔離開囉!
7.重新啟動IE,這時,桌面上應該會有個IE圖示,用滑鼠去連按兩下該圖示,應該就能看到IE的畫面囉!:)

呵~~這下,就上遇上「IE Only」的網頁,也不用擔心無法開啟囉!
三、其他運用?
當然,功能強大的wine,不只是開開IE而已囉!除了要用上DirectX的遊戲可能不太能動外,大概有70%左右的Windows應用程式,都能透過wine去執行喔!從wine官方網站的圖片來看,像MS-office這種大型程式都能執行哩!
有興趣的人,不妨自行研究,試著安裝看看吧! :)
參考資料:sshlog,網址:http://blog.ssh.tw/?p=218
2007/5/31更新:
上面提到的是舊版本的安裝方法。然而,軟體會更新,ies4linux當然也會把舊版的Bug修掉。
不過,新版(ies4linux-2.5beta6)的下載部份似乎有些問題......
那怎麼辦呢?
總不可能要自己手動下載吧?!
於是......我們在它的安裝scripts上動動手腳......
OK,先用任何文字編輯器把原始碼解壓縮後目錄下的「 lib / install.sh 」開起來,然後修改成如下的樣子:
===========================================================
# Download module #############################################################
# Download all files first
###########
# IE6 MS Downloads
URL_IE6_CABS=http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP
IE6_CABS="ADVAUTH CRLUPD HHUPD IEDOM IE_S1 IE_S2 IE_S5 IE_S4 IE_S3 IE_S6 SCR56EN SETUPW95 FONTCORE FONTSUP VGX "
# other cabs BRANDING GSETUP95 IEEXINST IE_EXTRA README SWFLASH
# FUNCTIONS
###########
download() {
local URL=$1
local FILENAME=$(echo $URL | sed -e "s/.*///")
local DIR=$(echo $URL | grep $URL_IE6_CABS | sed -e "s/.*W98NT42KMeXP//ie6//;s//[^/]*$///")
subsection $FILENAME
# SCR56EN is always downloaded from EN-US
[ "$FILENAME" = "SCR56EN.CAB" ] && URL=$URL_IE6_CABS/EN-US/SCR56EN.CAB
# If file does not exist, remove it from 'files'
[ ! -f "$DOWNLOADDIR/$DIR$FILENAME" ] && {
grep -v "$DIR$FILENAME" "$DOWNLOADDIR/files" > "$DOWNLOADDIR/files2"
mv "$DOWNLOADDIR/files2" "$DOWNLOADDIR/files"
}
# Download file
if ! cat "$DOWNLOADDIR/files" | grep $DIR$FILENAME &> /dev/null ; then
# If flash, we have to 'ping' their home page first
# [ "$FILENAME" = "swflash.cab" ] && {
# wget $WGETFLAGS "http://www.macromedia.com/software/flashplayer" -O /dev/null
# }
# Try to download the file
if wget -c $URL $WGETFLAGS -O "$DOWNLOADDIR/$DIR$FILENAME"; then
echo $DIR$FILENAME >> "$DOWNLOADDIR/files"
else
return 1
fi
fi
}
downloadEvolt() {
local EVOLT_MIRROR1=http://www.mirrorservice.org/sites/browsers.evolt.org/browsers
local EVOLT_MIRROR2=http://planetmirror.com/pub/browsers
local EVOLT_MIRROR3=http://download.mirror.ac.uk/mirror/ftp.evolt.org
if ! download $EVOLT_MIRROR1/$1 ; then
if ! download $EVOLT_MIRROR2/$1 ; then
if ! download $EVOLT_MIRROR3/$1 ; then
error Could not find a suitable Evolt mirror
exit
fi
fi
fi
}
# CODE
######
section $MSG_DOWNLOADING
mkdir -p "$DOWNLOADDIR"
touch "$DOWNLOADDIR/files"
# Default downloads
download http://download.microsoft.com/download/d/1/3/d13cd456-f0cf-4fb2-a17f-20afc79f8a51/DCOM98.EXE
download http://activex.microsoft.com/controls/vc/mfc40.cab
download http://download.microsoft.com/download/win98SE/Update/5072/W98/EN-US/249973USA8.exe
[ "$INSTALLIE6" = "1" ] && {
mkdir -p "$DOWNLOADDIR/ie6/$IE6_LOCALE"
for cab in $IE6_CABS; do
download "$URL_IE6_CABS/$IE6_LOCALE/$cab.CAB"
done
}
[ "$INSTALLIE55" = "1" ] && downloadEvolt ie/32bit/standalone/ie55sp2_9x.zip
[ "$INSTALLIE5" = "1" ] && downloadEvolt ie/32bit/standalone/ie501sp2_9x.zip
[ "$INSTALLFLASH" = "1" ] && {
download "http://download.macromedia.com/get/shockwave/cabs/flash/swflash.cab" || error Cannot download flash
}
ok
# IE6 Installation module #####################################################
# IE6 Installation Process
if [ "$INSTALLIE6" = "1" ]; then
section $MSG_INSTALLING IE 6
else
section $MSG_INSTALLING IE
fi
subsection $MSG_INITIALIZING
DIR="$DOWNLOADDIR/ie6/$IE6_LOCALE/"
set_wine_prefix "$BASEDIR/ie6/"
rm -rf "$BASEDIR/ie6"
subsection $MSG_CREATING_PREFIX
wineprefixcreate &> /dev/null || {
wineprefixcreate
error $MSG_ERROR_NO_WINEPREFIXCREATE
}
# Discover Wine folders
DRIVEC=drive_c
WINDOWS=Windows
SYSTEM=system
SYSTEM32=System32
FONTS=Fonts
INF=Inf
if [ -d "$BASEDIR/ie6/fake_windows" ]; then DRIVEC=fake_windows; fi
if [ -d "$BASEDIR/ie6/$DRIVEC/windows" ]; then WINDOWS=windows; fi
if [ -d "$BASEDIR/ie6/$DRIVEC/$WINDOWS/system32" ]; then SYSTEM32=system32; fi
if [ -d "$BASEDIR/ie6/$DRIVEC/$WINDOWS/fonts" ]; then FONTS=fonts; fi
if [ -d "$BASEDIR/ie6/$DRIVEC/$WINDOWS/inf" ]; then INF=inf;fi
export DRIVEC WINDOWS SYSTEM FONTS INF
# symlinking system to system32
if [ -d "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM32" ]; then
rm -rf "$BASEDIR/ie6/$DRIVEC/$WINDOWS/"{S,s}ystem
cd "$BASEDIR/ie6/$DRIVEC/$WINDOWS/"
ln -s "$SYSTEM32" "system"
fi
subsection $MSG_EXTRACTING_CABS
cd "$BASEDIR/tmp"
extractCABs "$DIR"/{ADVAUTH,CRLUPD,HHUPD,IEDOM,IE_S*,SCR56EN,SETUPW95,VGX}.CAB
extractCABs ie_1.cab
rm -f *cab regsvr32.exe setup*
subsection $MSG_PROCESSING_INF
for i in *.inf; do
wine rundll32 setupapi.dll,InstallHinfSection DefaultInstall 128 ./$i
done
rm *hlp
subsection $MSG_INSTALLING IE 6
mv *.inf "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$INF/"
mv cscript.exe "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$COMMAND/"
mv wscript.exe "$BASEDIR/ie6/$DRIVEC/$WINDOWS/"
mv sch128c.dll "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/schannel.dll"
mkdir -p "$BASEDIR/ie6/$DRIVEC/Program Files/Internet Explorer"
mv iexplore.exe "$BASEDIR/ie6/$DRIVEC/Program Files/Internet Explorer/iexplore.exe"
mkdir -p "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/sfp/ie/"
mv vgx.cat "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/sfp/ie/"
mv -f * "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/"
subsection $MSG_INSTALLING_FONTS
extractCABs -F "*TTF" "$DIR"/FONT*CAB
mv *ttf "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$FONTS/"
subsection $MSG_INSTALLING RICHED20
extractCABs -F ver1200.exe "$DOWNLOADDIR/249973USA8.exe"
extractCABs "$BASEDIR/tmp/ver1200.exe"
wine rundll32 setupapi.dll,InstallHinfSection DefaultInstall 128 ./1200up.inf
mv *.inf "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$INF/"
rm -f *
subsection $MSG_INSTALLING ActiveX MFC40
extractCABs "$DOWNLOADDIR/mfc40.cab"
extractCABs mfc40.exe
wine rundll32 setupapi.dll,InstallHinfSection DefaultInstall 128 ./mfc40.inf
mv *.inf "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$INF/"
rm -f *
subsection $MSG_INSTALLING DCOM98
extractCABs -d "$BASEDIR/ie6/$DRIVEC/$WINDOWS/$SYSTEM/" "$DOWNLOADDIR/DCOM98.EXE"
wine rundll32 setupapi.dll,InstallHinfSection DefaultInstall 128 ./dcom98.inf
rm -f *
subsection $MSG_INSTALLING_REGISTRY
add_registry "$IES4LINUX"/winereg/ie6.reg
subsection $MSG_FINALIZING
createShortcuts ie6 6.0
chmod -R u+rwx "$BASEDIR/ie6"
clean_tmp
ok
===========================================================
也就是說,我們把新版的下載和安裝的scripts部份蓋掉成如上的內容,這樣一來,就可以成功下載和安裝了! ^0^Y
安裝時,一樣到原始碼的解壓縮目錄下去執行「$ ./ies4linux」指令安裝,然後,新版的程式會跑出圖形介面來勾選。
基本上,只要記得「locale」語系改成「TW」,其餘的用預設值即可按下「確定」安裝。
安裝過程完全傻瓜,讓scripts自己跑就好囉!
嗯......泡個茶或咖啡好好享受一下,等桌面上出現IE圖示時,就可以直接開啟IE來用喔(不需處理舊版的中文字型未修正就會顯示異常的問題)! ^^
P.S.此方式在Ubuntu 7.04上可以依樣畫葫蘆來安裝之!






