Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
user:zeman:tahak [2009/11/12 13:10] zeman CPAN. |
user:zeman:tahak [2009/11/13 10:13] (current) zeman Oprava: společný repozitář spravuje Petr Pajas a Honza Ptáček. |
| |
<code>ssh -4 -L 8080:127.0.0.1:8080 stroj /home/pajas/pbin/ht2_proxy.pl 8080</code> | <code>ssh -4 -L 8080:127.0.0.1:8080 stroj /home/pajas/pbin/ht2_proxy.pl 8080</code> |
| |
| |
====== CPAN ====== | ====== CPAN ====== |
| |
Jestliže potřebuju nějaký modul z CPANu, který dosud není na ÚFALu dostupný, můžu ho stáhnout a nainstalovat pomocí modulu ''CPAN.pm''. Pochopitelně ho nemůžu nainstalovat do systémových adresářů, kam má přístup pouze root. Jedna alternativa je udržovat si svou vlastní sbírku modulů ve svém homu, např. ''${HOME}/perl''. Druhá alternativa je společný repozitář perlových modulů v ''/net/work/projects/perl_repo'', kam zřejmě mají právo zápisu všichni členové skupiny ''ufal''. | Jestliže potřebuju nějaký modul z CPANu, který dosud není na ÚFALu dostupný, můžu ho stáhnout a nainstalovat pomocí modulu ''CPAN.pm''. Pochopitelně ho nemůžu nainstalovat do systémových adresářů, kam má přístup pouze root. Jedna alternativa je udržovat si svou vlastní sbírku modulů ve svém homu, např. ''${HOME}/perl''. Druhá alternativa je společný repozitář perlových modulů v ''/net/work/projects/perl_repo''. Tam mají teoreticky právo zápisu všichni členové skupiny ''ufal'', ale protože není snadné nakonfigurovat si CPAN tak, aby s repozitářem pracoval správně, je lepší napsat Petrovi Pajasovi nebo Honzovi Ptáčkovi a požádat je, aby potřebný modul nainstalovali. |
| |
Ať už nainstaluju nový modul k sobě nebo do společného repozitáře, musím taky Perlu říct, že je tam má hledat. Navíc nestačí Perl nasměrovat na kořen repozitáře. Moduly jsou zkompilované, takže je potřeba, aby si sáhl do podadresáře pro architekturu, na které běží. Pro společný repozitář se to udělá tak, že zavolám (ze svého ''.cshrc'') Petrův konfigurační skript: | Ať už nainstaluju nový modul k sobě nebo do společného repozitáře, musím taky Perlu říct, že je tam má hledat. Navíc nestačí Perl nasměrovat na kořen repozitáře. Moduly jsou zkompilované, takže je potřeba, aby si sáhl do podadresáře pro architekturu, na které běží. Pro společný repozitář se to udělá tak, že zavolám (ze svého ''.cshrc'') Petrův konfigurační skript: |
<code>perl -MCPAN -e shell | <code>perl -MCPAN -e shell |
install File::NFSLock</code> | install File::NFSLock</code> |
| |
| nebo dokonce rovnou |
| |
| <code>perl -MCPAN -e 'install File::NFSLock'</code> |
| |
kde ''File::NFSLock'' je název chybějícího modulu, který chci doinstalovat. Otázka je, jak je ''CPAN.pm'' nakonfigurován a kam vlastně bude nový modul instalovat. ''CPAN.pm'' si čte svou konfiguraci ze souboru | kde ''File::NFSLock'' je název chybějícího modulu, který chci doinstalovat. Otázka je, jak je ''CPAN.pm'' nakonfigurován a kam vlastně bude nový modul instalovat. ''CPAN.pm'' si čte svou konfiguraci ze souboru |
<code>/net/work/projects/perl_repo/lenny/sid/i686/share/perl/5.8/CPAN/Config.pm</code> | <code>/net/work/projects/perl_repo/lenny/sid/i686/share/perl/5.8/CPAN/Config.pm</code> |
| |
Do tohoto souboru mají členové skupiny ''ufal'' právo zápisu, takže když kdokoli z nás v cpaním shellu změní konfiguraci (např. úvodním ''o conf init'', nebo commitne libovolné změny, které během session udělal), projeví se to v tomto souboru pro ostatní. Proto je záhodno si vytvořit svůj vlastní konfigurační modul ''${HOME}/.cpan/CPAN/MyConfig.pm'', který má podle návodu přednost. I kdyby v něm zase bylo napsáno, že chci vše instalovat do společného repozitáře (ne že bych teď věděl, jak se to nakonfiguruje). | Kdyby do tohoto souboru měli právo zápisu všichni členové skupiny ''ufal'' (jak tomu původně bylo), neustále by si navzájem přepisovali svoji konfiguraci. Proto je záhodno si vytvořit svůj vlastní konfigurační modul ''${HOME}/.cpan/CPAN/MyConfig.pm'', který má podle návodu přednost. Pak v cpaním shellu pustit ''o conf init'' a zodpovědět všechny otázky. |
| |
Návod k modulu ''CPAN.pm'' je například [[http://theoryx5.uwinnipeg.ca/CPAN/perl/lib/CPAN.html|zde]]. | Návod k modulu ''CPAN.pm'' je například [[http://theoryx5.uwinnipeg.ca/CPAN/perl/lib/CPAN.html|zde]]. |
| |
| ====== bash a tcsh ====== |
| |
| ===== Rozdíl mezi .bash_profile a .bashrc ===== |
| |
| ''.bash_profile'' se zavolá na začátku login shellu. ''.bashrc'' se zavolá na začátku shellu, který je interaktivní, ale není login. Většina lidí to má zařízeno tak, že z ''.bash_profile'' se volá ''.bashrc'', jinak je ''.bash_profile'' prázdný a všechna ostatní nastavení jsou v ''.bashrc'': |
| |
| <code bash># .bash_profile |
| if [ -f ~/.bashrc ]; then |
| source ~/.bashrc |
| fi</code> |
| |
| Protože dosud jsem víc pracoval v ''tcsh'' a nastavení proměnných mám nejlépe udržované v ''.cshrc'', mohlo by pomoct, kdybych na začátku všech volání bashe povinně zavolal tcsh a skrz něj další bash, který by ale už zdědil prostředí tcsh: |
| |
| <code bash># .bashrc |
| exec /bin/tcsh -c 'exec /bin/bash'</code> |