abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    13.9. 17:33 | Pozvánky

    Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 211. sraz, který proběhne v pátek 19. září od 18:00 ve Studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Na srazu proběhne přednáška Jiřího Eischmanna o nové verzi prostředí GNOME 49. Nemáte-li možnost se zúčastnit osobně, přednáškový blok bude opět streamován živě na server VHSky.cz a následně i zpřístupněn záznam.

    Ladislav Hagara | Komentářů: 0
    13.9. 01:33 | IT novinky

    Microsoft se vyhnul pokutě od Evropské komise za zneužívání svého dominantního postavení na trhu v souvislosti s aplikací Teams. S komisí se dohodl na závazcích, které slíbil splnit. Unijní exekutivě se nelíbilo, že firma svazuje svůj nástroj pro chatování a videohovory Teams se sadou kancelářských programů Office. Microsoft nyní slíbil jasné oddělení aplikace od kancelářských nástrojů, jako jsou Word, Excel a Outlook. Na Microsoft si

    … více »
    Ladislav Hagara | Komentářů: 10
    12.9. 14:00 | Nová verze

    Samba (Wikipedie), svobodná implementace SMB a Active Directory, byla vydána ve verzi 4.23.0. Počínaje verzí Samba 4.23 jsou unixová rozšíření SMB3 ve výchozím nastavení povolena. Přidána byla podpora SMB3 přes QUIC. Nová utilita smb_prometheus_endpoint exportuje metriky ve formátu Prometheus.

    Ladislav Hagara | Komentářů: 0
    12.9. 12:00 | Zajímavý článek

    Správcovský tým repozitáře F-Droid pro Android sdílí doporučení, jak řešit žádosti o odstranění nelegálního obsahu. Základem je mít nastavené formální procesy, vyhrazenou e-mailovou adresu a být transparentní. Zdůrazňují také důležitost volby jurisdikce (F-Droid je v Nizozemsku).

    🇵🇸 | Komentářů: 20
    12.9. 05:33 | Bezpečnostní upozornění

    Byly publikovány informace o další zranitelnosti v procesorech. Nejnovější zranitelnost byla pojmenována VMScape (CVE-2025-40300, GitHub) a v upstream Linuxech je již opravena. Jedná se o variantu Spectre. KVM host může číst data z uživatelského prostoru hypervizoru, např. QEMU.

    Ladislav Hagara | Komentářů: 0
    11.9. 22:00 | Komunita

    V červenci loňského roku organizace Apache Software Foundation (ASF) oznámila, že se částečně přestane dopouštět kulturní apropriace a změní své logo. Dnes bylo nové logo představeno. "Indiánské pírko" bylo nahrazeno dubovým listem a text Apache Software Foundation zkratkou ASF. Slovo Apache se bude "zatím" dál používat. Oficiální název organizace zůstává Apache Software Foundation, stejně jako názvy projektů, například Apache HTTP Server.

    Ladislav Hagara | Komentářů: 16
    11.9. 17:33 | Nová verze

    Byla vydána (𝕏) srpnová aktualizace aneb nová verze 1.104 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.104 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 2
    11.9. 15:33 | IT novinky

    Spotify spustilo přehrávání v bezztrátové kvalitě. V předplatném Spotify Premium.

    Ladislav Hagara | Komentářů: 0
    11.9. 15:00 | IT novinky

    Spoluzakladatel a předseda správní rady americké softwarové společnosti Oracle Larry Ellison vystřídal spoluzakladatele automobilky Tesla a dalších firem Elona Muska na postu nejbohatšího člověka světa. Hodnota Ellisonova majetku díky dnešnímu prudkému posílení ceny akcií Oraclu odpoledne vykazovala nárůst o více než 100 miliard dolarů a dosáhla 393 miliard USD (zhruba 8,2 bilionu Kč). Hodnota Muskova majetku činila zhruba 385 miliard dolarů.

    Ladislav Hagara | Komentářů: 11
    10.9. 21:22 | Nová verze

    Bylo vydáno Eclipse IDE 2025-09 aneb Eclipse 4.37. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 0
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (81%)
     (7%)
     (3%)
     (3%)
     (4%)
     (2%)
    Celkem 180 hlasů
     Komentářů: 12, poslední 10.9. 13:00
    Rozcestník

    Buildujeme portable VIM pro RHEL5+

    16.10.2013 22:41 | Přečteno: 784×

    Před několika měsíci jsem kolegovi ukázal návykovost a sílu jedi-vim (jedi-vim spolu se sadou dalších pluginů promění vim v plnohodnotné Python IDE), jenže kolega si už o pár dní později začal stěžovat, že jedi-vim nemůže používat na testovacích serverech, na kterých převážně běží RHEL5 a RHEL6 (to znamená více než pět let starý vim a to navíc bez podpory pythonu). Instalovat na všechny servery nejnovější python a vlastní vim rozhodně není idealní řešení. Raději si zkusíme pohrát s build procesem (a zdrojákama) vimu a zkompilovat vim, který bude stačit rozbalit a poběží na (skoro)jakémkoliv moderním (glibc-based) linuxu...

    Následující postup jsem ověřoval na panenské minimální instalaci CentOS 5, takže začneme opravdu od začátku, instalací základních závislostí.

    yum install gcc make ncurses-devel gcc-c++
    # mercurial získame z EPEL:
    wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
    rpm -Uvh epel-release-5-4.noarch.rpm 
    yum install mercurial
    

    Přestože bude náš build "portable", tak v něm stejně budou natvrdo zadrátované cesty odvozené z --prefix parametru pro ./configure. Mít v portable binárce stringy jako /home/luv/sandbox/vim_build/ je prostě lame, takže si připravíme více sexy prefix.

    mkdir /vim_build/
    

    Ještě před kompilací vimu zkompilujeme Python do /vim_build

    wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz
    tar xfz Python-2.7.5.tgz
    cd Python-2.7.5
    ./configure --prefix=/vim_build/python --enable-shared
    make
    make install
    

    A teď už zkompilujeme samotný vim.

    hg clone https://vim.googlecode.com/hg/ vim
    cd vim
    # A tady je potřeba si dát pozor!
    # 1) python-config k instalaci pythonu, proti které budeme kompilovat musí být první v PATH
    # 2) také musíme upravit LD_LIBRARY_PATH (přidat cestu ke knihovnám k naší instalaci pythonu)
    # 3) configure musíme předat -–enable-pythoninterp=dynamic (dynamic je důležité)
    export PATH=/vim_build/python/bin/:$PATH
    export LD_LIBRARY_PATH=/vim_build/python/lib/:$LD_LIBRARY_PATH
    ./configure --disable-nls --enable-multibyte --disable-selinux --enable-pythoninterp=dynamic --disable-rubyinterp --with-features=huge --without-x --disable-gui --disable-gpm --with-tlib=ncurses --prefix=/vim_build/vim/
    # Teď můžeme v src/auto/config.log ověřit, že vim bude zkompilován oproti správné verzi pythonu
    make
    make install
    # A můžeme ověřit, že všechno funguje:
    /vim_build/vim/bin/vim
    # a ve vimu ověříme pomocí ":python import operator; print(operator)", že funguje podpora skriptování v pythonu.
    

    Paráda, máme funkční vim s pythonem. Jenže tady je samozřejmě problém, že vim bude vždycky hledat python moduly ve /vim_build/python/... a runtime soubory ve /vim_build/vim/shared/. Naštěstí toto všechno se dá změnit pomocí manipulace proměnných LD_LIBRARY_PATH, PYTHONPATH a VIMRUNTIME. Nejdříve ale vytvoříme nový adresář, který bude obsahovat jak vim, tak python, ať máme všechno pokupě:

    cd /vim_build
    mkdir relocatable_test
    cd relocatable_test
    cp -r ../vim/bin/ .
    cp -r ../vim/share/vim/vim74/ runtime
    mkdir deps
    cp -r ../python deps
    

    Funguje? Mělo by ;-)

    cd /vim_build/relocatable_test
    LD_LIBRARY_PATH=`pwd`/deps/python/lib PYTHONPATH=`pwd`/deps/python/lib/python2.7/:`pwd`/deps/python/lib/python2.7/lib-dynload:`pwd`/deps/python/lib/python2.7/site-packages VIMRUNTIME=`pwd`/runtime bin/vim
    

    A teď příjde okamžik pravdy a ověříme, že manipulace těchto proměnných prostředí opravdu stačí.

    cd /vim_build/
    rm -rf python vim
    # a ověříme, že vim stále funguje
    # doporučil bych opět ověřit pomocí ":python import operator; print(operator)", že funguje podpora skriptování v pythonu.
    cd relocatable_test
    LD_LIBRARY_PATH=`pwd`/deps/python/lib PYTHONPATH=`pwd`/deps/python/lib/python2.7/:`pwd`/deps/python/lib/python2.7/lib-dynload:`pwd`/deps/python/lib/python2.7/site-packages VIMRUNTIME=`pwd`/runtime bin/vim
    

    Opravdový portable build

    Jenže takto vim pouštět pokaždé není zrovna pohodlné, a "portable" buildem bych se takovéto rešení nazvat neodvážil. Samozřejmě, nejjednodušší rešení by bylo přidat jednoduchý wrapper, který tyto proměnné před spuštěním nastaví, ale když už je vim open-source, tak proč toho nevyužít, a neupravit si těch 20 řádku kódu, aby nám všechno fungovalo po vůli.

    Nejdříve vyčistíme po předchozí instalaci:
    rm -rf /vim_build
    mkdir /vim_build
    
    Překompilujeme Python s nastavením rpath $ORIGIN:
    cd Python-2.7.5 # cd do zdrojáků pythonu
    make clean
    export LDFLAGS='-Wl,-rpath,\$$ORIGIN/../lib/'
    ./configure --prefix=/vim_build/python --enable-shared
    make
    make install
    
    Opatchujeme a překompilujeme vim:
    cd vim # cd do zdrojáků vimu
    make clean
    patch -p1 < vim_7.4.24-kill_pythonpath.patch
    patch -p1 < vim_7.4.24-kill_vimruntime.patch
    export LDFLAGS='-Wl,-rpath,\\\$$ORIGIN/../deps/python/lib/'
    export PATH=/vim_build/python/bin/:$PATH
    export LD_LIBRARY_PATH=/vim_build/python/lib/:$LD_LIBRARY_PATH
    ./configure --disable-nls --enable-multibyte --disable-selinux --enable-pythoninterp=dynamic --disable-rubyinterp --with-features=huge --without-x --disable-gui --disable-gpm --with-tlib=ncurses --prefix=/vim_build/vim/
    make
    make install
    
    Připravíme samotný portable build:
    cd /vim_build
    mkdir vim_py27_rhel5
    cd vim_py27_rhel5
    cp -r ../vim/bin/ .
    cp -r ../vim/share/vim/vim74/ runtime
    mkdir deps
    cp –r ../python deps
    bin/vim # teď už by vše mělo fungovat
    rm -rf ../python ../vim
    mv /vim_build/vim_py27_rhel5 test_location
    cd test_location
    bin/vim # a tento build by měl být opravdu relocatable
    
    Nakonec ještě můžeme otestovat jedi-vim:
    # nainstalujeme pathogen
    mkdir -p ~/.vim/autoload
    cd ~/.vim/autoload
    wget 'http://www.vim.org/scripts/download_script.php?src_id=19375' -O pathogen.vim
    echo "call pathogen#infect()" >> ~/.vimrc
    
    # nainstalujeme jedi-vim
    mkdir ~/.vim/bundle/
    cd ~/.vim/bundle
    git clone https://github.com/davidhalter/jedi-vim
    cd jedi-vim
    git submodule update --init
    
    # hotovo, jedi-vim by těd měl fungovat s naším vimem, který můžeme nakopírovat na jakýkoliv stock rhel5, rhel6 box (vlastně víceméně skoro jakýkoliv moderní linux - testoval jsem i na Ubuntu 12.04)
    test_location/bin/vim
    

    Pokud odkazy na patche náhodou nefungují, tak je ještě tady přikládám:

    vim_7.4.24-kill_pythonpath.patch:

    --- vim_source/src/if_python.c	2013-09-10 14:35:06.000000000 +0100
    +++ vim_source_patched/src/if_python.c	2013-09-10 15:29:05.000000000 +0100
    @@ -20,6 +20,10 @@
     #include "vim.h"
     
     #include <limits.h>
    +#include <unistd.h>
    +#include <libgen.h>
    +#include <string.h>
    +#include <stdlib.h>
     
     /* uncomment this if used with the debug version of python.
      * Checked on 2.7.4. */
    @@ -663,6 +667,37 @@
     	return FAIL;
         }
     #endif
    +    char curr_exe_path[1024];
    +    ssize_t len;
    +
    +    if ((len = readlink("/proc/self/exe", curr_exe_path, sizeof(curr_exe_path)-1)) != -1) {
    +        curr_exe_path[len] = '\0';
    +        char* top_dir = dirname(dirname(curr_exe_path));
    +        char python_path1[2048];
    +        char python_path2[2048];
    +        char python_path3[2048];
    +        char python_path[6200];
    +
    +        memset(python_path1,0,2048);
    +        memset(python_path2,0,2048);
    +        memset(python_path3,0,2048);
    +        memset(python_path,0,6200);
    +
    +        strcpy(python_path1,top_dir);
    +        strcpy(python_path1+strlen(top_dir),"/deps/python/lib/python2.7/:");
    +
    +        strcpy(python_path2,top_dir);
    +        strcpy(python_path2+strlen(top_dir),"/deps/python/lib/python2.7/lib-dynload:");
    +
    +        strcpy(python_path3,top_dir);
    +        strcpy(python_path3+strlen(top_dir),"/deps/python/lib/python2.7/site-packages");
    +
    +        strcpy(python_path,python_path1);
    +        strcpy(python_path+strlen(python_path1),python_path2);
    +        strcpy(python_path+strlen(python_path1)+strlen(python_path2),python_path3);
    +
    +        setenv("PYTHONPATH",python_path,1);
    +    }
     
         if (hinstPython)
     	return OK;
    

    vim_7.4.24-kill_vimruntime.patch:

    --- vim_source/src/misc1.c	2013-09-10 14:35:06.000000000 +0100
    +++ vim_source_patched/src/misc1.c	2013-09-10 15:35:30.000000000 +0100
    @@ -14,6 +14,11 @@
     #include "vim.h"
     #include "version.h"
     
    +#include <unistd.h>
    +#include <libgen.h>
    +#include <string.h>
    +#include <stdlib.h>
    +
     static char_u *vim_version_dir __ARGS((char_u *vimdir));
     static char_u *remove_tail __ARGS((char_u *p, char_u *pend, char_u *name));
     #if defined(FEAT_CMDL_COMPL)
    @@ -4181,6 +4186,22 @@
         if (!vimruntime && STRCMP(name, "VIM") != 0)
     	return NULL;
     
    +    if (vimruntime) {
    +        char curr_exe_path[1024];
    +        ssize_t len;
    +        if ((len = readlink("/proc/self/exe", curr_exe_path, sizeof(curr_exe_path)-1)) != -1) {
    +            curr_exe_path[len] = '\0';
    +            static char runtime_path[2048];
    +            memset(runtime_path,0,2048);
    +            char* top_dir = dirname(dirname(curr_exe_path));
    +            strcpy(runtime_path,top_dir);
    +            strcpy(runtime_path+strlen(top_dir),"/runtime");
    +
    +            default_vimruntime_dir = runtime_path;
    +            p = runtime_path;
    +        }
    +    }
    +
         /*
          * When expanding $VIMRUNTIME fails, try using $VIM/vim<version> or $VIM.
          * Don't do this when default_vimruntime_dir is non-empty.
    

    A na závěr ještě odkaz na hotové buildy (vim mercurial changeset 5350, zkompilováno na CentOS 5): pro x86 a x86-64.

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    17.10.2013 07:43 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
    Rozbalit Rozbalit vše Re: Buildujeme portable VIM pro RHEL5+
    Jedi-vim jsem neznal, vypada dobre, dik za tip.
    Pochybnost, nejistota - základ poznání
    17.10.2013 10:38 kavol | skóre: 28
    Rozbalit Rozbalit vše Re: Buildujeme portable VIM pro RHEL5+
    poněkdu mi uniká pointa, když chce bleeding edge software, tak proč RHEL5 ...

    jinak pro RHEL6 je k dispozici python33, to nestačí?
    17.10.2013 11:47 smazáno | skóre: 18 | blog: smazáno
    Rozbalit Rozbalit vše Re: Buildujeme portable VIM pro RHEL5+
    poněkdu mi uniká pointa, když chce bleeding edge software, tak proč RHEL5 ...
    tak si znova precti uvodni odstavec :-)
    17.10.2013 12:23 kavol | skóre: 28
    Rozbalit Rozbalit vše Re: Buildujeme portable VIM pro RHEL5+
    nepomáhá :-p
    17.10.2013 13:01 smazáno | skóre: 18 | blog: smazáno
    Rozbalit Rozbalit vše Re: Buildujeme portable VIM pro RHEL5+
    Jde o to, ze bychom radi pouzivali vim 7.4 s pythonem2.7 na rhel5 serverech, kterych bychom se nejradeji nedotykali :-). Takto staci rozbalit jeden tarball do /home (nebo na NFS) a hotovo (a system to nijak neovlivni).
    17.10.2013 15:42 kavol | skóre: 28
    Rozbalit Rozbalit vše Re: Buildujeme portable VIM pro RHEL5+
    rozumím, ale furt nechápu proč ... no to je asi jedno :-)
    17.10.2013 21:28 dumblob | skóre: 10 | blog: dumblog
    Rozbalit Rozbalit vše Re: Buildujeme portable VIM pro RHEL5+
    kterych bychom se nejradeji nedotykali
    O to vice nechapu proc tam potrebujete vim s IDE-like konfiguraci. Jestli chci pracovat na necem vetsim, tak sshfs to preci jisti. Takhle resim i obskurni situace (napr. QNX, kde je dostupny SW v jaksi, slusne receno, zajimavem stavu).

    Kazdopadne presne na tento typ problemu (novy soft na starem RHELu tak, aby neovlivnil zadnou z casti systemu) jsou Software Collections (SCL) jak uz kavol nize zminil.
    17.10.2013 22:23 smazáno | skóre: 18 | blog: smazáno
    Rozbalit Rozbalit vše Re: Buildujeme portable VIM pro RHEL5+
    • Souhlasim, ze normalni vim by nam stacil a tohle je jen takovy bonus. Hezky priklad pouziti je vyvoj scons skriptu (kde se ten jedi-vim uzije) primo na build serveru (kam si jakychces python instalovat nemuzes) - do detailu se poustet nebudu, ale napriklad nainstalovat na tom build serveru balik pcre-devel by rozbilo buildy ;-) ... ja vim, ze to je hrozne, ale takova proste je situace
    • sshfs jsme pouzivali pred tim a fungovalo dobre, obcas ale trochu nepohodlne
    • Software Collections vypadaji fajn (ale ty repozitari co tam odkazuji jsou vsechno RHEL6 a navic jen par baliku)
    17.10.2013 22:32 smazáno | skóre: 18 | blog: smazáno
    Rozbalit Rozbalit vše Re: Buildujeme portable VIM pro RHEL5+
    Jinak, ty Sofware Collections (scl) jsem neznal a vypada to zajimave!
    17.10.2013 11:52 smazáno | skóre: 18 | blog: smazáno
    Rozbalit Rozbalit vše Re: Buildujeme portable VIM pro RHEL5+
    jinak pro RHEL6 je k dispozici python33, to nestačí?
    Odkaz na repo mas?
    17.10.2013 12:07 smazáno | skóre: 18 | blog: smazáno
    Rozbalit Rozbalit vše Re: Buildujeme portable VIM pro RHEL5+
    I kdyz, samotny py3.3 originalni problem neresi, protoze je potreba jeste proti nemu zkompilovany vim (a navic jedi asi nebude fungovat s py3). Ale stejne by me zajimalo oficialni/overene repo pro rhel s python3.
    17.10.2013 12:27 kavol | skóre: 28
    Rozbalit Rozbalit vše Re: Buildujeme portable VIM pro RHEL5+
    I kdyz, samotny py3.3 originalni problem neresi, protoze je potreba jeste proti nemu zkompilovany vim
    to sice samo o sobě neřeší, ale přijde mi pořád příjemnější mít k dispozici novější python a jen si proti němu přebuildit srpm novějšího vimu (za předpokladu, že tam není žádná další zásadní závislost?), nežli páchat výše uvedená zvěrstva ...
    17.10.2013 12:57 smazáno | skóre: 18 | blog: smazáno
    Rozbalit Rozbalit vše Re: Buildujeme portable VIM pro RHEL5+
    Budes se jeste muset vrtat v SPEC file, ale souhlasim, ze vytvorit si rpm, ktere takto nainstaluje vim napr. do /opt by bylo taky OK reseni. Ale potrebuje roota, a navic delat cokoliv mimo /home na techto serverech je .. neidealni.

    Tenhle build vimu je "portable" a navic funguje v pohode i treba na stable Debianu, Ubuntu atd. Rozbalim jeden tarball ve svym home, pustim a jedu, kdekoliv. Jasne, obrovska nevyhoda je, ze ma nabundlovany cely python.
    17.10.2013 16:00 kavol | skóre: 28
    Rozbalit Rozbalit vše Re: Buildujeme portable VIM pro RHEL5+
    Budes se jeste muset vrtat v SPEC file,
    no, to byla ta závorka "za předpokladu" - u dost věcí funguje prostý rebuild ... v tomto případě by bylo potřeba nejdřív nahodit scl prostředí; přiznávám, že o tom toho moc nevím, sám jsem pod tím ještě nic nebuildil, jen vím, že "řešení existuje" protože prostě různé balíčky zbuilděné proti novým verzím jsem měl pod rukama
    ale souhlasim, ze vytvorit si rpm, ktere takto nainstaluje vim napr. do /opt
    ale to nemusíš, tím novým vimem můžeš klidně přeplácnout systémový, jen bude záviset na tom kolekčním pythonu místo defaultního
    Ale potrebuje roota,
    no tak jsem-li admin, tak snad jedno su/sudo není problém ...
    a navic delat cokoliv mimo /home na techto serverech je .. neidealni.
    tož to už je váš boj :-) já upgrade textového editoru, eventuelně doinstalování závislostí, za extra nebezpečný zásah nepovažuju, ale samozřejmě neznám detaily prostředí
    Tenhle build vimu je "portable" a navic funguje v pohode i treba na stable Debianu, Ubuntu atd. Rozbalim jeden tarball ve svym home, pustim a jedu, kdekoliv. Jasne, obrovska nevyhoda je, ze ma nabundlovany cely python.
    já hlavně nějak nerozumím, proč bys měl chtít "jet" v home na serveru, na který nechceš moc šahat, v ~ typicky "jezdím" na své workstation, ale ... stejné jako výše, nenutno rozebírat, prostě máš nějakou potřebu, nabídl jsem ti aktuálnější software v kolekcích(*), pokud to tu potřebu neřeší, hm, tak nic

    (*) btw, pokud je zájem zařadit tam krom nových databází a whatever i třeba novější vim, je třeba jej projevit, nemáme křišťálové koule, abychom v RH věděli úplně o všem, co si zákazníci přejí (jistě, ne všemu vyhovíme, ale vědět o tom je první krok)
    17.10.2013 12:20 kavol | skóre: 28
    Rozbalit Rozbalit vše Re: Buildujeme portable VIM pro RHEL5+
    17.10.2013 13:02 smazáno | skóre: 18 | blog: smazáno
    Rozbalit Rozbalit vše Re: Buildujeme portable VIM pro RHEL5+
    Diky!

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.