<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SukmoonLee Blog &#187; System</title>
	<atom:link href="http://blog.sukmoonlee.com/wordpress/archives/category/system/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.sukmoonlee.com/wordpress</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Thu, 20 Sep 2012 00:01:14 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>mysql password</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/237</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/237#comments</comments>
		<pubDate>Tue, 04 Sep 2012 13:09:32 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[sha1]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=237</guid>
		<description><![CDATA[MySQL에서 사용하는 패스워드로 사용할 수 있는 함수를 버전별로 테스트한 결과입니다. 프로그램을 시작할때 참고를 해서 테스트를 해보시면 좋습니다. 비밀번호를 md5()를 한 다음에 sha1()을 처리하고, 나머지 데이타는 encode() 혹은 des_encrypt()를 내부 암호키를 이용해서 저장하고 관리하는 방법을 사용하면 효과적입니다. [smlee@A ~]$ mysql -p -u root Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. <a href='http://blog.sukmoonlee.com/wordpress/archives/237' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>MySQL에서 사용하는 패스워드로 사용할 수 있는 함수를 버전별로 테스트한 결과입니다.</p>
<p>프로그램을 시작할때 참고를 해서 테스트를 해보시면 좋습니다.</p>
<p>비밀번호를 md5()를 한 다음에 sha1()을 처리하고, 나머지 데이타는 encode() 혹은 des_encrypt()를 내부 암호키를 이용해서 저장하고 관리하는 방법을 사용하면 효과적입니다.</p>
<pre>
[smlee@A ~]$ mysql -p -u root
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 644167
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> select password('dltjrans');
+----------------------+
| password('dltjrans') |
+----------------------+
| 337c52a05f635196     |
+----------------------+
1 row in set (0.03 sec)

mysql> select sha1('dltjrans');
+------------------------------------------+
| sha1('dltjrans')                         |
+------------------------------------------+
| 2734580af3645aae53a80ce3a60841636e4f5f16 |
+------------------------------------------+
1 row in set (0.02 sec)

mysql> select sha2('dltjrans');
ERROR 1305 (42000): FUNCTION sha2 does not exist

mysql> select encrypt('dltjrans');
+---------------------+
| encrypt('dltjrans') |
+---------------------+
| iBlePNVyWUPF2       |
+---------------------+
1 row in set (0.00 sec)

mysql> select md5('dltjrans');
+----------------------------------+
| md5('dltjrans')                  |
+----------------------------------+
| 44022b75cd0626a239a1c0ec42e0b902 |
+----------------------------------+
1 row in set (0.00 sec)

mysql> select old_password('dltjrans');
+--------------------------+
| old_password('dltjrans') |
+--------------------------+
| 337c52a05f635196         |
+--------------------------+
1 row in set (0.00 sec)

mysql> show variables;
+---------------------------------+------------------------------------------------------------+
| Variable_name                   | Value                                                      |
+---------------------------------+------------------------------------------------------------+
......
| old_passwords                   | ON                                                         |
......
+---------------------------------+------------------------------------------------------------+
239 rows in set (0.01 sec)
</pre>
<pre>

[smlee@B ~]$ /usr/local/mysql/bin/mysql --character-sets-dir=utf8  -p -u root
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 326943
Server version: 5.1.58-log Source distribution

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select password('dltjrans');
+-------------------------------------------+
| password('dltjrans')                      |
+-------------------------------------------+
| *8FE4DE9DB3E99B3D33C46101724499112B4E08C0 |
+-------------------------------------------+
1 row in set (0.00 sec)

mysql> select sha('dltjrans');
+------------------------------------------+
| sha('dltjrans')                          |
+------------------------------------------+
| 2734580af3645aae53a80ce3a60841636e4f5f16 |
+------------------------------------------+
1 row in set (0.00 sec)

mysql> select sha1('dltjrans');
+------------------------------------------+
| sha1('dltjrans')                         |
+------------------------------------------+
| 2734580af3645aae53a80ce3a60841636e4f5f16 |
+------------------------------------------+
1 row in set (0.00 sec)

mysql> select encrypt('dltjrans');
+---------------------+
| encrypt('dltjrans') |
+---------------------+
| dZew2kBw.Cajg       |
+---------------------+
1 row in set (0.00 sec)

mysql> select old_password('dltjrans');
+--------------------------+
| old_password('dltjrans') |
+--------------------------+
| 337c52a05f635196         |
+--------------------------+
1 row in set (0.00 sec)
</pre>
<pre>

[smlee@C ~]$ mysql -p -u root
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 33751
Server version: 5.5.21 MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select password('dltjrans');
+-------------------------------------------+
| password('dltjrans')                      |
+-------------------------------------------+
| *8FE4DE9DB3E99B3D33C46101724499112B4E08C0 |
+-------------------------------------------+
1 row in set (0.00 sec)

mysql> select sha('dltjrans');
+------------------------------------------+
| sha('dltjrans')                          |
+------------------------------------------+
| 2734580af3645aae53a80ce3a60841636e4f5f16 |
+------------------------------------------+
1 row in set (0.03 sec)

mysql> select sha1('dltjrans');
+------------------------------------------+
| sha1('dltjrans')                         |
+------------------------------------------+
| 2734580af3645aae53a80ce3a60841636e4f5f16 |
+------------------------------------------+
1 row in set (0.00 sec)

mysql> select encrypt('dltjrans');
+---------------------+
| encrypt('dltjrans') |
+---------------------+
| yb/DPswDxmSnk       |
+---------------------+
1 row in set (0.00 sec)

mysql> select old_password('dltjrans');
+--------------------------+
| old_password('dltjrans') |
+--------------------------+
| 337c52a05f635196         |
+--------------------------+
1 row in set (0.00 sec)

mysql>
</pre>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/237?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/237/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql에서 left outer join에서 없는 항목 찾기</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/243</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/243#comments</comments>
		<pubDate>Tue, 04 Sep 2012 12:01:45 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[left outer join]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=243</guid>
		<description><![CDATA[DB에서 가능하면 join을 사용하지 않도록 설계를 하면 성능에 많은 도움이 된다. 하지만 어쩔수 없는 경우에는 outer join을 사용하면 빠른 속도로 join이 가능하다. 그래서 left outer join을 자주 사용하게 되는데. 이런 경우 join이 되는 테이블의 데이타가 없는 경우에도 결과값은 생성이 되게 된다. 이런 경우에 join이 되는 테이블의 데이타가 없는 경우에는 아래와 같이 판별이 가능한다. (MySQL 메뉴얼에서 <a href='http://blog.sukmoonlee.com/wordpress/archives/243' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>DB에서 가능하면 join을 사용하지 않도록 설계를 하면 성능에 많은 도움이 된다.</p>
<p>하지만 어쩔수 없는 경우에는 outer join을 사용하면 빠른 속도로 join이 가능하다.</p>
<p>그래서 left outer join을 자주 사용하게 되는데. 이런 경우 join이 되는 테이블의 데이타가 없는 경우에도 결과값은 생성이 되게 된다.</p>
<p>이런 경우에 join이 되는 테이블의 데이타가 없는 경우에는 아래와 같이 판별이 가능한다.<br />
(MySQL 메뉴얼에서 참고한 내용)</p>
<blockquote><p>If there is a row in A that matches the WHERE clause, but there is no row in B that matches the ON condition, an extra B row is generated with all columns set to NULL.</p></blockquote>
<p>실제로 2개의 테이블이 느슨한 연결 상태라서 foreign key가 없는 row가 존재할 수 있다.<br />
아래와 같은 쿼리를 통해서 확인하고, delete 처리가 가능하다.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span>
<span style="color: #993333; font-weight: bold;">FROM</span> tb_abc a
<span style="color: #993333; font-weight: bold;">LEFT</span> <span style="color: #993333; font-weight: bold;">JOIN</span> tb_123 b <span style="color: #993333; font-weight: bold;">ON</span> a<span style="color: #66cc66;">.</span>title <span style="color: #66cc66;">=</span> b<span style="color: #66cc66;">.</span>title
<span style="color: #993333; font-weight: bold;">WHERE</span> a<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">TYPE</span> <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'ok'</span>
<span style="color: #993333; font-weight: bold;">AND</span> b<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">STATUS</span> <span style="color: #993333; font-weight: bold;">IS</span> <span style="color: #993333; font-weight: bold;">NULL</span></pre></td></tr></table></div>

<p>참고 URL : <a href="http://dev.mysql.com/doc/refman/5.5/en/left-join-optimization.html">http://dev.mysql.com/doc/refman/5.5/en/left-join-optimization.html</a></p>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/243?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/243/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 7 의 단축키</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/214</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/214#comments</comments>
		<pubDate>Wed, 29 Aug 2012 04:01:21 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[key]]></category>
		<category><![CDATA[logo]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=214</guid>
		<description><![CDATA[회사에서는 XP를 사용하지만, 집이나 노트북에서는 Windows 7을 사용한다. Windows 7을 사용하게 되면 하단의 상태바에 프로그램을 고정할수 있는 기능이 있습니다. 위에서와 같이 자주 사용하는 프로그램들을 상태바에 고정하고 사용하게 되는데요. 해당 프로그램을 단축키로 바로 실행을 할수 있는 방법을 우연히 알게 되어서 검색을 해보니 아래와 같이 소개가 되어 있더군요. 참고 URL : http://windows.microsoft.com/en-us/windows7/keyboard-shortcuts http://windows.microsoft.com/ko-kr/windows7/keyboard-shortcuts]]></description>
				<content:encoded><![CDATA[<p>회사에서는 XP를 사용하지만, 집이나 노트북에서는 Windows 7을 사용한다.<br />
Windows 7을 사용하게 되면 하단의 상태바에 프로그램을 고정할수 있는 기능이 있습니다.</p>
<p><a href="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/08/1.png"><img src="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/08/1.png" alt="" title="1" width="1238" height="123" class="aligncenter size-full wp-image-215" /></a></p>
<p>위에서와 같이 자주 사용하는 프로그램들을 상태바에 고정하고 사용하게 되는데요. 해당 프로그램을 단축키로 바로 실행을 할수 있는 방법을 우연히 알게 되어서 검색을 해보니 아래와 같이 소개가 되어 있더군요.</p>
<p><a href="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/08/21.png"><img src="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/08/21.png" alt="" title="2" width="523" height="93" class="aligncenter size-full wp-image-218" /></a><br />
<a href="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/08/3.png"><img src="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/08/3.png" alt="" title="3" width="519" height="93" class="aligncenter size-full wp-image-217" /></a></p>
<p>참고 URL :<br />
 <a href="http://windows.microsoft.com/en-us/windows7/keyboard-shortcuts">http://windows.microsoft.com/en-us/windows7/keyboard-shortcuts</a><br />
 <a href="http://windows.microsoft.com/ko-kr/windows7/keyboard-shortcuts">http://windows.microsoft.com/ko-kr/windows7/keyboard-shortcuts</a></p>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/214?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/214/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>svn 패스워드 저장하지 않기</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/201</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/201#comments</comments>
		<pubDate>Tue, 28 Aug 2012 12:10:50 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[store-passwords]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=201</guid>
		<description><![CDATA[동일한 계정으로 여러 명이 svn을 사용하는 경우에는 패스워드를 저장하지 않고, commit 하는 사용자별로 자신의 계정을 사용해서 commit을 하는 것이 효과적입니다. 대개 개발서버를 두고 작업을 하는 경우에 이렇게 하면 누가 commit을 하고, 해당 파일을 마지막에 수정했는지를 쉽게 파악이 가능합니다. svn 을 shell에서 사용할때 패스워드 저장하지 않는 방법입니다. 1. 기존에 저장된 패스워드 삭제 [smlee@localhost .subversion]$ pwd /home/smlee/.subversion <a href='http://blog.sukmoonlee.com/wordpress/archives/201' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>동일한 계정으로 여러 명이 svn을 사용하는 경우에는 패스워드를 저장하지 않고, commit 하는 사용자별로 자신의 계정을 사용해서 commit을 하는 것이 효과적입니다.</p>
<p>대개 개발서버를 두고 작업을 하는 경우에 이렇게 하면 누가 commit을 하고, 해당 파일을 마지막에 수정했는지를 쉽게 파악이 가능합니다.</p>
<p>svn 을 shell에서 사용할때 패스워드 저장하지 않는 방법입니다.</p>
<p>1. 기존에 저장된 패스워드 삭제</p>
<ul>
    [smlee@localhost .subversion]$ pwd<br />
    /home/smlee/.subversion</p>
<p>    [smlee@localhost .subversion]$ mv auth oldauth
</ul>
<p>2. 패스워드 저장하지 않는 옵션 변경</p>
<ul>
    [smlee@localhost .subversion]$ pwd<br />
    /home/smlee/.subversion</p>
<p>    [smlee@localhost .subversion]$ grep password config<br />
    ### Set password stores used by Subversion. They should be<br />
    ### the order in which password stores are used.<br />
    ### Valid password stores:<br />
    # password-stores = gnome-keyring,kwallet<br />
    ### Both &#8216;store-passwords&#8217; and &#8216;store-auth-creds&#8217; can now be<br />
    ### Set store-passwords to &#8216;no&#8217; to avoid storing passwords in the<br />
    ### but Subversion will never save your password to disk in<br />
    ### Note that this option only prevents saving of *new* passwords;<br />
    ### it doesn&#8217;t invalidate existing passwords.  (To do that, remove<br />
    <strong>store-passwords = no</strong>
</ul>
<p>3. 이후에 svn commit을 하게 되면 마지막 commit 한 사용자의 패스워드를 입력해야만 commit 이 가능해짐<br />
   ==> 만약 자신의 계정이 아닌 경우에는 아래와 같이 패스워드를 입력하지 않고 엔터만 입력해서 사용자 변경 가능</p>
<ul>
    [smlee@localhost public_html]$ svn commit<br />
    인증 영역(realm): <svn://localhost:3690> 0ee1c4cf-d430-49e6-9165-ac7844d2f91e<br />
    &#8216;smlee&#8217;의 암호:<br />
    인증 영역(realm): <svn://localhost:3690> 0ee1c4cf-d430-49e6-9165-ac7844d2f91e<br />
    사용자명:
</ul>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/201?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/201/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EUC-KR to UTF-8</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/199</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/199#comments</comments>
		<pubDate>Tue, 28 Aug 2012 11:52:08 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[euc-kr]]></category>
		<category><![CDATA[iconv]]></category>
		<category><![CDATA[utf-8]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=199</guid>
		<description><![CDATA[최근의 대부분 웹페이지는 UTF-8을 사용하고 있습니다. 예전에 만들어진 EUC-KR 페이지를 UTF-8로 변환하는 경우가 많이 있습니다. 이런 경우에 일일이 파일을 converting을 해야 하는데요. 간단한 스크립트를 이용해서 편리합니다. [smlee@localhost ~]# cat conv.sh #!/bin/sh &#160; set -x iconv -f uhc -t utf-8 $1 &#62; /tmp/a RET=$? &#160; if [ $RET -eq 0 ]; then mv /tmp/a $1 else <a href='http://blog.sukmoonlee.com/wordpress/archives/199' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>최근의 대부분 웹페이지는 UTF-8을 사용하고 있습니다.</p>
<p>예전에 만들어진 EUC-KR 페이지를 UTF-8로 변환하는 경우가 많이 있습니다.<br />
이런 경우에 일일이 파일을 converting을 해야 하는데요. 간단한 스크립트를 이용해서 편리합니다.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="shell" style="font-family:monospace;">[smlee@localhost ~]# cat conv.sh
#!/bin/sh
&nbsp;
set -x
iconv -f uhc -t utf-8 $1 &gt; /tmp/a
RET=$?
&nbsp;
if [ $RET -eq 0 ]; then
        mv /tmp/a $1
else
        echo &quot;FAIL : $1&quot;;
fi</pre></td></tr></table></div>

<p>위의 스크립트를 ls -1 > 1.sh 로 만든 다음에 vi에서 1.sh를 치환해서 모든 파일에 대해서 conv.sh를 실행하도록 아래와 같이 설정하면 빠르게 치환이 가능합니다.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="shell" style="font-family:monospace;">[smlee@localhost ~]# cat 1.sh
sh conv.sh index.php
sh conv.sh main.php</pre></td></tr></table></div>

<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/199?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/199/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>svn del 명령어</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/178</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/178#comments</comments>
		<pubDate>Tue, 28 Aug 2012 11:22:39 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Program]]></category>
		<category><![CDATA[System]]></category>
		<category><![CDATA[del]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=178</guid>
		<description><![CDATA[svn을 사용하면서 파일을 삭제할때 유용한 옵션 2가지를 소개합니다. 1. svn del &#8211;keep-local svn 레파지토리에서만 파일을 제거하고, 해당 파일을 로컬에 남겨두는 기능입니다. 2. svn del &#8211;force rm 명령어를 통해서 파일을 삭제한 경우에 svn 레파지토리에는 삭제가 안되어 있는 경우 위의 명령어를 통해서 로컬 레파지토리에 삭제를 할수 있습니다. 최종 반영은 commit 할때 반영이 됩니다. [smlee@localhost ~]$ svn help <a href='http://blog.sukmoonlee.com/wordpress/archives/178' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>svn을 사용하면서 파일을 삭제할때 유용한 옵션 2가지를 소개합니다.</p>
<p>1. svn del &#8211;keep-local<br />
 svn 레파지토리에서만 파일을 제거하고, 해당 파일을 로컬에 남겨두는 기능입니다.</p>
<p>2. svn del &#8211;force<br />
 rm 명령어를 통해서 파일을 삭제한 경우에 svn 레파지토리에는 삭제가 안되어 있는 경우 위의 명령어를 통해서 로컬 레파지토리에 삭제를 할수 있습니다. 최종 반영은 commit 할때 반영이 됩니다.</p>
<pre>
[smlee@localhost ~]$ svn help del
delete (del, remove, rm): 파일과 디렉토리를 버전 관리 대상에서 제거합니다.
사용법: 1. delete PATH...
        2. delete URL...

  1. PATH에 있는 모든 파일, 디렉토리들을 다음 커밋에서 제거하도록
     스케쥴합니다. 커밋되지 않은 파일과 디렉토리는 --keep-local 옵션을
     사용하지 않는한 즉시 작업사본에서 제거됩니다.
     PATH가 버전 관리 대상이 아니거나 그러한 파일을 포함하는 디렉토리라면
     --force 옵션을 주어야만 삭제됩니다.

  2. URL로 지정된 아이템들은 저장소에서 즉시 삭제됩니다.


옵션:
  --force                  : 강제로 실행합니다
  -q [--quiet]             : 아무것도 출력하지 않거나, 요약 정보만 출력합니다
  --targets ARG            : ARG로 주어진 파일 내용을 옵션으로 추가합니다
  -m [--message] ARG       : 커밋 로그 메시지를 지정합니다
  -F [--file] ARG          : arg에서 로그 메시지를 읽습니다
  --force-log              : 로그 메시지의 유효성을 확인하지 않습니다
  --editor-cmd ARG         : arg를 외부 편집기로 사용합니다
  --encoding ARG           : 값을 arg에 해당하는 문자코드로 취급합니다
  --with-revprop ARG       : set revision property ARG in new revision
                             using the name[=value] format
  --keep-local             : 작업사본의 경로를 유지합니다

글로벌 옵션:
  --username ARG           : arg를 접속에 필요한 사용자 ID로 사용합니다
  --password ARG           : arg를 접속에 필요한 패스워드로 사용합니다
  --no-auth-cache          : 인증 정보를 캐시에 저장하지 않습니다
  --non-interactive        : 대화식 사용자 입력을 기다리지 않습니다
  --trust-server-cert      : accept unknown SSL server certificates without
                             prompting (but only with '--non-interactive')
  --config-dir ARG         : arg로 지정된 디렉토리에서 사용자 구성화일을 읽습니다
  --config-option ARG      : set user configuration option in the format:
                                 FILE:SECTION:OPTION=[VALUE]
                             For example:
                                 servers:global:http-library=serf
</pre>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/178?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/178/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl Module Install &amp; Upgrade</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/167</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/167#comments</comments>
		<pubDate>Mon, 23 Apr 2012 12:50:55 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[cpan]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=167</guid>
		<description><![CDATA[예전에 만들었던 perl 프로그램을 실행했더니 아래와 같은 오류가 발생을 했습니다. 아마도 시스템에 기존에 패키지로 설치되었던 perl module이 upgrade가 되면서 발생된 이슈입니다. 관련된 모듈은 패키지로 설치되지 않고, CPAN Module을 통해서 설치된 모듈이라서 아래와 같은 현상이 발견이 되었습니다. [root@localhost message]# perl xxx.pl File::Temp version 0.18 required--this is only version 0.16 at /usr/lib/perl5/site_perl/5.8.8/MIME/Tools.pm line 14. BEGIN failed--compilation aborted <a href='http://blog.sukmoonlee.com/wordpress/archives/167' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>예전에 만들었던 perl 프로그램을 실행했더니 아래와 같은 오류가 발생을 했습니다.<br />
아마도 시스템에 기존에 패키지로 설치되었던 perl module이 upgrade가 되면서 발생된 이슈입니다.</p>
<p>관련된 모듈은 패키지로 설치되지 않고, CPAN Module을 통해서 설치된 모듈이라서 아래와 같은 현상이 발견이 되었습니다.</p>
<pre>[root@localhost message]# perl xxx.pl
File::Temp version 0.18 required--this is only version 0.16 at /usr/lib/perl5/site_perl/5.8.8/MIME/Tools.pm line 14.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/MIME/Tools.pm line 14.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/MIME/Parser.pm line 140.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/MIME/Parser.pm line 140.
Compilation failed in require at xxx.pl line 6.
BEGIN failed--compilation aborted at xxx.pl line 6.</pre>
<p>이런 경우에는 CPAN 모듈을 어떻게 업데이트를 할까 고민을 하다가 그냥 기존 설치된 모듈을 다시 설치를 하니 업데이트가 되더군요.<br />
아래아 같이 기존의 CPAN 모듈 업데이트 방법으로 설치를 하면 됩니다.</p>
<pre>[root@localhost message]# perl -MCPAN -e shell
Terminal does not support AddHistory.

cpan shell -- CPAN exploration and modules installation (v1.7602)
ReadLine support available (try 'install Bundle::CPAN')

cpan> install File::Temp</pre>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/167?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/167/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS 4 yum</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/148</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/148#comments</comments>
		<pubDate>Wed, 18 Apr 2012 13:09:19 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[CentOS-Base.repo]]></category>
		<category><![CDATA[centos4]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=148</guid>
		<description><![CDATA[Redhat의 RHEL4가 생산이 중단이 되었습니다. 즉 더이상 커널 패치 및 어플 패치를 제공하지 않는다는 것입니다. https://access.redhat.com/support/policy/updates/errata/ 같은 RPM을 사용하고 있는 CentOS4의 경우에는 같은 운명을 가지고 있습니다. 아래의 사이트에서 보면 http://vault.centos.org/4.9/ 에서 마지막 패키지를 제공하고 있습니다. http://lists.centos.org/pipermail/centos-announce/2012-February/018462.html 하지만 아직도 여전히 많은 시스템들이 CentOS 4 기반으로 운영이 되고 있기 때문에 2012년 2월까지 만들어진 패키지를 이용해서 추가 설치를 <a href='http://blog.sukmoonlee.com/wordpress/archives/148' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>Redhat의 RHEL4가 생산이 중단이 되었습니다. 즉 더이상 커널 패치 및 어플 패치를 제공하지 않는다는 것입니다.</p>
<p><a href="https://access.redhat.com/support/policy/updates/errata/">https://access.redhat.com/support/policy/updates/errata/</a></p>
<p><a href="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/04/redhat_com_20120418_215131.jpg"><img src="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/04/redhat_com_20120418_215131.jpg" alt="" title="redhat_com_20120418_215131" width="927" height="336" class="aligncenter size-full wp-image-153" /></a></p>
<p>같은 RPM을 사용하고 있는 CentOS4의 경우에는 같은 운명을 가지고 있습니다.<br />
아래의 사이트에서 보면 <a href="http://vault.centos.org/4.9/">http://vault.centos.org/4.9/</a> 에서 마지막 패키지를 제공하고 있습니다.</p>
<blockquote><p><a href="http://lists.centos.org/pipermail/centos-announce/2012-February/018462.html">http://lists.centos.org/pipermail/centos-announce/2012-February/018462.html</a></p></blockquote>
<p>하지만 아직도 여전히 많은 시스템들이 CentOS 4 기반으로 운영이 되고 있기 때문에 2012년 2월까지 만들어진 패키지를 이용해서 추가 설치를 할수 있어야 합니다. 하지만 기존의 설정을 그대로인 상태에서 패키지 관리자인 yum을 사용하게 되면 아래와 같은 에러로 사용을 할수가 없는 상황입니다.</p>
<pre>
[root@localhost ~]# yum list
Setting up repositories
not using ftp, http[s], or file for repos, skipping - 4 is not a valid release or hasnt been released yet
Cannot find a valid baseurl for repo: update
Error: Cannot find a valid baseurl for repo: update
[root@localhost ~]#
</pre>
<p>이런 경우에는 아래와 같이 /etc/yum.repos.d/CentOS-Base.repo 파일을 수정해서 사용하면 됩니다.<br />
(참고: https://www.centos.org/modules/newbb/viewtopic.php?topic_id=36528&#038;forum=27)</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="diff" style="font-family:monospace;"><span style="">&#91;</span>localhost<span style="">&#40;</span>root<span style="">&#41;</span>:/etc/yum.repos.d<span style="">&#93;</span># diff -Nu CentOS-Base.repo.120418 CentOS-Base.repo
<span style="color: #888822;">--- CentOS-Base.repo.120418     2012-04-18 10:47:11.000000000 +0900</span>
<span style="color: #888822;">+++ CentOS-Base.repo    2012-04-18 10:50:12.000000000 +0900</span>
<span style="color: #440088;">@@ -13,8 +13,9 @@</span>
&nbsp;
 <span style="">&#91;</span>base<span style="">&#93;</span>
 name=CentOS-$releasever - Base
<span style="color: #991111;">-mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=os</span>
<span style="color: #00b000;">+#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=os</span>
 #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
<span style="color: #00b000;">+baseurl=http://vault.centos.org/4.9/os/$basearch</span>
 gpgcheck=<span style="">1</span>
 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
 priority=<span style="">1</span>
<span style="color: #440088;">@@ -23,8 +24,9 @@</span>
 #released updates
 <span style="">&#91;</span>update<span style="">&#93;</span>
 name=CentOS-$releasever - Updates
<span style="color: #991111;">-mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=updates</span>
<span style="color: #00b000;">+#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=updates</span>
 #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
<span style="color: #00b000;">+baseurl=http://vault.centos.org/4.9/os/$basearch</span>
 gpgcheck=<span style="">1</span>
 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
 priority=<span style="">1</span>
<span style="color: #440088;">@@ -33,8 +35,9 @@</span>
 #packages used/produced in the build but not released
 <span style="">&#91;</span>addons<span style="">&#93;</span>
 name=CentOS-$releasever - Addons
<span style="color: #991111;">-mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=addons</span>
<span style="color: #00b000;">+#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=addons</span>
 #baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
<span style="color: #00b000;">+baseurl=http://vault.centos.org/4.9/os/$basearch</span>
 gpgcheck=<span style="">1</span>
 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
 priority=<span style="">1</span>
<span style="color: #440088;">@@ -43,8 +46,9 @@</span>
 #additional packages that may be useful
 <span style="">&#91;</span>extras<span style="">&#93;</span>
 name=CentOS-$releasever - Extras
<span style="color: #991111;">-mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=extras</span>
<span style="color: #00b000;">+#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=extras</span>
 #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
<span style="color: #00b000;">+baseurl=http://vault.centos.org/4.9/os/$basearch</span>
 gpgcheck=<span style="">1</span>
 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
 priority=<span style="">1</span>
<span style="color: #440088;">@@ -53,8 +57,9 @@</span>
 #additional packages that extend functionality of existing packages
 <span style="">&#91;</span>centosplus<span style="">&#93;</span>
 name=CentOS-$releasever - Plus
<span style="color: #991111;">-mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=centosplus</span>
<span style="color: #00b000;">+#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=centosplus</span>
 #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
<span style="color: #00b000;">+baseurl=http://vault.centos.org/4.9/os/$basearch</span>
 gpgcheck=<span style="">1</span>
 enabled=<span style="">0</span>
 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
<span style="color: #440088;">@@ -64,8 +69,9 @@</span>
 #contrib - packages by Centos Users
 <span style="">&#91;</span>contrib<span style="">&#93;</span>
 name=CentOS-$releasever - Contrib
<span style="color: #991111;">-mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=contrib</span>
<span style="color: #00b000;">+#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=contrib</span>
 #baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
<span style="color: #00b000;">+baseurl=http://vault.centos.org/4.9/os/$basearch</span>
 gpgcheck=<span style="">1</span>
 enabled=<span style="">0</span>
 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
<span style="">&#91;</span>localhost<span style="">&#40;</span>root<span style="">&#41;</span>:/etc/yum.repos.d<span style="">&#93;</span>#</pre></td></tr></table></div>

<p>저는 이렇게 해서 기존의 CentOS에서 jar 파일을 생성하기 위해서 java-1.4.2-gcj-compat-devel-1.4.2.0-27jpp 패키지를 yum으로 설치하여 jar 프로그램을 사용할 수 있었습니다.</p>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/148?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/148/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>svn add 옵션</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/143</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/143#comments</comments>
		<pubDate>Tue, 17 Apr 2012 12:41:34 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[add]]></category>
		<category><![CDATA[non-recursive]]></category>
		<category><![CDATA[recursive]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=143</guid>
		<description><![CDATA[SVN을 사용하여 기존에 개발된 소스 디렉토리를 추가하는 경우가 많습니다. 하지만 기존의 디렉토리 구조가 SVN에 적합하지 않거나, 일부분만 SVN과 연동을 하고자 하는 경우가 있습니다. 이런 경우에 처리하기가 좀 곤란해서 여러가지 꼼수를 사용했는데요. 아래와 같이 &#8220;svn add -N&#8221; 명령어로 간단하게 해결이 가능합니다. [root@localhost~]# svn help add add: 파일과 디렉토리를 버전관리 대상에 넣습니다. 저장소에 추가하도록 스케쥴링 되며, 다음 <a href='http://blog.sukmoonlee.com/wordpress/archives/143' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>SVN을 사용하여 기존에 개발된 소스 디렉토리를 추가하는 경우가 많습니다.<br />
하지만 기존의 디렉토리 구조가 SVN에 적합하지 않거나, 일부분만 SVN과 연동을 하고자 하는 경우가 있습니다.</p>
<p>이런 경우에 처리하기가 좀 곤란해서 여러가지 꼼수를 사용했는데요. 아래와 같이 &#8220;<strong>svn add -N</strong>&#8221; 명령어로 간단하게 해결이 가능합니다.</p>
<pre>

[root@localhost~]# svn help add
add: 파일과 디렉토리를 버전관리 대상에 넣습니다. 저장소에
추가하도록 스케쥴링 되며, 다음 커밋할 때, 추가됩니다.
사용법: add PATH...

옵션:
  --targets ARG            : ARG로 주어진 파일 내용을 옵션으로 추가합니다
 <strong> -N [--non-recursive]     : obsolete; try --depth=files or --depth=immediates</strong>
  --depth ARG              : 적용할 단계를 제한합니다. 가능한 인자 ('empty', 'files',
                            'immediates', or 'infinity')
  -q [--quiet]             : 아무것도 출력하지 않거나, 요약 정보만 출력합니다
  --force                  : 강제로 실행합니다
  --no-ignore              : svn:ignore로 지정한 것과 디폴트로 무시하는 파일들을 무시하지 않습니다
  --auto-props             : 자동 속성기능을 활성화합니다
  --no-auto-props          : 자동 속성기능을 비활성화합니다
  --parents                : 임시 상위개체 삽입

글로벌 옵션:
  --username ARG           : arg를 접속에 필요한 사용자 ID로 사용합니다
  --password ARG           : arg를 접속에 필요한 패스워드로 사용합니다
  --no-auth-cache          : 인증 정보를 캐시에 저장하지 않습니다
  --non-interactive        : 대화식 사용자 입력을 기다리지 않습니다
  --trust-server-cert      : accept unknown SSL server certificates without
                             prompting (but only with '--non-interactive')
  --config-dir ARG         : arg로 지정된 디렉토리에서 사용자 구성화일을 읽습니다
  --config-option ARG      : set user configuration option in the format:
                                 FILE:SECTION:OPTION=[VALUE]
                             For example:
                                 servers:global:http-library=serf

</pre>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/143?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/143/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVN Startup Script</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/118</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/118#comments</comments>
		<pubDate>Thu, 12 Apr 2012 13:12:30 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[chkconfig]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=118</guid>
		<description><![CDATA[SVN을 RPM으로 설치하면 시스템 재시작시 실행해주는 스크립트가 들어가 있지 않다. 이런 경우 대부분 /etc/rc.d/rc.local 에 넣어서 처리를 하는 경우가 대부분인데. 이번에 설치한 CentOS 서버에서는 /etc/rc.d/rc.local 이 제대로 작동하지 않아서 스크립트를 찾아보니 없어서 하나 만들었다. #!/bin/bash # # svnserve Startup SVN Server # # chkconfig: - 85 15 # processname: svnserve # config: none # pidfile: <a href='http://blog.sukmoonlee.com/wordpress/archives/118' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>SVN을 RPM으로 설치하면 시스템 재시작시 실행해주는 스크립트가 들어가 있지 않다.<br />
이런 경우 대부분 /etc/rc.d/rc.local 에 넣어서 처리를 하는 경우가 대부분인데. 이번에 설치한 CentOS 서버에서는 /etc/rc.d/rc.local 이 제대로 작동하지 않아서 스크립트를 찾아보니 없어서 하나 만들었다.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># svnserve        Startup SVN Server</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># chkconfig: - 85 15</span>
<span style="color: #666666; font-style: italic;"># processname: svnserve</span>
<span style="color: #666666; font-style: italic;"># config: none</span>
<span style="color: #666666; font-style: italic;"># pidfile: /var/run/svnserve.pid</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Source function library.</span>
. <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>rc.d<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>functions
&nbsp;
<span style="color: #666666; font-style: italic;"># Path to the apachectl script, server binary, and short-form for messages.</span>
<span style="color: #007800;">svnserve</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">svnserve</span>
<span style="color: #007800;">prog</span>=<span style="color: #c20cb9; font-weight: bold;">svnserve</span>
<span style="color: #007800;">pidfile</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>run<span style="color: #000000; font-weight: bold;">/</span>svnserve.pid
<span style="color: #007800;">logfile</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">svnserve</span>
<span style="color: #007800;">repository</span>=<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">svn</span>
<span style="color: #007800;">OPTIONS</span>=<span style="color: #ff0000;">&quot;-d -r <span style="color: #007800;">$repository</span> --pid-file <span style="color: #007800;">$pidfile</span> --log-file <span style="color: #007800;">$logfile</span>&quot;</span>
<span style="color: #007800;">RETVAL</span>=<span style="color: #000000;">0</span>
&nbsp;
start<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> $<span style="color: #ff0000;">&quot;Starting <span style="color: #007800;">$prog</span>: &quot;</span>
        daemon <span style="color: #660033;">--pidfile</span>=<span style="color: #800000;">${pidfile}</span> <span style="color: #007800;">$svnserve</span> <span style="color: #007800;">$OPTIONS</span>
        <span style="color: #007800;">RETVAL</span>=<span style="color: #007800;">$?</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span>
        <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #007800;">$RETVAL</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
stop<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> $<span style="color: #ff0000;">&quot;Stopping <span style="color: #007800;">$prog</span>: &quot;</span>
        killproc <span style="color: #660033;">-p</span> <span style="color: #800000;">${pidfile}</span>
        <span style="color: #007800;">RETVAL</span>=<span style="color: #007800;">$?</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span>
        <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$RETVAL</span> = <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #800000;">${pidfile}</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># See how we were called.</span>
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #ff0000;">&quot;$1&quot;</span> <span style="color: #000000; font-weight: bold;">in</span>
  start<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        start
        <span style="color: #000000; font-weight: bold;">;;</span>
  stop<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        stop
        <span style="color: #000000; font-weight: bold;">;;</span>
  restart<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        stop
        start
        <span style="color: #000000; font-weight: bold;">;;</span>
  <span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> $<span style="color: #ff0000;">&quot;Usage: <span style="color: #007800;">$prog</span> {start|stop|restart}&quot;</span>
        <span style="color: #007800;">RETVAL</span>=<span style="color: #000000;">2</span>
<span style="color: #000000; font-weight: bold;">esac</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #007800;">$RETVAL</span></pre></td></tr></table></div>

<p>위와 같은 파일을 /etc/init.d/svnserve 로 생성을 하고, 아래와 같이 서비스 등록을 해주면 된다.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">[root@localhost ~]# chmod 755 /etc/init.d/svnserve
[root@localhost ~]# chkconfig --add svnserve 
[root@localhost ~]# /sbin/runlevel
N 3
[root@localhost ~]# chkconfig --level 3 svnserve on</pre></td></tr></table></div>

<p>참고로 데스크탑으로 설정한 경우에는 Run Level에 5이므로 level을 5로 설정해야 한다.</p>
<p>아래와 같이 사용을 하면 된다.</p>
<pre>
[root@localhost log]# /etc/init.d/svnserve stop
svnserve 를 정지 중:                                       [  OK  ]
[root@localhost log]# /etc/init.d/svnserve start
svnserve (을)를 시작 중:                                   [  OK  ]
[root@localhost log]# /etc/init.d/svnserve restart
svnserve 를 정지 중:                                       [  OK  ]
svnserve (을)를 시작 중:                                   [  OK  ]
[root@localhost log]#
</pre>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/118?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/118/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
