[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

Není žádný med instalovat Tred

(Aktualizace: Milan udělal skript, který realizuje kroky popsané níže, umí tedy nainstalovat Tred na další stroje s novým Ubuntu. Ten skript je /sprava/ADM/patch/ubuntu14.04_install_local_tred.)

Tak už je to tady. Na můj počítač (zen) dorazilo nové Ubuntu 14.04. A leccos přestalo fungovat. Programy, které jsou napsané v Perlu a závisí na spoustě knihoven, potřebují ty správné knihovny pro daný operační systém (14.04) a danou verzi Perlu. Knihovny stahované z internetových úložišť se totiž většinou kompilují; kdyby tam ležely jen Perlí zdrojáky, byl by to mnohem menší problém, ale samozřejmě by to běželo pomaleji.

Dosud jsme na ÚFALu udržovali repozitáře knihoven (“perl repo”), ale do nich to taky někdo musel nainstalovat a toto řešení mělo své nevýhody. Martin teď nově objevil nástroj Perlbrew, který umožňuje celkem bezbolestně přepínat mezi jednotlivými verzemi Perlu a instalovat do nich centrálně knihovny z CPANu, i když člověk nemá práva správce. V obou případech tu ale máme problém, který jsme zatím nevyřešili: knihovnu Tk, která poskytuje grafické uživatelské rozhraní a závisí na ní Tred.

Když se Tk nainstaluje z CPANu na Ubuntu 14.04 (cpanm Tk), tak nenajde správné fonty. Projeví se to hned, i menu a popisky oken vypadají dost hrozně, dají se ale alespoň přečíst. Když ale v Tredu otevřete třeba arabský strom, tak nemáte šanci z něj cokoliv poznat. Sice se zdá, že to je nějaký font, který arabštinu obsahuje, ale Tk ho zobrazí v hrozném rozlišení, kostičkovaně a bez antialiasingu. Platí to pro všechny tři verze Perlu, které momentálně náš Perlbrew obsahuje. Problém je zřejmě spíš v Ubuntu: z logu build.log, který vypíše cpanm, to vypadá, že neexistují nějaké cesty a/nebo céčkové hlavičkové soubory, které podle názvu zřejmě s fonty souvisí.

Zbývá ještě jedna cesta: použít předpřipravený instalační balíček pro Ubuntu:

sudo apt-get install perl-tk

Jak je zřejmé, jsou k tomu potřeba nadstandardní práva, takže to může udělat pouze správce, případně uživatel, kterého správce oprávnil. Současně to ale znamená, že bych tuhle knihovnu měl používat pouze ve spojení s tím systémovým Perlem nainstalovaným v /usr/bin (v Ubuntu 14.04 je to Perl verze 5.18.2). Čili si např. musím upravit $PATH tak, aby přednost nedostal /opt/bin/perl, což je momentálně verze 5.12.2. A taky bych tohle Tk neměl volat z jiných strojů, např. z clusteru, kde máme zatím Ubuntu 10.04. Vzhledem k interaktivní povaze té knihovny to naštěstí není nezbytné. Nejdůležitější je, že tahle knihovna má fonty v pořádku.

Tak a konečně můžeme přistoupit k instalaci vlastního Tredu. Na jeho nepříliš udržovaném webu je k dispozici balíček, který se dá stáhnout a nainstalovat. Protože balíček není instalován z centrálních repozitářů pro Ubuntu, je trochu komplikovanější získání všech dalších knihoven, na kterých závisí. Dělá se to ve dvou krocích: nejdřív pustíme instalaci, o které víme, že skončí neúspěchem, předtím však stihne ve správci balíčků vyjmenovat balíčky, na kterých závisí. Potom zavoláme správce balíčků, aby chybějící závislosti vyřešil s pomocí centrálních repozitářů a instalaci tak dokončil.

sudo dpkg -i ./tred_2.5049_all.deb
sudo apt-get -f install

Ani to neproběhne bez škobrtnutí. Druhý z obou příkazů totiž na závěr vede na volání cpanm (instalace Perlích modulů z CPANu) a některé moduly se odmítnou nainstalovat:

Nakonec se to povedlo a instalace doběhla, chyběla ale důležitá informace, totiž kde je teď ten Tred, který chci pustit? Existuje sice nějaký program /usr/bin/tred, ale to je jakýsi grafový nástroj od Graphvizu a s naším Tredem nemá nic společného. V cestě nemám ani btred a ntred. Nakonec se ukazuje, že ten správný název je (zřejmě pouze kvůli kolizi s Graphvizem) /usr/bin/start_tred. Na webu Tredu to nebylo napsáno, teď jsem to tam sice dopsal, ale bylo by potřeba to změnit někde jinde, protože tahle stránka se automaticky přegenerovává vždy při vydání nové verze Tredu.

Heuréka, máme Tred s čitelnými fonty! Bohužel to ještě není konec trápení.

Easy Treex

V dnešní době je Tred jen takovým chudinkou, pokud neumí zobrazit Treexové soubory. Takže musíme nainstalovat rozšíření Easy Treex. To ale není tak easy, jak název napovídá. Při instalaci rozšíření se dozvím, že není k dispozici nějaká metoda z Treex::Core::Config; Treex::Core se nepodařilo správně nainstalovat… a má zase spoustu závislostí, např. Moose. Takže i když je to náš software, bylo by dobré ho nainstalovat z CPANu, tím by se ty závislosti vyřešily.

cpanm Treex::Core

Vzhledem k tomu, že nemám správcovská práva, se tyhle moduly už neinstalují do systémových cest, ale do /home/zeman/perl5. Takže si musím upravit prostředí, aby je Perl dokázal najít:

export PERL5LIB=/home/zeman/perl5/lib/perl5

(Vyzkoušel jsem, že PERLLIB nestačí, musel to být PERL5LIB.)

Po dalším spuštění Tredu se už rozšíření Easy Treex inicializovalo správně, tedy alespoň to o sobě tvrdilo. Otevřít Treexový soubor (/net/data/pcedt2.0/data/00/wsj_0001.treex.gz) se mi však nadále nedaří. Tred tvrdí, že nemohl otevřít soubor se schématem PML treex_schema.xml. Přitom ten soubor mám v /home/zeman/.tred.d/extensions/easytreex/resources, on ale zřejmě neví, že by ho tam měl hledat. ALE! Když jsem Tred zavřel a pustil znova, tak při inicalizaci hlásil “Resource path” a tam tuhle cestu měl. A když jsem ho nechal znova otevřít inkriminovaný Treexový soubor, tak už to najednou šlo!


[ Back to the navigation ] [ Back to the content ]