다윈포트 체험기

OpenDarwin 프로젝트에서 진행 중인 포트 스타일의 패키징 시스템인 DarwinPorts 을 드디어 좀 해봤습니다. 음훗훗. DarwinPorts 개발자 중 상당수가 FreeBSD 쪽에서 건너가거나 겸하고 있는 사람들이다보니, 상당수의 포트들이 FreeBSD도 지원하고 있었습니다. 체크아웃 한 dports 트리를 보면

sbtm(perky):/usr/dports% grep -r '^platform.*darwin' .|wc -l
     482
sbtm(perky):/usr/dports% grep -r '^platform.*freebsd' .|wc -l
      99

현재, DarwinPorts에는 darwin을 지원하는 포트가 482개, freebsd를 지원하는 포트가 99개가 있습니다. :) 뭐 그런대로 주요 유틸리티 포트들은 FreeBSD도 지원하고 있어서 쓸만합니다. (python포트가 freebsd를 지원하지 않는 것은 좀 =3 =33)

DarwinPorts는 port라는 tcl로 작성된 별도의 툴을 이용해서 설치하는데, 요것 make 보다는 아무래도 포트에 특화된 것이라 속도도 그런대로 쓸만하고 좋은 듯합니다. textproc/cowsay 포트를 설치하면 요렇게 됩니다.

sbtm(perky):/usr/dports/textproc/cowsay% sudo port
--->  Fetching cowsay
--->  Attempting to fetch cowsay-3.03.tar.gz from ftp://tony/cowsay/
--->  Verifying checksum for cowsay
--->  Extracting cowsay
--->  Configuring cowsay
--->  Building cowsay with target all
sbtm(perky):/usr/dports/textproc/cowsay% sudo port install
--->  Staging cowsay into destroot
--->  Installing cowsay
sbtm(perky):/usr/dports/textproc/cowsay% /opt/local/bin/cowsay \
"Hello, DarwinPorts"
 ____________________
< Hello, DarwinPorts >
 --------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
sbtm(perky):/usr/dports/textproc/cowsay% sudo port uninstall
--->  Uninstalling cowsay-3.03

요건 darwin이 아니라, freebsd에서 설치해본 것인데, 사용자 편의를 위해서인지 기본으로는 컴파일 중 메시지를 전부 숨겨서 빌드가 오래 걸리는 툴들은 상당히 지루합니다. (뭐라도 화면에 나와야 -ㅁ-;; 한 줄에 . 한 개씩이라도 찍던가;;) 단, -v 옵션을 주면 FreeBSD나 NetBSD 처럼 안 감추고 보여줍니다.

그런데, DarwinPorts에서 가장 주목할 것은 바로 variants 시스템인데, OpenBSD에서 처음 시작되어 Gentoo에도 전해진 FLAVOR와 비슷한 역할을 하는데, 빌드시에 여러가지 옵션을 FreeBSD 처럼 난잡하게 포트 파일을 안 보고도 시스템에서 받쳐주는 것들을 on/off할 수 있게 되어, 자동으로 바이너리 패키지 빌드에서도 적용될 수 있도록 한 것인데, 정말 멋있습니다. :) 예를 들면, lang/python 포트의 Portfile은 요렇게 되어있습니다.

# $Id: Portfile,v 1.9 2003/08/05 21:02:22 jkh Exp $

PortSystem 1.0
name            python
version         2.2.2
categories      lang
maintainers     pat@ekman.cx
description     An interpreted, object-oriented programming language
platforms       darwin
master_sites    ftp://ftp.python.org/pub/python/${version}/
distname        Python-${version}
extract.sufx    .tgz
checksums       md5 1c1067396e5aa0299978486eb5bd1a5c
patchfiles      patch-unixccompiler.py
destroot.destdir prefix=${destroot}${prefix}


variant nothreads {
        configure.args-append   --without-threads
}

variant puredarwin {
        configure.args-append  --disable-toolbox-glue
}

요렇게 해놓으면, 설치할 때 port install +nothreads나, port install +puredarwin -threads 요런 명령으로 조절을 할 수 있고, GUI 툴로도 선택을 할 수있게 버튼이 나온답니다. 으흐흐흐 멋있군요~~

1 thought on “다윈포트 체험기”

Comments are closed.