當OSSACC Live(Ubuntu 6.06 Desktop)遇上IE:超兩光的電腦工程師 >> 佑子窩:Xuite日誌
  • Sam
  • 喜歡貓,也喜歡狗,現在的工作,就是玩電腦!

    關於Sam,就在這部落格中,希望大家會喜歡這地方! ^^

    和Sam聯絡:phantom2431@hotmail.com 

  • 公益訊息
  • 動物認養資訊
    ────────────
  • 日曆
  • What time is it ??
  • 文章分類
  • 日誌使用資源






  • 如何使用RSS
    Powered by Xuite
  • 參觀人氣統計
  • Sam手機拍展
  • 手機拍照片展──京都流浪記

  • KISS音樂聯播
  • 留言塗鴉版
  • 部落格工具箱
  • 部落格聯播


    恭喜本站已經加入Palacan!啪啦罐頭聯播


    powered by 加入Only!-Radio

    Snap Shots

    Get Free Shots from Snap.com
    2007-05-01 23:52 當OSSACC Live(Ubuntu 6.06 Desktop)遇上IE
  • ?
  • OSSACC Live CD應用實戰
  • 好文轉寄
  • 平均分數:0 顆星    投票人數:0
    我要評分:
    標籤 : 


    一、什麼是wine ?? 和這回主題的關係是什麼?

    wine
    是一個相當特別的專案,它能夠讓Windows下的API在Linux的圖形介面下直接運行。也就是說,我們可以直接在Linux底下開啟Windows的應用程式!
    也正因為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上可以依樣畫葫蘆來安裝之!



    Sam / Xuite日誌 / 回應(2) / 引用(0) / 好文轉寄
  • 回應