Linux E X P R E S

Facebook

Internet Explorer pod Linuxem

Daniel Závodský neměl na výběr, musel prostě MSIE rozběhat.


Možná už jste se setkali s programem Wine. Jedná se o "emulátor" Windows. Není to pravý emulátor, protože pouze překládá systémová volání z Win32 API do formy srozumitelné pro Linux, neemuluje procesor počítače. Vývojáři Wine doporučují představit si jejich program jako určitou "vrstvu kompatibility" mezi programy pro Windows a prostředím Linuxu. Tímto se dá docílit téměř stejného výkonu při použití Wine jako při spouštění programu přímo pod Windows - na rozdíl od emulátorů, které jsou mnohdy velmi pomalé. Wine obsahuje také svobodnou implementaci nejpoužívanějších knihoven z tohoto operačního systému a i když autoři uvádějí, že se stále jedná o alfa verzi, funguje s její pomocí spousta programů. Mezi jinými i Internet Explorer.

Možná si kladete otázku, proč se kombinací Internet Explorer + Linux vůbec zabývat, když v dnešní době máme k dispozici tak mocné a svobodné prohlížeče, jako je Mozilla (z Mozilla Suite), Firefox nebo Konqueror. Prohlížečů webových stránek je samozřejmě mnohem víc - já například s oblibou používám Links. Stane se ale, že navštívím nějaké stránky a jsem nemile překvapen. Místo obsahu stránky vidím jenom nějaký nesmysl.

Obrázek: 1.jpg

Pak nezbývá nic jiného, než na pomalém notebooku spustit Firefox, jehož okno se na obrazovce objeví asi po půl minutě a vykreslení jednotlivých internetových stránek také zabere někdy i deset sekund. Může se ale stát, že ani Firefox některé stránky nezobrazí korektně. Konkrétně jsem se s tímto problémem setkal na stránkách jedné populární televize vysílající v této zemi. Je to zarážející, ale někteří vývojáři internetových stránek stále ignorují vzrůstající podíl svobodných prohlížečů na trhu. Na druhou stranu, viděl jsem i stránky, které byly nefunkční v Internet Exploreru a v Mozille fungovaly - nicméně jejich autor se právě tímto na svých stránkách chlubil.

Než přejdeme k samotné instalaci, chtěl bych se ještě zmínit o licenčních omezeních. Jak už to ve světě komerčního softwaru chodí, spolu s koupí programu si koupíte také licenci, která omezuje vaše práva. Internet Explorer je v podstatě součástí operačního systému Microsoft Windows a jeho licence vyžaduje, abyste vlastnili také licenci pro tento operační systém. Nainstalovaný jej sice mít nemusíte, ale tuto licenci je potřeba mít pro každý případ "po ruce". Funkční instalaci Wine je možné získat několika způsoby: instalací z distribuce, instalací nočního buildu přímo od týmu Wine, nebo kompilací zdrojového kódu (měsíční release, noční CVS snapshot nebo přímo z CVS). Jestli používáte distribuci, která je více než půl roku stará, doporučil bych kompilaci nejnovějšího měsíčního "release" balíčku. Wine se vyvíjí velmi dynamicky a každý měsíc přibývají nové funkce. Pro náš účel to ale úplně nezbytné není, protože Internet Explorer funguje ve Wine už docela dlouho - zkuste verzi z distribuce a v případě, že to nebude fungovat, si stáhněte tu nejnovější ze stránek www.winehq.org.

Obrázek: 2.jpg

Jelikož používám Gentoo, v mém případě stačilo pouze zadat emerge wine. Kompilace Wine trvá na mých počítačích tak hodinu až dvě, na novějších počítačích (P4, Athlon XP) to zabere zřejmě méně než polovinu tohoto času. Nastavováním Wine se nebudeme zabývat, protože to pro náš účel ani není potřebné (kromě jedné výjimky, o které se ještě zmíním níže). Stáhněte si ale skript ies4linux, který celou instalaci Internet Exploreru prakticky vyřeší za vás (viz odkazy). Před jeho spuštěním však už musíte mít nainstalované Wine a také Cabextract - ten by měl být součástí vaší distribuce.

Výše uvedený skript provádí "černou práci": stáhne požadovanou verzi Internet Exploreru určenou pro off-line redistribuci, připraví adresář s "falešnou" instalací Windows pomocí Wine, zapíše do tohoto adresáře také speciálně upravený konfigurační soubor pro Wine a rozbalí Internet Explorer pomocí už zmiňovaného programu Cabextract. Vytvoří také spustitelný skript v adresáři ~/bin, např. pro verzi Internet Explorer 6 je to "ie6". Ten pak stačí spustit a Internet Explorer se za okamžik rozjede!

Jsou však vývojáři stránek (a já doufám, že jich je většina!), kteří chtějí, aby jejich stránky fungovaly stejně dobře jak v Mozille tak v Exploreru a jiných prohlížečích, ale sami nepoužívají Windows, nebo se jim nechce pokaždé restartovat systém, když si chtějí výsledek své práce zkontrolovat. Při kompilaci Wine ze zdrojových souborů nezkoušejte přidávat vlastní optimalizační parametry pro GCC! I když se může stát, že vám Wine pak stejně bude fungovat, u mne v tomto případě Wine ihned po spuštění ukončilo svoji činnost (dokonce bez chybové hlášky).

V případě, že na počítači máte nainstalován také systém Windows a nechce se vám stahovat dalších 80 a víc megabajtů, můžete si nastavit Wine, aby používalo jako disk C: adresář, kam máte připojen Windows (např. /mnt/windows). Instalační skript pro Wine (v případě, že používáte zdrojový balíček) wineinstall vám po zkompilování a nainstalování Wine vytvoří v domovském adresáři také konfigurační soubory. Dokonce se vás i zeptá, jestli chcete použít stávající instalaci Windows, nebo vytvořit vlastní "falešnou". Konfigurační soubor nacházející se v adresáři ~/.wine je dobré projít a případně přepsat podle svých představ. Skript wineinstall se totiž stará pouze o nastavení systémových cest a nezabývá se například nastavením zobrazení, zvuku, fontů atd.

Tyto sekce v konfiguračním souboru mají sice dopad na výkon, vzhled a některé funkce aplikací spouštěných pod Wine, jejich nastavení není úplně nezbytné. Jediným háčkem v tomto případě může být nastavení sekce DLLOverrides. Jedná se o nastavení, které DLL knihovny se mají použít z projektu Wine a které z Windows. Jako vodítko by bylo dobré použít tato nastavení z balíčku ies4linux, protože nastavit tuto sekci bez jakýchkoliv dalších informací je značně problematické. Když jsem totiž asi před rokem zkusil spustit Internet Explorer pomocí této metody (bez dolaďování DLLOverrides) tak to šlo, ale po restartu do Windows jsem zjistil, že záhadně chybí značný počet systémových souborů (programy a dll). Proto doporučuji spíše volit bezpečnější variantu "falešné" instalace Windows.

Wine však má k úplné dokonalosti daleko a některé věci nefungují tak, jak by měly. Například při otevření menu s oblíbenými záložkami už se ho nedá zbavit. Také pokus načíst některé stránky končí neúspěchem - Explorer přestane reagovat a je nutné zabít Wine. Můžete se setkat ještě s jedním problémem, který se na rozdíl od těch předešlých dá vyřešit docela snadno. Mně se to stalo - na internetových stránkách se nezobrazovaly obrázky ve formátu PNG. Ve falešné instalaci není obsažena knihovna "pngfilt.dll". Tuto lze získat z funkční instalace Windows - stačí jí nakopírovat do podadresáře "system" falešné instalace Windows, která se nachází např. v adresáři ~/.ies4linux/ie6 (závisí na instalované verzi). Pak je potřeba knihovnu zaregistrovat, např. takto:

WINEPREFIX=$HOME/.ies4linux/ie6 \\
regsrv32 C:\\windows\\system\\pngfilt.dll

Celkově vzato Explorer funguje docela dobře a kupodivu celkem svižně. Správnou funkčnost Exploreru také potvrzuje značná přítomnost vyskakovacích oken na některých stránkách, nežádoucí spouštění Java skriptů a podobně. To jsou zážitky, po kterých příště budete spouštět svůj Links (Firefox, Dillo...) s radostí. Já jsem si na to musel ještě dát doušek instantního nápoje s tučňákem na obalu.

Obrázek: 3.jpg

Diskuze (1) Nahoru