
è±å¯ãªéžæè¢...ãŸãã¯å¥ã®TIMTOWTDI

ã ãããç§ãã¡ã¯æã€ããšãã§ããŸãïŒ
- perlèªäœã®ããã€ãã®ããŒãžã§ã³ïŒãã¡ãããããããç¬èªã®ã°ããŒãã«ã¢ãžã¥ãŒã«ãåããŠããŸãïŒ ãŠãŒã¶ãŒã®ããŒã ãã£ã¬ã¯ããªã«ã€ã³ã¹ããŒã«ãããŸãïŒperlbrewãåç §ïŒã
- ã°ããŒãã«ïŒperlã®éå§æã«å©çšå¯èœïŒããã³ããŒã«ã«ïŒéåžžã¯åå¥ã®ãããžã§ã¯ãå ãŸãã¯ãŠãŒã¶ãŒã®ããŒã ãã£ã¬ã¯ããªã«ããä»»æã®ãã£ã¬ã¯ããª/ãã£ã¬ã¯ããªããã®ãã©ã°ã€ã³ïŒã¢ãžã¥ãŒã«ã
- ã°ããŒãã«ã¢ãžã¥ãŒã«ã«ã¯ãã³ã¢ïŒperlã«ä»å±ïŒããµã€ãïŒç®¡çè ãæåã§ã€ã³ã¹ããŒã«ïŒããã³ããŒïŒOSã®ããã±ãŒãžãããŒãžã£ãŒã«ãã£ãŠã€ã³ã¹ããŒã«ïŒã®3çš®é¡ããããŸãã
- ãã¹ãŠã®ã°ããŒãã«ã¢ãžã¥ãŒã«ã¯ãµããã£ã¬ã¯ã㪠"version.perl.perl /"ã«ããããããã®ãã£ã¬ã¯ããªã¯èªåçã«ã¯ãªãŒã³ã¢ãããããŸããã ãããŠãperlã®æ°ããããŒãžã§ã³ãã€ã³ã¹ããŒã«ãããšãæ°ããåæ§ã®ãã£ã¬ã¯ããªãäœæãããŸãã ãããŠãperlã¯å©çšå¯èœãªãã¹ãŠã®ä»¥åã®ããŒãžã§ã³ã®ãã£ã¬ã¯ããªããã¢ãžã¥ãŒã«ãããŒãããŸãã ãããã£ãŠãã³ã¢+ãµã€ã+ãã³ããŒã«perlã¢ããããŒãã®æ°ãæããŸããããã¯ãã°ããŒãã«ã¢ãžã¥ãŒã«ãååšãããã£ã¬ã¯ããª/ãªãã·ã§ã³ã®æ°ã§ãã
- ã¢ãžã¥ãŒã«ã®ãœãŒã¹ãç°ãªããŸããCPANããã©ã€ããŒãã¢ãžã¥ãŒã«ãåããããŒã«ã«CPANãªãŒããŒã¬ã€ãã©ãŒãç¬èªã®ãã®ããŸãã¯CPANäºæã·ã¹ãã ã«ãªãã€ã³ã¿ãŒãããã¢ãžã¥ãŒã«ããããŠã³ããŒããããã®ã
äœæ¥ç°å¢
ãŸããéåžžã©ã®ãããªæ¡ä»¶ã§äœæ¥ããå¿ èŠãããããå°ãæå®ããŸãã
- ãã¹ãã£ã³ã°ã«ã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ããããšã§ã¯ãªãããµãŒããŒå šäœã§äœæ¥ããŸã ã
- ãã®ãµãŒããŒã¯ã ããã€ãã®Perlãããžã§ã¯ããå®è¡ããŸã ã
- ç©æ¥µçã«Perlã§æžã人-ç¬èªã®ã¢ãžã¥ãŒã«ãæžãã ããã«ããã®ãã¹ãŠã®ã¢ãžã¥ãŒã«ãCPANã«é 眮ã§ããããã§ã¯ãããŸããã è€æ°ã®ãããžã§ã¯ãã§äœæ¥ãããã¹ãŠã®äººã¯ãç°ãªããããžã§ã¯ãã§åãã¢ãžã¥ãŒã«ã䜿çšããŸãã ãããã£ãŠããã®ç¶æ³ã¯é ããæ©ãããã¢ãžã¥ãŒã«ã®ããŒã«ã«CPANãã©ãŒ/ãªãŒããŒã¬ã€ããéåžžã®ãæ段ã§ã€ã³ã¹ããŒã«ããã³æŽæ°ã§ããããã«ããå¿ èŠããããŸã-ããã¯å šäœãšããŠåé¡ã解決ããŸãããã人çã¯æ¥œã«ãªããŸãã CPANããŒã«ã«ãã©ãŒ/ãªãŒããŒã¬ã€ãµããŒããå¿ èŠã§ã ã
- åé¡ã¯åžžã«çºçããŸãïŒãããžã§ã¯ãã«å¿ èŠãªã¢ãžã¥ãŒã«ïŒç§ãã¡ãšCPANã®äž¡æ¹ïŒãã°ããŒãã«ã«ïŒç§ãã¡ã¯èªåã®ãµãŒããŒãæã£ãŠããããšãæãåºããŸãïŒãŸãã¯ããŒã«ã«ã«ã€ã³ã¹ããŒã«ããŸãã ããã«ã¯åäžã®çãã¯ãããŸãããäž¡æ¹ã®ã¢ãããŒãã«ã¯é·æãšçæããããŸãã ç§ã¯èªåèªèº«ã§ãã®ããã«æ±ºããŸããïŒã€ã³ã¹ããŒã«ããããã¹ãŠã®ã¢ãžã¥ãŒã«ã管çïŒã€ã³ã¹ããŒã«ãæŽæ°ãå€ã/ç©Žã®ããããŒãžã§ã³ã远跡ãåé€ïŒããå¿ èŠãããããã¹ãŠã®ã¢ãžã¥ãŒã«ã1ãæã§çµã¿ç«ãŠãããšãã§ããªãããïŒã°ããŒãã«ã¢ãžã¥ãŒã«ã¯ä»ã®ã·ã¹ãã å šäœã§äœ¿çšããããããåé€ããããšã¯äžå¯èœã§ãïŒã¢ããªã±ãŒã·ã§ã³ãããã³ã»ãšãã©ã®ãããžã§ã¯ãã§ããŒã«ã«ã¢ãžã¥ãŒã«ãªãã§ã¯å®è¡ã§ããŸããïŒãå°ãªããšããã®ãããªå Žæã®æ°ãšã€ã³ã¹ããŒã«ãããŠããã¢ãžã¥ãŒã«ã®ç·æ°ãæå°éã«æããå¿ èŠããããŸã ã ããã¯ã ã»ãšãã©ã®ã¢ãžã¥ãŒã«ãã°ããŒãã«ã«ã€ã³ã¹ããŒã«ããå¿ èŠããããšããäºå®ã«ã€ãªãããŸããã°ããŒãã«ã¢ãžã¥ãŒã«ã®ããŒãžã§ã³ãç¹å®ã®ãããžã§ã¯ããšäºææ§ããªãå Žåã«ã®ã¿ãããŒã«ã«ã«ã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã ã¯ãããã®ã¢ãããŒãã®äž»ãªæ¬ ç¹ã¯ãã°ããŒãã«ã¢ãžã¥ãŒã«ãæŽæ°ãããšäžéšã®ãããžã§ã¯ããç Žæããå¯èœæ§ãããããšã§ã-ããããç§ã®çµéšã§ã¯ãããã¯ãã£ãã«èµ·ãããŸãããåäœäžã®ãµãŒããŒ-ãšã«ãããããè¡ãå¿ èŠããããŸããïŒ :)極端ãªå Žåãã¡ã€ã³éçºè ã®ã¯ãŒã¯ã¹ããŒã·ã§ã³ã¯ãã¹ããµãŒããŒã®åœ¹å²ã«é©ããŠããŸãããæŽæ°ã®æå°éã®ãã¹ããå¿ èŠã§ãã
g-cpan
äžèšã®åé¡ãããã³cpan / cpanplusã®ãããªãéåžžã®ãããŒã«ã®äžäŸ¿ããèæ ®ããŠããã¹ãŠã®ã°ããŒãã«ã¢ãžã¥ãŒã«ã移æ€ããŒã«ãã·ã¹ãã å ã®ä»ã®ãã¹ãŠã®ããã±ãŒãžãã€ã³ã¹ããŒã«ãæŽæ°ãåé€ã§ããããã«ã¹ã ãŒãºã«è¿ã¥ããŠããŸãã åæã«ãµã€ãå ã®ã¢ãžã¥ãŒã«ã®æåã€ã³ã¹ããŒã«ãå®å šã«æŸæ£ãããšãåªå é äœã®åé¡/ã¢ãžã¥ãŒã«ã®éè€/ perlã®åã€ã³ã¹ããŒã«ããã¹ãŠè§£æ±ºãããŸãã æ®å¿µãªããã移æ€ã«ã¯CPANã¢ãžã¥ãŒã«ã®ããäžéšã®ããã±ãŒãžãããªããç§ãã¡èªèº«ã®ãã©ã€ããŒãã¢ãžã¥ãŒã«çšã®ããã±ãŒãžã¯ãããŸããã ãã®åé¡ã解決ããããã«ãg-cpanãŠãŒãã£ãªãã£ãéçºãããŸãã-ä»»æã®CPANã¢ãžã¥ãŒã«ïŒCPANäºæãã©ãŒ/ãªãŒããŒã¬ã€ããã®ãã©ã€ããŒãã¢ãžã¥ãŒã«ãå«ãïŒã®ããã±ãŒãžãçæããããŒã«ã«ã®PortageãªãŒããŒã¬ã€ã«ä¿åããããåã«ãªã³ã¶ãã©ã€ã§ã€ã³ã¹ããŒã«ã§ããŸãã æ°å¹Žåã«ããã䜿çšããããšãããšããããã¯éåžžã«ããŸãæ©èœãããå®è³ªçã«åœ¹ã«ç«ããªãã£ãã ããããä»ã§ã¯ãã§ã«å®å šã«æ©èœããŠããŸã-å°ãªããšã300ã®ã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ããããšãã§ãããã®ãã¡ã®1ã€ã ããæåã§ebuildãç·šéããå¿ èŠããããŸããã
äžæ¹ã§ãg-cpanã䜿çšããããšã®å¥œãŸããå¹æãšããŠããããµãŒããŒã§Perlã¢ãžã¥ãŒã«çšã®æšæºââã®GentooããŒã¹ã®ãã€ããªããã±ãŒãžãäœæããä»ã®ãµãŒããŒã«éåžžã«è¿ éã«ã€ã³ã¹ããŒã«ããæ©äŒãåŸãŸãïŒã¢ãžã¥ãŒã«ã®éåžžã®ã€ã³ã¹ããŒã«ãç¹ã«ãã¹ãã«ã¯æ°æéããããäžéšã®ã¢ãžã¥ãŒã«ã§ã¯ãã€ã³ã¹ããŒã«äžã«ã€ã³ã¿ã©ã¯ãã£ããªå¯Ÿè©±ãå¿ èŠã§ãã
ã€ã³ã¹ããŒã«ãšã»ããã¢ãã
- ç§ãã¡ã¯çœ®ããŸãïŒ
emerge g-cpan
- g-cpanãebuildãäœæãããªãŒããŒã¬ã€ãèšå®ããå¿
èŠããããŸãã
echo "GCPAN_OVERLAY=/usr/local/portage" >> /etc/make.conf
- CPANãã©ãŒã®ãªã¹ããèšå®ããŸãïŒæåã®ã¢ã€ãã ãšããŠããŒã«ã«ãã©ãŒ/ãªãŒããŒã¬ã€ãå«ãïŒã æãç°¡åãªæ¹æ³ã¯ãcpanããæ§ææžã¿ã®ãªã¹ããã³ããŒããããšã§ãã
cpanmirrors=$(cpan -J | perl -0777 -ne 'eval;print"@{$CPAN::Config->{urllist}}"') echo "cpan $cpanmirrors" >> /etc/portage/mirrors
- ã€ã³ã¹ããŒã«äžã«ã¢ãžã¥ãŒã«ããã¹ãããå¿
èŠããããã©ãã-ãããããèªåã§æ±ºå®ããŸãããç¹ã«ç§ã®ã¢ãžã¥ãŒã«ã«å¯ŸããŠãã¹ããå®è¡ããããšã奜ã¿ãŸãã ã€ã³ã¹ããŒã«äžã®perlã¢ãžã¥ãŒã«ã®ãã¹ããé«éåããã«ã¯ãããã±ãŒãžã®ã«ããŽãªå
šäœã«ããã¯ãèšå®ããæ©èœãè¿œå ããå¿
èŠããããŸãã å¯èœãªã¢ãããŒãã®1ã€ã¯ããã£ã¬ã¯ããª/etc/portage/bashrc.d/ãšãã®ãã¡ã€ã«/ etc / portage / bashrcãäœæããããšã§ãïŒ
# Useful variables and functions: # # EBUILD_PHASE= # clean # setup # unpack # compile # test # install # preinst # prerm # postrm # cleanrm # postinst # clean # # CATEGORY = app-admin # PF = eselect-opengl-1.0.6-r1 # P = eselect-opengl-1.0.6 # PN = eselect-opengl # PVR = 1.0.6-r1 # PV = 1.0.6 # PR = r1 (will be "r0" for packages without -r) # # einfo () # elog () # ewarn () # eerror () if [ "x${EBUILD_PHASE}" != "x" ]; then if [ -x "/etc/portage/bashrc.d/${CATEGORY}.${EBUILD_PHASE}" ]; then source "/etc/portage/bashrc.d/${CATEGORY}.${EBUILD_PHASE}" fi if [ -x "/etc/portage/bashrc.d/${CATEGORY}/${PF}.${EBUILD_PHASE}" ]; then source "/etc/portage/bashrc.d/${CATEGORY}/${PF}.${EBUILD_PHASE}" elif [ -x "/etc/portage/bashrc.d/${CATEGORY}/${P}.${EBUILD_PHASE}" ]; then source "/etc/portage/bashrc.d/${CATEGORY}/${P}.${EBUILD_PHASE}" elif [ -x "/etc/portage/bashrc.d/${CATEGORY}/${PN}.${EBUILD_PHASE}" ]; then source "/etc/portage/bashrc.d/${CATEGORY}/${PN}.${EBUILD_PHASE}" fi fi
cat <<'EOF' >/etc/portage/bashrc.d/perl_module_test FEATURES="$FEATURES test" SRC_TEST="do" EOF cat <<'EOF' >/etc/portage/bashrc.d/perl_module_notest SRC_TEST= EOF chmod +x /etc/portage/bashrc.d/perl_module_* ln -s perl_module_test /etc/portage/bashrc.d/perl-core.test ln -s perl_module_test /etc/portage/bashrc.d/dev-perl.test ln -s perl_module_test /etc/portage/bashrc.d/perl-gcpan.test
mkdir /etc/portage/bashrc.d/dev-perl ln -s ../perl_module_notest /etc/portage/bashrc.d/dev-perl/Crypt-SSLeay.test ln -s ../perl_module_notest /etc/portage/bashrc.d/dev-perl/Shell-EnvImporter.test ln -s ../perl_module_notest /etc/portage/bashrc.d/dev-perl/Term-ReadLine-Perl.test cat <<'EOF' >/etc/portage/bashrc.d/dev-perl/Inline.test MAKEOPTS=-j1 EOF chmod +x /etc/portage/bashrc.d/dev-perl/Inline.test
- ããã«ãéåžžãCPANã§ã¯ã¢ãžã¥ãŒã«ã®ææ°ããŒãžã§ã³ãæãå®å®ããŠããŸãã ããã¯ããã©ã€ããŒãã¢ãžã¥ãŒã«ã®å Žåã«ããã«åœãŠã¯ãŸããŸãã ãããã£ãŠãææ°ããŒãžã§ã³ã®ã€ã³ã¹ããŒã«ã匷å¶ããããšã¯çã«ããªã£ãŠããŸãã
cat <<'EOF' >>/etc/portage/package.keywords perl-core/* dev-perl/* virtual/perl-* # avoid depending on ~x86 sys-libs/readline dev-perl/Term-ReadLine-Gnu -~x86 # avoid depending on ~x86 sci-mathematics/pari dev-perl/math-pari -~x86 EOF
- ããã§ãg-cpanã®CPANã€ã³ããã¯ã¹ãæŽæ°ããå¿ èŠããããŸãã çè«çã«ã¯ãg-cpanã«ã¯ãã®ããã®--cpan_reloadãªãã·ã§ã³ããããŸãããçŸåšã®ããŒãžã§ã³ïŒ0.16.2ïŒã§ã¯æ©èœããŸããã ãŸããg-cpanã¯cpanãŠãŒãã£ãªãã£ã€ã³ããã¯ã¹ã䜿çšãããããcpanãå®è¡ããŠcpan> reload indexãå®è¡ãããšããã®åé¡ãåé¿ã§ããŸãã
- ãµãŒããŒäžã®ãã¹ãŠã®Perlã¹ã¯ãªããã§äœ¿çšãããã¢ãžã¥ãŒã«ã®ãªã¹ããæºåããŸãã å€é建ãŠã®shãã€ãã©ã€ã³ã§ç®¡çããŸãããããããããã®ããã®Perlã¹ã¯ãªãããäœæãããã®èšäºã®ã³ã¡ã³ãã«æçš¿ããå¿ èŠããããŸãã :)
- ãããã®ebuildãçæããŸãïŒebuildã¯äŸåã¢ãžã¥ãŒã«çšã«ãèªåçã«äœæãããŸãïŒïŒ
g-cpan -g Module::Name1 Module::Name2 âŠ
- ãã£ã¬ã¯ããª/ usr / lib / perl5 / site_perl / *ãåé€ããŸãã 泚æ ããã®æç¹ã§ããã®ãµãŒããŒäžã®ã»ãšãã©ã®Perlã¹ã¯ãªãããç ŽæããŸãã æ®å¿µãªããããã³ããŒã¢ãžã¥ãŒã«ïŒåªå 床ã®äœãïŒãã€ã³ã¹ããŒã«ããåã«ãµã€ãã¢ãžã¥ãŒã«ãåé€ããªããšããã³ããŒã¢ãžã¥ãŒã«ã®ã€ã³ã¹ããŒã«ããã³ãã¹ãäžã«ããã³ããŒã«æ¢ã«ã€ã³ã¹ããŒã«ãããŠããã¢ãžã¥ãŒã«ã®ãµã€ãããŒãžã§ã³ã®äœ¿çšã«èµ·å ããåé¡ãçºçããå¯èœæ§ããããŸãã ãã ããåé¡ã¯é垞解決ãããããããã°ããã®éãã·ã¹ãã ãå£ããäœè£ããªãå Žåã¯ãæåã«ãã³ããŒã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ããŸãããã®åŸããµã€ãã¢ãžã¥ãŒã«ã®ãããã£ã¬ã¯ããªãåé€ããããšãå¿ããªãã§ãã ããã
- /etc/portage/profile/package.providedãããã¹ãŠã®perlã¢ãžã¥ãŒã«ãåé€ããŸãã
- ãŸããã¢ãžã¥ãŒã«ã«å¿
èŠãªç§»æ€ãé
眮ããŸãïŒpackage.providedã䜿çšããçŸåšã€ã³ã¹ããŒã«ãããŠããªãå ŽåïŒïŒ
emerge -uDNa @world
until emerge -uDN --keep-going y \ Test-Deep Test-Differences Test-Distribution ⊠\ Math-BigInt-GMP math-pari ⊠\ ⊠do read -p "Press <Enter> to try again" done
æŽæ°ãã
g-cpanãŠãŒãã£ãªãã£ã¯ããcpan> upgradeãã®å®å šãªé¡äŒŒç©ãæäŸããŸããã
g-cpanãããã±ãŒãžãäœæããã¢ãžã¥ãŒã«ã®ã¿ãæŽæ°ããŸãïŒã€ãŸããperl-gcpan / *ã«ããŽãªãããperl-core / *ããã³dev-perl / *ããã®ããã±ãŒãžã¯æŽæ°ãããŸããïŒã ããããããã¯ããã»ã©æªããªããããããŸãã-æåŸã«ããããã®ã¢ãžã¥ãŒã«ãæŽæ°ããã«ã¯ãååãšããŠãebuildãperl-core / *ãŸãã¯dev-perl / *ãã/ usr / local / portageã«ã³ããŒããŠååãå€æŽããã ãã§ãã ãã ããã€ã³ã¹ããŒã«ãããŠããã¢ãžã¥ãŒã«ã®ããŒãžã§ã³ããã现ããå¶åŸ¡ãã以åã®ããŒãžã§ã³ã«ç°¡åã«ããŒã«ããã¯ã§ããå¯èœæ§ããããŸããg-cpan -u
ãŸãšã
ç§ã®æèŠã§ã¯ãg-cpanã¯ã°ããŒãã«ã«ã€ã³ã¹ããŒã«ãããPerlã¢ãžã¥ãŒã«ã®ç®¡çãæ¬åœã«ç°¡çŽ åããŸãã ãããŠã11é ç®ã®å·šå€§ãªã€ã³ã¹ããŒã«ã»ã¯ã·ã§ã³ã«ãããããããæ¬åœã«è€éãªããšã¯äœããããŸããïŒã€ã³ã¹ããŒã«ããå¿ èŠã®ããã¢ãžã¥ãŒã«ã決å®ãã以å€ã¯:)ïŒã
ãµãŒããŒã®ã¯ãªãŒã³ã¢ããã«é 匵ã£ãŠãã ããïŒ