http://support.microsoft.com/kb/238187/ko

작업PC(32비트)에서는 문제가 없다가 64비트 PC에서 컨테이너를 가져오지 못하는 문제가 발생하였다.

원인은 CryptAcquireContext 에서 컨테이너를 기본컨테이너(NULL)로 사용을 하였는데 이 부분이 64비트 컴퓨터에서는 제대로 정상 작동을 하지 않았던 모양이다.

해결책은 기본컨테이너를 사용하지 않으면 된다.
나는 유니크한 문자열을 얻기 위해서 GUID를 생성해서 생성한 GUID를 컨테이너로 넘기는 방법으로 처리 했다.
저작자 표시 비영리 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by deviAk

  1. DSM 에서 Telnet, SSH 활성화
  2. ssh나 telnet으로 NAS에 접속
  3. ikpg 설치
    1. /volum1/@tmp로 이동 [ cd /volum1/@tmp ]
    2. NAS에 맞는 Bootstrap 다운로드
      1. [ wget http://wizjos.endofinternet.net/synology/archief/syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh ] * 주의 DS211 용임
      2. DS211 모델은 Marvel Kirkwood m6282 ARM
    3. 실행 [ sh syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh ]
    4. NAS 재부팅 [ reboot ]
    5. ipkg 업데이트 [ ipkg update ]
    6. ipkg 업그레이드 [ ipkg upgrade ]
    7. optware 설치 [ ipkg install optware-devel ]
  4. svn 설치
    1. ipkg로 svn 설치 [ ipkg install svn ]
    2. DSM에서 apache 사용자 apache 그룹으로 추가
    3. intd.conf 수정
      1. [ vi /etc/inetd.conf ]
      2. [ svn stream tcp nowait apache /opt/bin/svnserve svnserve -i -r /volume1/svn ]
    4. services file 수정
      1. [ vi /etc/services ]
      2. 다음의 내용 추가
        svn 3690/tcp # Subversion
        svn 3690/udp # Subversion
    5. NAS 재부팅 [ reboot ]
    6. apache login shell 수정
      1. [ vi /etc/passwd ]
      2. Before : apache:x:1025:100:Descriptive text:/nonexist:/sbin/nologin
        After : apache:x:1025:100:Descriptive text:/nonexist:/bin/ash
    7. [ su svnowner ]
    8. [ cd /volum1/svn]
      [ svnadmin create test ]
  5. apache 설치
    1. ipkg로  apache 설치 [ ipkg install apache ]
    2. 설치 확인 [ /opt/sbin/apachectl start ]
      http://NAS IP:8000 접속
    3. httpd.conf 수정
      1. [ vi /opt/etc/apache2/httpd.conf ]
      2. 다음의 내용 추가
        LoadModule dav_svn_module     libexec/mod_dav_svn.so
        LoadModule authz_svn_module   libexec/mod_authz_svn.so
      3. 그 밖에 알아서 수정
        User apache
        Group apache

        #<Location /svn/repos>
        #   DAV svn
        #   SVNPath /home/svnroot
        #
        #   # Limit write permission to list of valid users.
        #   <LimitExcept GET PROPFIND OPTIONS REPORT>
        #      # Require SSL connection for password protection.
        #      # SSLRequireSSL
        #
        #      AuthType Basic
        #      AuthName "Authorization Realm"
        #      AuthUserFile /path/to/passwdfile
        #      Require valid-user
        #   </LimitExcept>
        #</Location>

        <Location /svn>
            DAV svn
            SVNParentPath /opt/share/svn
            AuthType Basic
            AuthName "Subversion repository"
            AuthUserFile /opt/share/svn/svn-auth-file
            Require valid-user
        </Location>
    4. apache 재 시작 [ /opt/sbin/apachectl restart ]

참조사이트
ipkg 설치 : http://forum.synology.com/wiki/index.php/Overview_on_modifying_the_Synology_Server,_bootstrap,_ipkg_etc
SVN 설치 : http://forum.synology.com/wiki/index.php/Step-by-step_guide_to_installing_Subversion_on_ARM-based_Synology_Products
apache & svn 연동 : http://forum.synology.com/wiki/index.php/Enable_HTTP_and_HTTPS_access_for_Subversion#Install_Apache_2_Server

저작자 표시 비영리 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by deviAk
Subversion/Apache/TortoiseSVN 를 활용한 버전관리 법

동아리 세미나 용으로 제작했던 Subversion/Apache/TortoiseSVN 를 활용한 버전관리 법을 정리한 문서 입니다.

팀 작업을 하시는 분들에게 좋은 참고 자료가 되실 것 같아 공개 합니다.

물론 이건 어디까지나 간단히 사용법 차원에서 작성한 것이라 더욱더 자세한 것은 인터넷을 찾아 보세요 ^^*


크리에이티브 커먼즈 라이선스
Creative Commons License
posted by deviAk

<< Doxygen Quick Guide >>

*Doxygen 기본 스타일
   /** */

*주석안에 아이템들
 @breif ==> 설명을 쓴다. 여러줄을 쓸때에는 @breif를 쓰고 한줄 띄운다움 계속해서
               쓰면된다.
 @file ==> 파일 이름을 구별할때.
 @return ==> 함수의 리턴값 나타낼때.
 @author ==> 작성자 이름을 나타낼때
 @date ==> 작성날짜를 나타낼때.
 @param ==> 함수 파라메터를 나타낼때
 @see ==> 참고할 함수나 페이지를 지정한다.
 @todo ==> 다음에 작업해야 될 내용
 @bug ==> 버그에 대한 기술
 @code ==>중요 코드를 설명할때 시작 지점 가리킨다.
 @endcode ==> 중요코드 설명할때 종료 지점 가리킨다.
 @exeception ==>
 @mainpage ==> Doxygen 메인 페이지
 @section ==>
 @version ==> 버전 설명
 @warning ==> 경고
 
 ====클래스 처리===
 @class ==> 클래스명 나타낼때.
 *클래스 멤버에대한 처리
 /// 이렇게 표시한다.(단 멤버 상단에 표시할것!!)
 /**< 내용 */ 이렇게도 표시한다. (멤버 옆에)
 ///< 이렇게도 표시한다.(멤버옆에)
 
 ====enum 타입처리====
*상단에 @brief로 무엇을 하는것인지 나타내고
 각각의 멤버에 대해서는.
 /*!< 내용 */  이렇게 표시한다. (멤버 옆에)
 /**< 내용 */ 이렇게도 표시한다. (멤버 옆에)
 ///< 이렇게도 표시한다.(멤버옆에)

===중요 코드도 주석을 단다.===
@code 로 시작해서
@endcode 로 끝낸다.

 예제1)
     /**
      * @brief 예제코드
      *
      *  추가설명
      * @code
        *........
        * @endcode
      */

 예제2)
/// @mainpage   doxygen 테스트 예제용 메인페이지
/// @section intro 소개
/// - 소개      :   doxygen 을 사용하는 방법 설명
/// @section Program 프로그램명
/// - 프로그램명  :   doxygen test sample
/// - 프로그램내용    :   화면에 Hello World!을 출력한다.
/// @section CREATEINFO 작성정보
/// - 작성자      :   infiniterun
/// - 작성일      :   2005/04/18
/// @section MODIFYINFO 수정정보
/// - 수정자/수정일   : 수정내역
/// - infiniterun/2005.0418    :   "Helo World"에 "!"추가

크리에이티브 커먼즈 라이선스
Creative Commons License
posted by deviAk