커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 시스템 관리 / 서버운영 도움말
검색 : 사이트 WHOIS 웹서버 종류

최적화 / 튜닝 / 성능개선 (6, 글 1, 자료 3)
디스크 쿼터(quota) (3, 글 1, 자료 3)
디스크 관리 / 파일시스템 / mount (34, 글 13, 자료 12)
백업(backup) / 시스템 복구 (14, 글 6, 자료 11)
서버운영 (8, 글 2, 자료 9)
프린터 관리 / 프린팅 (7)
패키지 관리 / 패치 / rpm (10, 글 5, 자료 1)
부팅, boot / LILO / GRUB (10, 글 5, 자료 9)
서버 모니터링 (10, 글 5, 자료 2)
로그인 / 로그아웃 (1)
로그(log) / syslog (5, 글 3, 자료 3)
메모리, 스왑(swap), 램디스크(ramdisk) (3, 글 2)
사용자 관리(계정 관리) (1, 자료 1)

  FreeBSD portsnap 미러링(?) 서버 만들기 작성일 : 2013/05/07 18:45
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 6476
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      제  목 : FreeBSD portsnap 미러링(?) 서버 만들기
    작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    작성일 : 2013.5.6(월)

    cvsup을 사용한 FreeBSD의 ports tree 업데이트를 2013년 3월부터 더이상 지원하지 않는다.

    Announcing the end of port CVS
    http://lists.freebsd.org/pipermail/freebsd-ports/2012-September/078099.html

     
    For those reasons by February 28th 2013 the FreeBSD ports tree will no longer be exported to CVS. Therefore ports tree updates via CVS or CVSup will no longer available after that date. All users who use CVS or CVSup to update the ports tree are encouraged to switch to portsnap(8) [1] or for users which need more control over their ports collection checkout use Subversion directly:
     



    1. portsnap 사용

    ports를 가져오는 방법은 cvsup(이제 미지원), portsnap, SVN 등이 있다.
    portsnap 사용은 간단하다. fetch, extract, update 명령 3가지만 기억하면 된다.

    fetch   : ports tree를 가져온다. /var/db/portsnap에 압축된 snapshot이 저장된다.
    extract : 가져온 ports tree를 /usr/ports에 푼다.
    update  : 가져온 ports tree를 update한다.

    portsnap 처음에는 fetch와 extract 명령을 실행하고, 이후부터는 fetch와 update를 실행하면 된다.

     
    처음에만
    # portsnap fetch extract
    이후부터
    # portsnap fetch update
     



    2. portsnap 미러링 서버 설정

    cvsup으로 ports 트리(tree를 가져왔다면 cvsup-mirror툴을 사용해서 미러링(mirroring) 서버를 쉽게 구축할 수 있었다. 이제 더이상 cvsup용 ports 트리를 지원하지 않는다.

    portsnap는 미러링 서버를 제공하지 않는다. 로컬에 portsnap fetch용 서버를 구축하려면 꼼수(?)가 필요하다.
    1) 먼저 portsnap fetch로 ports 트리 스냅샷을 가져온 다음에 -> 2) 이를 rsyncd로 다른 서버에 제공한다.

    portsnap 미러링용으로 사용할 서버에 다음과 같은 스크립트를 만든다. 그리고, 주기적으로 fetch하도록 crontab에 등록해준다. cron에서 fetch명령을 할 때는 portsnap fetch 대신 portsnap cron으로 해야 한다.

    [ portsnap_fetch.sh ]
     
    #!/bin/sh

    DIR=/data/portsnap
    RESULT_FILE="/data/LOG/portsnap_fetch.txt"

    #
    date                    >> $RESULT_FILE
    portsnap -d $DIR  cron  >> $RESULT_FILE
    echo                    >> $RESULT_FILE
    echo                    >> $RESULT_FILE
     


     
    # ls -l /data/portsnap/
    total 4188
    -rw-r--r--  1 root  wheel  2110580 May  6 18:43 INDEX
    drwxr-xr-x  2 root  wheel  2123776 May  6 18:43 files
    -rw-r--r--  1 root  wheel      451 Apr  3 14:13 pub.ssl
    -rw-r--r--  1 root  wheel      235 May  6 18:43 serverlist
    -rw-r--r--  1 root  wheel      235 May  6 18:43 serverlist_full
    -rw-r--r--  1 root  wheel       45 May  6 18:43 serverlist_tried
    -rw-r--r--  1 root  wheel      527 May  6 18:43 tINDEX
    -rw-r--r--  1 root  wheel       85 May  6 18:43 tag
     


    다른 서버에서 portsnap fetch한 스냅샷을 받아갈 수 있도록 rsyncd.conf를 설정한다.

    [ /usr/local/etc/rsyncd.conf ]
     
    pid file = /var/run/rsyncd.pid

    # global section
    uid             = root
    gid             = wheel
    use chroot      = yes
    max connections = 10
    hosts allow     = 192.168.123.0/24
    timeout         = 600

    [portsnap]
    path            = /data/portsnap
    read only       = yes
     



    3. portsnap 클라이언트

    portsnap fetch 명령 대신에 rsync로 ports 트리 스냅샷을 받아온 후 portsnap extract 또는 update를 하면 된다.

     
    # cd /var/db/portsnap
    # rsync -av --delete $INST::portsnap/ .
    #
    # portsnap update
     


    위의 명령을 실행하는 스크립트는 portsnap.sh를 살펴볼 것.

    ※ portsnap 미러링 서버를 구축하지 않고 내부서버 통해서 fetch를 받고 싶다면, HTTP proxy 서버를 사용하면 된다.
       1) 내부 서버에 HTTP proxy 서버를 한대 설정하고,
       2) 다른 서버에서 setenv HTTP_PROXY http://내부_proxy_서버_IP 환경변수 설정을 한 후
       3) portsnap fetch 명령을 실행하면 proxy 서버 통해서 ports 트리 스냅샷을 받아온다.

      커피닉스 카페 최근 글
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
    [05/16] (주)후이즈 시스템엔지니어 (경력자) 모집
    [02/15] [AWS] Cloudfront edge 확인하기
    [01/20] Mobile Service/eCommerce 기업에서 Server / Java / PHP 개발자 구인
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Mobile 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Web Front 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Server 개발 팀장을 모십니다.
    [12/21] 브라우저별 SHA1 퇴출 시점
    [09/15] [구인] 시스템엔지니어 (경력)
    [08/05] Re: 칼리리눅스 텔넷관련
    [08/04] 칼리리눅스 텔넷관련
    [06/29] 또 다른 무료 SSL 인증서, Let's Encrypt
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~