corkscrew 를 이용해서 git proxy 이용하기

1. corkscrew 를 다운로드 및 설치(우분투는 그냥 apt-get install corkscrew)
1.1. http://www.agroman.net/corkscrew/ 에서 구할 수 있다. wget을 이용하여 다운로드.

1.2. 설치

# configure; make; make install

1.3. /usr/local/bin/corkscrew 가 설치되었음을 확인.

2. git proxy를 위한 스크립트 작성
2.1. /usr/local/bin/gitproxy.sh 작성

#!/bin/bash
/usr/local/bin/corkscrew <Proxy IP> <Port> $*

2.2. ~/.bashrc 에 다음 추가

$ export GIT_PROXY_COMMAND=/usr/local/bin/gitproxy.sh

참고 : http://cafe.naver.com/embeddedcrazyboys.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=4981

[Linux] 디렉토리 안의 모든 파일들을 일일이 링크 걸기 위한 방법

디렉토리 안의 모든 파일들을 일일이 심볼릭 링크를 걸고 싶을 때 Perl을 이용해서 하는 방법이다.(절대 경로를 준다면 cp -sR 옵션으로 줄 수도 있지만..)

다음을 link.pl 등의 이름으로 저장한다.

use File::Find;
$src = shift; # first arg is source
$dst = shift; # second arg is dest
                find(sub {
                                                (my $rel_name = $File::Find::name)
                                                =~ s!.*/\./!!s;
                                                my $src_name = “$src/$rel_name”;
                                                my $dst_name = “$dst/$rel_name”;
                                                if (-d) {
                                                print “mkdir $dst_name\n”;
                                                mkdir $dst_name, 0777
                                                or warn “mkdir $dst_name: $!”;
                                                } else {
                                                print “ln -s $src_name $dst_name\n”;
                                                symlink $src_name, $dst_name
                                                or warn “symlink $src_name $dst_name: $!”;
                                                }
                                                }, “$src/./”);

perl link.pl <SRC PATH> <DST PATH> 로 한다.
<DST PATH> 는 mkdir로 만들어 놓고 해야 한다.

Vimdiff 사용법

linux에서 (거의) 기본적으로 제공하는 vim 을 이용하면 diff 툴을 사용할 수 있다.
vimdiff 로 실행가능하고 vim 에서 -d 옵션을 사용해서 사용할 수도 있다.

간단한 사용법은 다음을 참고하자.
http://amjith.blogspot.com/2007/07/visual-diff-tools-in-linux.html

정리하면,
do – 다른 윈도우의 변경 사항을 현재 윈도우로 가져오기
dp – 현재 윈도우의 변경 사항을 다른 윈도우로 넣기
]c – 다음 변경 사항으로 이동
[c – 이전 변경 사항으로 이동
Ctrl W + Ctrl W – 다른 윈도우로 이동

다른 윈도우로 이동할 때는 Ctrl + W <방향키> 를 이용할 수도 있다.

Subversion-Installation

Subversion은 지금까지 정말 열심히 쓰고 있는 버전 관리 툴이다. 필요에 의해 쓰게 되었고, 필요에 의해 익히게 된 유용한 툴이다. Subversion없는 프로젝트, 코딩은 이제 생각할 수도 없다. 그 초기에 설치하면서 썼던 설치기..
——————————————————————————————————–
목차
    1 소개
    2 설치
        2.1 우분투 리눅스 설치
        2.2 네트워크 설정
        2.3 Subversion 설치
        2.4 서비스 설정
            2.4.1 xinetd 설치
        2.5 저장소(Repository) 설치
        2.6 Apache2와 연동
    3 사용

1 소개

이 글은 내가 우분투 Breezy 를 설치 후 Subversion 을 설치해서 사용하기까지의 삽질을 정리하기 위한 페이지이다. 개인적인 목적으로(KLDP 에는 미안하지만 😉 ) 정리한 글임을 일러둔다.

클라이언트는 Microsoft Windows 에서 TortoiseSVN 을 이용한다.

2 설치

2.1 우분투 리눅스 설치

    * 우분투 한국 사용자 모임 을 참조한다.
    * 처음 사용자 ID 는 svnadmin 으로 설치하였다.

2.2 네트워크 설정

    * 내부 네트워크에 192.168.0.166 으로 설정하였다.

2.3 Subversion 설치

    * 시냅틱 패키지 관리자에서 Subversion 관련 패키지(Subversion, Subversion-tools, Subversion-helper-scripts(설치안해도 무방할 것 같으나 일단 추가))를 설치한다.

2.4 서비스 설정

2.4.1 xinetd 설치

   1. 시냅틱 패키지 관리자에서 xinetd 패키지를 설치한다.
   2. /etc/xinetd.d/ 밑에 svn 파일을 만들어 내용을 채운다.
         1. sudo vi /etc/xinetd.d/svn

            # Default : On
            # Subversion server

            service svn
            {
                sockettype  = stream
                protocol    = tcp
                user        = svnadmin
                wait        = no
                disable     = no
                server      = /usr/bin/svnserve
                server_args = -i
                port        = 3690
            }

2.5 저장소(Repository) 설치

   1. /home/repository 디렉토리 만듦.
   2. cd /home/repository
   3. svnadmin create ProtoHan
   4. /home/repository/ProtoHan/conf/passwd 를 참고하여 ProtoHan 프로젝트를 진행할 사람들의 계정과 비밀번호를 /home/svnadmin/SvnPasswd/JDL-740aDev 로 만든다.
   5. /home/repository/ProtoHan/conf/svnserve.conf 을 편집한다.
         1. vi /home/repository/ProtoHan/conf/svnserve.conf

            [general]
            anon-access = none
            auth-access = write
            password-db = /home/svnadmin/SvnPasswd/JDL-740aDev

   6. Subversion 에서 추천하는 trunk/, branches/, tags/ 디렉토리를 만든다.
         1. svn mkdir svn://localhost/home/repository/ProtoHan/trunk
         2. 편집기로 Log 작성
         3. 리비전 증가
         4. svn mkdir svn://localhost/home/repository/ProtoHan/branches
         5. 편집기로 Log 작성
         6. 리비전 증가
         7. svn mkdir svn://localhost/home/repository/ProtoHan/tags
         8. 편집기로 Log 작성
         9. 리비전 증가

2.6 Apache2와 연동

   1. 시냅틱 패키지 관리자에서 Apache2 설치
   2. Apache2 를 통해 ProtoHan 에 접근할 계정 설정
         1. mkdir /home/svnadmin/ApachePasswd
         2. cd /home/svnadmin/ApachePasswd
         3. htpasswd -c JDL-740aDev <계정명>
         4. <Password> 입력
   3. /etc/apache2/mods-available/dav_svn.conf 편집
         1. sudo vi /etc/apache2/mods-available/dav_svn.conf

            <Location /ProtoHan>
              DAV svn
              SVNPath /home/repository/ProtoHan
              AuthType Basic
              AuthName “JDL-740a(ProtoHan) Repository”
              AuthUserFile /home/svnadmin/ApachePasswd/JDL-740aDev
              #<LimitExcept GET PROPFIND OPTIONS REPORT>
                Require valid-user
              #</LimitExcept>
            </Location>

   4. sudo /etc/init.d/apache2 restart

3 사용

   1. TortoiseSVN 다운로드(http://tortoisesvn.tigris.org/download.html) 후 설치
   2. Repository 는 svn://192.168.0.166/home/repository/ProtoHan/trunk 혹은 http://192.168.0.166/ProtoHan/trunk 로 접근한다.

How to use Mantis for UTF-8

mantis는 웹 인터페이스의 버그 트래킹 툴이다. 회사 다닐 때 회사에 적용해보고 싶어서 좀 써봤는데, 실패했다-_- 암튼.. 이 글은 Mantis를 UTF-8로 사용하기 위한 팁이다. 근데 좀 오래되었네….;;;;

——————————————————————————————————–
목차
    1 차례
    2 Mantis 한글 설정(UTF-8)
        2.1 설치 환경
        2.2 설정 순서
        2.3 그래도 안보인다면!

2 Mantis 한글 설정(UTF-8)

2.1 설치 환경

    * 우분투 5.10 Breezy 의 mantis 패키지(따라서 모든 경로는 우분투 기준!)

2.2 설정 순서

   1. mantis 의 설정 파일을 수정하기 위해 연다.

      sudo vi /etc/mantis/config.php

   2. $g_default_language 와 $g_fallback_language 를 ‘korean_utf8’ 로 수정한 후 저장한다.

              $g_default_language     = ‘korean_utf8’;
              $g_fallback_language    = ‘korean_utf8’;

   3. /usr/share/mantis/gui/config_defaults_inc.php 를 연다.

      sudo vi /usr/share/mantis/gui/config_defaults_inc.php

   4. $g_language_choices_arr 에 ‘korean’ 밑에 ‘korean_utf8’ 을 추가한다.

              …

              # list the choices that the users are allowed to choose
              $g_language_choices_arr = array(
                      ‘auto’,

                      …

                      ‘korean’,
                      ‘korean_utf8’,
                      ‘turkish’,
                      ‘ukrainian’

                      …
              );

              …

   5. $g_language_auto_map 에 “‘ko’ => ‘korean'” 를 “‘ko’ => ‘korean_utf8′” 로 수정한 후 저장한다.

              …

              $g_language_auto_map = array(
                      ‘en-us, en-gb, en-au, en’ => ‘english’,
                      ‘zh-cn, zh-sg, zh’ => ‘chinese_simplified’,
                      ‘zh-hk, zh-tw’ => ‘chinese_traditional’,
                      ‘cs’ => ‘czech’,
                      ‘da’ => ‘danish’,
                      ‘nl-be, nl’ => ‘dutch’,
                      ‘et’ => ‘estonian’,
                      ‘fi’ => ‘finnish’,
                      ‘fr-be, fr-ca, fr-ch, fr’ => ‘french’,
                      ‘de-de, de-at, de-ch, de’ => ‘german’,
                      ‘hu’ => ‘hungarian’,
                      ‘it-ch, it’ => ‘italian’,
                      ‘ja’ => ‘japanese_sjis’,
                      ‘ko’ => ‘korean_utf8’,
                      ‘lt’ => ‘lithuanian’,
                      ‘no’ => ‘norwegian’,
                      ‘pl’ => ‘polish’,
                      ‘pt-br’ => ‘portugese_brazil’,
                      ‘pt’ => ‘portugese_standard’,
                      ‘ro-mo, ro’ => ‘romanian’,
                      ‘ru-mo, ru’ => ‘russian’,
                      ‘sr’ => ‘serbian’,
                      ‘sk’ => ‘slovak’,
                      ‘sl’ => ‘slovene’,
                      ‘es-mx, es-co, es-ar, es-cl, es-pr, es’ => ‘spanish’,
                      ‘sv-fi, sv’ => ‘swedish’,
                      ‘tr’ => ‘turkish’
              );

              …

2.3 그래도 안보인다면!

    * /etc/php5/apache2/php.ini 파일을 열어 default_charset 가 지정되어 있는 부분을 주석처리한다. 😛

Using POP3, SMTP with SSL

예전에 회사다닐 때 메일 서버 관리할 때 썼던 글인 듯 하다.
언젠가 도움이 되지 않을까 해서 KLDP에 썼던 글을 블로그에도 옮겨둔다.
——————————————————————————————————-
Using POP3, SMTP with SSL

1. 문서의 목적

이 문서는 OpenSSL 을 이용해서 POP3S 와 SMTP 서비스를 시작한 내 경험을 정리하기 위해 만들어졌다.

2. 문서의 소개

이 문서는 OpenSSL 을 이용해 POP3S 와 SMTP 서비스를 사용하는 절차에 대해 설명한다. 레드햇 8.0 을 기준으로 하며 MTA 로는 Sendmail 을 사용한다. POP3S 서비스는 xinetd 하에서 서비스된다. CA 인증은 자체 인증 방식을 사용한다. 모든 작업은 root 로 수행한다. 이 문서는 양정석(dasomoli (at) gmail.com)이 작성하였다. 🙂

3. 본문

3.1. 인증서 만들기 & 설치

    * CSR 을 만든다.
      # openssl req -new > cert.csr

    * common name 에 도메인 이름 입력(예:jinyangind.com)

    * RSA 키를 만든다.
      # openssl rsa -in privkey.pem -out cert.key

    * CSR 에 자체 서명키로 CA 인증서를 만든다.
      # openssl x509 -in cert.csr -out cacert.crt -req -signkey cert.key -days 365

    * RSA 키와 CA 인증서를 붙여 pem 파일을 생성한다.
      # cat cert.key cacert.crt > cert.pem

    * 생성한 파일을 root 외에 읽을 수 없게 한다.
      # chmod 600 cert.pem cacert.crt cert.key(여기는 cert.pem 빼고는 내 추측)

    * SSL 의 certs 디렉토리에 옮긴다.
      # mv cert.pem /usr/share/ssl/certs

      # mv cacert.crt /usr/share/ssl/certs

      # mv cert.key /usr/share/ssl/certs

    * pop3s 의 pem 파일도 만든 것으로 사용
      # cp /usr/shar/ssl/certs/cert.pem /usr/shar/ssl/certs/ipop3d.pem

    * smtps 의 pem 파일도 만든 것으로 사용
      # cp /usr/shar/ssl/certs/cert.pem /usr/shar/ssl/certs/sendmail.pem

3.2. pop3s 서비스 시작하기.

    * #vi /etc/xinetd.d/pop3s

      service pop3s
      {
          disable         = no
          socket_type     = stream
          wait            = no
          user            = root
          server          = /usr/sbin/ipop3d
          log_on_success  += USERID
          log_on_failure  += USERID
      }
        
    * # /etc/init.d/xinetd.d restart

3.3. sendmail 설정하고 재시작하기.

    * # vi /etc/mail/sendmail.mc, 다음 내용을 추가한다.

      define(`confCACERT_PATH’,`/usr/share/ssl/certs’)dnl
      define(`confCACERT’,`/usr/share/ssl/certs/cacert.crt’)dnl
      define(`confSERVER_CERT’,`/usr/share/ssl/certs/sendmail.pem’)dnl
      define(`confSERVER_KEY’,`/usr/share/ssl/certs/cert.key’)dnl
      DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s’)dnl
      Cwjinyangind.com

    * # m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
    * # /etc/init.d/sendmail restart

3.4. Client 설정.

    * cacert.crt 배포, 인증기관에 추가.

3.4.1. Outlook

    * 받는 메일 서버, 보내는 메일 서버에 SSL 체크, 보내는 메일서버 포트 : 465, 받는 메일서버 포트 : 995

3.4.2. Thunderbird

    * Outlook 과 거의 같음.