#title KLDP.netÀÇ CVS »ç¿ëÇϱâ HOWTO '''!KLDPNetÀÇ CVS »ç¿ëÇϱâ''' [[TableOfContents]] == ¼­¹® == KLDPNet¿¡¼­ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇà·Á°í ÇϽðųª. ÇÁ·ÎÁ§Æ®¸¦ ÁøÇà ÁßÀε¥ KLDPNetÀÇ CVS »ç¿ë¹ýÀ» ¾Ë°íÀÚ ÇϽô ºÐ KLDPNetÀº GForge·Î ±¸¼ºµÈ FreeSoftware, OpenSource °³¹ß Ä¿¹Â´ÏƼ »çÀÌÆ® ÀÔ´Ï´Ù. ¿Ü±¹¿¡ ÀÖ´Â FreeSoftware, OpenSource °³¹ß Ä¿¹Â´ÏƼ »çÀÌÆ® Áß¿¡´Â SourceForge°¡ °¡Àå ¸¹Àº »ç¿ëÀÚ¸¦ °¡Áö°í ÀÖÀ¸¸ç ±× ¿Ü¿¡µµ [http://sv.gnu.org GNU Savannah], [http://berlios.de berlios.de] µîÀÌ ÀÖ½À´Ï´Ù. == KLDPNetÀÇ ¸ÞÀϸµ ¸®½ºÆ®¿¡ CVS Ä¿¹Ô ¸Þ½ÃÁö Æ÷½ºÆà Çϱâ == CVS·Î ¼Ò½ºÄڵ带 °ü¸®ÇÒ¶§ °¡Àå ÇÊ¿äÇÑ °ÍÀÌ '''CVS·Î±×¸¦ ³²±â´Â °Í'''ÀÔ´Ï´Ù. ·Î±×¸¦ ³²±âÁö ¾ÊÀ¸¸é ´©°¡ ¾î¶² ÆÄÀÏÀ» ¾î¶»°Ô ¼öÁ¤ Çß´ÂÁö ¾Ë±â Èûµì´Ï´Ù. KLDPNet¿¡¼­´Â ¸ÞÀϸµ ¸®½ºÆ®¸¦ ¼­ºñ½º ÇÏ°í ÀÖ½À´Ï´Ù. KLDPNetÀÇ CVS¿¡ Ä¿¹ÔÀ» Çϸé CVS Ä¿¹Ô ¸Þ½ÃÁö¸¦ ¸ÞÀϸµ ¸®½ºÆ®¿¡ ÀÚµ¿À¸·Î Æ÷½ºÆà µÇµµ·Ï ¼³Á¤ÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÏ°Ú½À´Ï´Ù. === CVSROOT ¼³Á¤ === ¿©·¯ºÐµéÀÌ ¸¸µç ÇÁ·ÎÁ§Æ®¿¡´Â CVS ÀúÀå¼Ò¸¦ ÇÔ²² Á¦°øÇÏ°í ÀÖ½À´Ï´Ù. °¢°¢ÀÇ ÇÁ·ÎÁ§Æ® ÆäÀÌÁöÀÇ CVS ¸Þ´º¿¡¼­ CVS ÀúÀå¼Ò µÑ·¯º¸±â(!ViewCVS)¿¡ µé¾î°¡ º¸¸é CVS ÀúÀå¼ÒÀÇ ¸ð½ÀÀ» À¥À¸·Î Ç¥½ÃÇØ ÁÝ´Ï´Ù. ÇÁ·ÎÁ§Æ®¸¦ óÀ½ ¸¸µé¾úÀ» °æ¿ì '''CVSROOT'''¶ó´Â µð·ºÅ丮¸¸ ÀÖÀ» °ÍÀÔ´Ï´Ù. ÀÌ '''CVSROOT''' µð·ºÅ丮¿¡¼­ CVSÀÇ È¯°æ¼³Á¤À» ÇÒ ¼ö ÀÖ½À´Ï´Ù. '''CVSROOT''' µð·ºÅ丮 ¾È¿¡´Â ´ÙÀ½°ú °°Àº ÆÄÀϵéÀÌ Á¸Àç ÇÕ´Ï´Ù. {{{#!vim nosyntax checkoutlist commitinfo config cvswrappers editinfo loginfo modules notify rcsinfo taginfo verifymsg }}} ÀÚ½ÅÀÇ ÇÁ·ÎÁ§Æ®ÀÇ CVS ÀúÀå¼Ò¿¡¼­ CVSROOT µð·ºÅ丮¸¦ üũ¾Æ¿ô ÇÑ µÚ¿¡ ÆÄÀÏÀ» ¼öÁ¤ÇÑ ´ÙÀ½ ´Ù½Ã Ä¿¹ÔÀ» ÇÏ¿© ¼³Á¤ ÆÄÀÏÀ» ¼öÁ¤ÇÕ´Ï´Ù. '''people'''Àº ÇÁ·ÎÁ§Æ® ¸â¹öÀÇ ID ÀÔ´Ï´Ù. '''exproject'''´Â ÇÁ·ÎÁ§Æ® À̸§ÀÔ´Ï´Ù. ssh¸¦ ÀÌ¿ëÇÑ Ã¼Å©¾Æ¿ô cvs -z3 -d:ext:'''people'''@cvs.kldp.net:/cvsroot/'''exproject''' co CVSROOT attachment:log_accum.pl.gz ÀÌ ÆÄÀÏÀ» ¹Þ°í ¾ÐÃàÀ» Ǭ µÚ ¾Æ·¡ $MAIL_TO ºÎºÐÀ» ÀÚ½ÅÀÇ CVS Ä¿¹Ô ·Î±× ¸ÞÀϸµ ¸®½ºÆ® ÁÖ¼Ò·Î ¹Ù²ß´Ï´Ù. {{{#!vim perl $MAIL_TO = 'cvs-example@lists.kldp.net'; }}} To: ºÎºÐµµ ¾Ë¸Â°Ô ¹Ù²ß´Ï´Ù. {{{#!vim perl print(MAIL "To: Example CVS Commit Message <$MAIL_TO>\n"); }}} log_accum.plÀ» ¹æ±Ý üũ¾Æ¿ô ¹ÞÀº CVSROOT µð·ºÅ丮¿¡ º¹»çÇÕ´Ï´Ù. CVSROOT¿¡ Ãß°¡ÇÏ°í µÚ Ä¿¹Ô ÇÕ´Ï´Ù. {{{#!vim nosyntax CVSROOT# cvs add log_accum.pl CVSROOT# cvs commit }}} ÀÌÁ¦ ¾Æ·¡ µÎ ÆÄÀÏÀ» ¼öÁ¤ ÇÕ´Ï´Ù. '''checkoutlist''' {{{#!vim conf # The "checkoutlist" file is used to support additional version controlled # administrative files in $CVSROOT/CVSROOT, such as template files. # # The first entry on a line is a filename which will be checked out from # the corresponding RCS file in the $CVSROOT/CVSROOT directory. # The remainder of the line is an error message to use if the file cannot # be checked out. # # File format: # # [] # # comment lines begin with '#' log_accum.pl file not found #options file not found }}} '''loginfo''' {{{#!vim conf # The "loginfo" file controls where "cvs commit" log information # is sent. The first entry on a line is a regular expression which must match # the directory that the change is being made to, relative to the # $CVSROOT. If a match is found, then the remainder of the line is a filter # program that should expect log information on its standard input. # # If the repository name does not match any of the regular expressions in this # file, the "DEFAULT" line is used, if it is specified. # # If the name ALL appears as a regular expression it is always used # in addition to the first matching regex or DEFAULT. # # You may specify a format string as part of the # filter. The string is composed of a `%' followed # by a single format character, or followed by a set of format # characters surrounded by `{' and `}' as separators. The format # characters are: # # s = file name # V = old version number (pre-checkin) # v = new version number (post-checkin) # # For example: #DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog # or #DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog DEFAULT /usr/bin/perl $CVSROOT/CVSROOT/log_accum.pl %s }}} ÀÌÁ¦ ÀÌ ÆÄÀϵ鵵 Ä¿¹Ô ÇÕ´Ï´Ù. {{{#!vim nosyntax CVSROOT# cvs commit }}} ¸ÞÀϸµ ¸®½ºÆ® ¼³Á¤¿¡¼­ °¢ ¸â¹öµéÀÇ À̸ÞÀÏ ÁÖ¼Ò¸¦ Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù. @users.kldp.netÀ¸·Î Ä¿¹Ô ¸ÞÀÏÀÌ º¸³»Áö±â ¶§¹®¿¡ ÇØ´ç ¸ÞÀÏÀ» Çã¿ëÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. Çã¿ëÇØ ÁÖÁö ¾ÊÀ¸¸é ¸ÞÀϸµ ¸®½ºÆ®¿¡ Æ÷½ºÆà µÇÁö ¾Ê½À´Ï´Ù. ¸ÞÀϸµ ¸®½ºÆ® °ü¸®ÀÚ ÆäÀÌÁö·Î µé¾î°©´Ï´Ù. Privacy options -> Sender filters -> Non-member filters(List of non-member addresses whose postings should be automatically accepted.)[[BR]] °³ÀÎ Á¤º¸ º¸È£ Á¤Ã¥ -> º¸³½ÀÌ °É·¯³»±â -> ºñȸ¿ø °É·¯³»±â(ºñȸ¿øÀÇ ÁÖ¼ÒÁß º¸³½ ±ÛÀ» ÀÚµ¿À¸·Î ¹Þ¾ÆµéÀÏ ¸ñ·ÏÀ» ³ª¿­Çϼ¼¿ä.) {{{#!vim nosyntax hello@users.kldp.net hi@users.kldp.net }}} °¢ ¸â¹öµéÀÇ ¸ÞÀÏ ÁÖ¼Ò¸¦ Ãß°¡ÇÕ´Ï´Ù. ÀÌÁ¦ºÎÅÍ ¼Ò½º¸¦ ¼öÁ¤ÇÏ°í Ä¿¹ÔÀ» ÇÏ¸é ¸ÞÀϸµ ¸®½ºÆ®·Î Ä¿¹Ô ¸Þ½ÃÁö°¡ Æ÷½ºÆà µÉ °ÍÀÔ´Ï´Ù. Please see CVSCommitNotification == KLDPNetÀÇ CVS, SSH ¾ÏÈ£ ¾øÀÌ »ç¿ëÇϱâ == °³¹ßÀÚµéÀº anonymous ·Î Á¢¼ÓÇÏÁö ¾Ê°í, ÀÚ½ÅÀÇ °èÁ¤À¸·Î cvs·Î Á¢¼ÓÇÏ¿© ¼Ò½º¸¦ ¼öÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. À̶§, ¸Å¹ø ¾ÏÈ£¸¦ ¹°¾î º¸°Ô µÇ´Âµ¥, ÀÌ´Â CVS°¡ ¿ÜºÎ ÇÁ·Î±×·¥À¸·Î SSH¸¦ »ç¿ëÇϸ鼭 SSHÀÇ ÀÎÁõ ¹æ½ÄÀ» µû¸£±â ¶§¹®ÀÔ´Ï´Ù. KLDPNet cvs ÀúÀå¼ÒÀÇ °³ÀÎ °èÁ¤¿¡´Â sshdÀÇ public key method ÀÎÁõ ¹æ½Ä¿¡ »ç¿ëµÇ´Â ~/.ssh/authorized_keys ÆÄÀÏÀÌ ÀÖ¾î, ¿ÜºÎÀÇ public key¸¦ µî·ÏÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÏ°Ú½À´Ï´Ù. openssh¸¦ »ç¿ëÇÒ ¶§¸¦ °¡Á¤ÇÏ°í ¼³¸íµå¸®°Ú½À´Ï´Ù. '''rsa1 ¿ë private/public key pair ¸¦ ¸¸µé±â''' {{{#!vim nosyntax $ ssh-keygen -t rsa1 Generating public/private rsa1 key pair. Enter file in which to save the key (/hunkim/.ssh/identity): Enter passphrase (empty for no passphrase): xxxx Enter same passphrase again: xxxx Your identification has been saved in /hunkim/.ssh/identity. Your public key has been saved in /hunkim/.ssh/identity.pub. The key fingerprint is: ba:47:d9:81:81:14:d0:ca:f5:f5:9b:27:11:62:25:5d hunkim@ucsc.edu }}} passphrase¶õ private key¸¦ ¾ÏȣȭÇϴµ¥ »ç¿ëµÇ´Â ¾ÏÈ£ÀÔ´Ï´Ù. ÀÌ ÇÔÈ£¸¦ °ø¹éÀ¸·Î Çصµ ÁÁÁö¸¸ º¸¾È»ó ÁöÁ¤À» ÇØµÎ½Ã°í ´ÙÀ½°ú °°ÀÌ ssh-agent¸¦ »ç¿ëÇϽô°ÍÀÌ ÁÁ½À´Ï´Ù. ssh-agent´Â ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÏ½Ã¸é µË´Ï´Ù. {{{#!vim nosyntax $ eval `ssh-agent` Agent pid 14502 $ ssh-add Enter passphrase for /hunkim/.ssh/identity: xxxx Identity added: /hunkim/.ssh/identity (/hunkim/.ssh/identity) }}} ~/.ssh/identity.pub ÆÄÀÏÀÌ »ý¼ºµÈ public keyÀÔ´Ï´Ù. '''¸¸µç public key ¸¦ KLDPNet ¿¡ µî·Ï''' KLDPNetÀÇ ~/.ssh/authorized_keys ÆÄÀÏ¿¡ µî·ÏÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. https://kldp.net/account/editsshkeys.php ÀÌ ÆäÀÌÁö¸¦ ·Î±×ÀÎÇÑµÚ ¿­¾îº¸¸é, »ý¼ºÇÑ public key¸¦ µî·ÏÇϴ âÀÌ ³ª¿É´Ï´Ù. ÀÌ Ã¢¿¡ »ý¼ºµÈ Public keyÀÎ ~/.ssh/identity.pub ÆÄÀÏÀÇ ³»¿ëÀ» º¹»çÇØ ³Ö½À´Ï´Ù. ÁÖÀÇÇÒ °ÍÀº À§ ³»¿ëÀÌ ÁÙ¹Ù²ÞµÇ¾î µé¾î°¡´Â ÀÏÀÌ ¾øµµ·ÏÇؾßÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ¸Ç ¾Õ°ú µÚÀÇ °ø¹éÀº »ó°ü¾ø½À´Ï´Ù. µî·ÏµÈ public key´Â ¹Ù·Î ¹Ý¿µµÇÁö ¾Ê½À´Ï´Ù. crontab¿¡ µî·ÏµÈ ÀÛ¾÷ÀÌ ½ÇÇàµÉ ¶§¿¡ ÀϾ±â ¶§¹®ÀÔ´Ï´Ù. '''SSH Version 1.0 »ç¿ë ¼³Á¤''' KLDPNet´Â ssh version 1.0 À¸·Î ÀÛµ¿ÇϹǷΠÀÌ »çÀÌÆ®¿¡ ´ëÇؼ­´Â ±âº»ÀûÀ¸·Î ¹öÀüÀ» ¹Ù²Ùµµ·Ï ÇÕ´Ï´Ù. ~/.ssh/config ÆÄÀÏÀ» ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÕ´Ï´Ù. {{{#!vim nosyntax Host *.kldp.net Protocol 1 }}} public key update°¡ ÀϾÀ»°Å¶ó »ý°¢µÈ ÈÄ :) ½ÃµµÇغ¸¼¼¿ä. == Q&A (Áú¹®°ú´ë´ä) == '''Q''': kldp.netÀÇ cvs¿¡¼­ cvs -z3 -d:pserver:anonymous@cvs.kldp.net:/cvsroot/ÇÁ·ÎÁ§Æ®¸í co modulename À¸·Î µÇ¾î Àִµ¥, ¿©±â¿¡¼­ modulename Àº ¹«¾ùÀ» ¸»ÇÏ´Â °ÍÀΰ¡¿ä? '''A''': È®ÀÎÇغ¸´Ï CVSROOT ÀÇ ÇÏÀ§ Æú´õ°¡ modulename ÀÌ µÇ´Â °Í °°Àºµ¥. ¸ÂÁÒ? ---- '''Q''': ÇöÀç [KLDPNet]ÀÇ [CVS]°¡ !SSL1À¸·Î ¿¬°á °¡´ÉÇմϱî? !SSL2·Î Á¢¼ÓÇØ¾ß ÇÏ´Â °Í °°Àºµ¥, Ȥ½Ã È®ÀÎ °¡´ÉÇϽŠºÐ²²¼­´Â È®ÀÎÇØÁÖ½Ã¸é °¨»çÇÏ°Ú½À´Ï´Ù. ---- CategoryKLDPNet CategoryKLDP