'ports'에 해당되는 글 1건

  1. 2012.05.11 FreeBSD ports 좀더 자세히 알기
FreeBSD2012. 5. 11. 10:34

출처  : http://mirrorscope.blog.me/120041416008 (2007년 8월 자료)

 

Freebsd의 application 설치에 대해 간략히 살펴보자.

 

Linux의 경우는 RPM의 형태로 설치가 쉽게 App가 발표되지만,

Freebsd의 경우는 Ports 시스템을 이용하게 된다.

 

Ports 시스템은 각 App들의 설치정보를 가지고 있다.

Download 사이트나 설치옵션설정등의 정보를 기록해 놓음으로서 좀더 간편하게 App를 설치할 수 있게 한다. ports 시스템의 장점은 의존성이 있는 패키지를 설치할때 의존관계가 있는 모든 Ports를 자동으로 설치해준다는 점이다. 그리고 컴파일된 화일이 패키지되어있지 않으며, 소스를 스스로 다운받아 시스템에 맞게 컴파일해준다는 점이다.

 

우선 Ports의 정보를 최신정보로 update 해보자.

Ports 정보를 업데이트 하기위해서는 cvsup라는 App가 필요하다.

pkg_add를 이용하여 설치하거나 sysinstall을 이용하여 설치하자.

Freebsd 6.2 부터는 csup라는 명령이 추가되었으므로 cvsup가 필요치 않다.

 

우선 ports 환경화일을 /root 에 복사하여, cvsup 서버를 지정해보자.

 

 

# cp /usr/share/examples/cvsup/ports-supfile /root

# vi ports-supfile

 

...

*default host=CHANGE_THIS.FreeBSD.org  <- 붉은 부분을 cvsup.kr 로 변경한다.
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix

...

 

수정이 끝났다면 아래 명령을 입력해보자. 시간이 꽤나 걸린다.

 

# /usr/local/bin/cvsup -g -L 2 /root/ports-supfile

 

csup를 사용한다면 다음과 같이 될 것이다.

# /usr/bin/csup -g -L 2 /root/ports-supfile

 

update가 끝났다면 이제 Ports를 설치해보자.

shell 중 하나인 bash를 설치하도록 하자.

우선 Ports가 어디에 있는지 찾아서 해당디렉토리로 이동한다.

 

# whereis bash

bash: /usr/ports/shells/bash

 

#cd /usr/ports/shells/bash

#ls

Makefile        distinfo        files           pkg-deinstall   pkg-descr       pkg-install     pkg-plist

 

위 와 같은 화일 목록이 있다.

설치는 간단하다. make install 만 치면 설치가 진행된다. 옵션을 선택하는 경우도 install 옵션을 주면 된다. 하지만 install로 옵션을 진행한다면, 옵션을 변경할 수가 없다. 옵션을 선택할 경우는 make config 명령으로 옵션을 조정하자. 그러면 선택창이 나타날 것이다.

 

# make config

===> No options to configure

 

bash의 경우는 설정할 옵션이 없다. 설치를 해보자.

 

# make install clean

# make install clean
===>  Vulnerability check disabled, database not found
=> bash32-020 doesn't seem to exist in /usr/ports/distfiles/bash.
=> Attempting to fetch from http://ftp.gnu.org/gnu/bash/bash-3.2-patches//.

     bash-3.2.tar.gz                               100% of 2470 kB  247 kBps

.......

.......

 

 

필요한 source를 다운 받기 시작하며, 다운이 끝나면 설치가 시작된다. 의존성이 있는 패키지라면 필요한 패키지도 자동으로 다운받아 설치 하게 된다.

 

설치가 끝났다. pkg_info명령으로 확인해보자.

# pkg_info
apache-2.2.6        Version 2.2 of Apache web server with prefork MPM.
autoconf-2.59_3     Automatically configure source code on many Un*x platforms
autoconf-wrapper-20070404 Wrapper script for GNU autoconf
bash-3.2.25         The GNU Project's Bourne Again SHell

bigreqsproto-1.0.2  BigReqs extension headers
bsdpan-DBD-mysql-4.005 DBD::mysql - MySQL driver for the Perl5 Database Interface

...............

 

pkg가 추가된 것을 확인 할 수 있다. 그리고 Ports 나 Pkg_add를 이용하여 설치된 패키지의

설정화일은 /usr/local 디렉토리 아래 설치된다.

Posted by 배움나눔