참고링크 [Bottom] [Top]
FreeBSD Handbook - Chapter 4 Installing Applications: Packages and Ports {us}
어플리케이션 설치 (Installing Applications: Packages and Ports) {ko} PDF 파일
필요한 프로그램 검색 [Bottom] [Top]
설치해야 할 프로그램이 어떤 기능이 있으며 프로그램 이름이 무엇인지 알고 있다면 다음과 같은 방법으로 검색할 수 있다.
- 웹을 이용하는 방법
FreeBSD.org 의 Ports 검색 시스템 을 이용한다.
- 시스템 설치 및 설정 도구 사용
# /stand/sysinstall
- whereis 명령어 사용 (예: lsof 패키지)
# whereis lsof
- 포트 콜렉션의 검색 기능 사용 (/usr/ports 디렉토리에서 실행)
# cd /usr/ports # make search name=lsof
패키지 시스템 [Bottom] [Top]
패키지 설치 [Bottom] [Top]
패키지를 직접 다운로드하여 설치하는 방법을 알아보자. 먼저 가까운 FreeBSD FTP 사이트로 접속한다. FTP 사이트 목록은 FreeBSD Handbook - Appendix A.2 FTP Sites 를 참고한다.
# ftp -a ftp.kr.freebsd.org
위와 같이 익명 계정으로 접속하여 필요한 패키지를 다운로드 한다. 설치는 pkg_add(1) 를 사용한다.
- 다운로드된 패키지 설치 (예: lsof 패키지)
# pkg_add lsof-4.56.4.tgz
- 자동으로 다운로드하여 설치 (주의: 패키지 버젼 생략)
# pkg_add -r lsof
-r 옵션을 사용할 경우 FTP 사이트는 환경 변수 PACKAGESITE 에 지정하면 된다. 기타 다른 옵션은 man page 의 pkg_add(1) 를 참고한다.
패키지 관리 [Bottom] [Top]
pkg_info(1) 는 설치되어 있는 패키지 리스트와 간략한 설명을 보여준다.
# pkg_info
-L 옵션을 사용하면 특정 패키지로 설치된 파일 목록을 볼 수 있다 (예: lsof 패키지).
# pkg_info -L lsof-4.56.4
pkg_version(1) 은 설치되어 있는 모든 패키지의 버젼을 요약해 보여준다.
# pkg_version
패키지 버젼은 다음과 같은 문자로 설치된 패키지의 버젼과 로컬 포트 트리에서 사용할 수 있는 버젼의 관계를 보여준다.
표시 |
설 명 |
= |
설치된 패키지 버젼 = 로컬 포트 트리 버젼 (현재 버젼) |
< |
설치된 패키지 버젼 < 로컬 포트 트리 버젼 (구 버젼) |
> |
설치된 패키지 버젼 > 로컬 포트 트리 버젼 (최신 버젼) |
? |
설치된 패키지를 포트 컬렉션에서 찾을 수 없다. |
* |
다양한 버젼의 패키지가 설치되어 있다. |
! |
설치된 패키지 버젼 정보를 비교할 수 없다. |
패키지 삭제 [Bottom] [Top]
설치된 패키지는 pkg_delete(1) 를 사용한다 (예: lsof 패키지).
# pkg_delete lsof-4.56.4
패키지 정보 [Bottom] [Top]
설치된 패키지의 자세한 정보는 /var/db/pkg 디렉토리에 저장되어 있으며, 설치된 파일 목록과 각 패키지의 설명은 이 디렉토리에 있는 파일에서 찾을 수 있다.
포트 컬렉션 [Bottom] [Top]
포트 컬렉션 받기 [Bottom] [Top]
포트를 설치하기 전에 기본적은 파일 (Makefile, 패치, 정보 등) 을 가지고 있는 포트 콜렉션을 먼저 받아야 한다.
- sysinstall 을 사용하는 방법
- /stand/sysinstall 을 실행한다.
# /stand/sysinstall
메뉴에서 [ Configure ] - [ Distributions ] 을 선택한 후 [ ports ] 를 체크한다. 나머지는 순서대로 진행하여 설치를 완료한다.
- /stand/sysinstall 을 실행한다.
- CVSup 을 사용하는 방법
- net/cvsup 포트를 설치한다.
- /usr/share/examples/cvsup/ports-supfile 파일을 홈디렉토리 (/root) 로 복사한다.
# cp /usr/share/examples/cvsup/ports-supfile ~
ports-supfile 파일을 수정한다. CHANGE_THIS.FreeBSD.org 을 가까운 CVSup 서버로 변경한다. CVSup 사이트 목록은 FreeBSD Handbook - Appendix A.5 Using CVSup 을 참고한다.
- cvsup 을 실행하여 가장 최근의 포트 콜렉션을 다운로드 한다.
# cvsup -g -L 2 /root/ports-supfile
포트를 설치하기 전에 포트 컬렉션을 업데이트 했다면 포트와 관련된 보안 문제를 FreeBSD VuXML 에서 확인해야 한다. 그리고 portaudit 를 이용하여 자동으로 확인할 수 있다. 이 도구는 security/portaudit 포트를 설치한 후 사용할 수 있다.
# portaudit -F
새로운 포트를 설치하기 전에 -F 옵션을 사용하면 최신 보안 데이타베이스로 패치한다. 자세한 정보는 man page 의 portaudit(1) 와 periodic(8) 를 참고한다.
포트 설치 [Bottom] [Top]
포트 컬렉션의 각 포트는 다음과 같은 파일과 디렉토리로 구성되며 필요에 따라 추가적인 파일이 더 있을 수도 있다. 좀 더 자세한 정보는 FreeBSD Porter's Handbook 를 참고한다.
파일명 |
설 명 |
Makefile |
포트의 컴파일과 설치 정보를 가지고 있다. |
pkg-descr |
포트의 자세한 설명을 제공한다. |
pkg-plist |
포트가 설치하는 모든 파일 목록을 가지고 있다. |
distinfo |
다운로드 해야될 파일과 파일 오류 체크를 위한 md5(1) 정보를 가지고 있다. |
file 디렉토리 |
FreeBSD 시스템에서 컴파일하고 설치하는 패치를 가지고 있다. |
포트는 위에서 설명한 whereis(1) 나 포트 콜렉션의 검색 기능 을 사용하여 포트 디렉토리로 이동한 후 설치를 시작한다 (예: lsof 포트).
# whereis lsof lsof: /usr/ports/sysutils/lsof # cd /usr/ports/sysutils/lsof # make install
설치는 간단히 make install 로 시작되며, 소스 코드는 FTP 에서 자동으로 다운로드 되어 설치된다. 포트 시스템은 fetch(1) 를 사용하여 파일을 다운로드하며 FTP_PASSIVE_MODE, FTP_PROXY, FTP_PASSWORD 와 같은 환경 변수로 다양한 설정이 가능하다. fetch 와 관련된 환경 변수는 man page 의 fetch(3) 를 참고한다.
포트 삭제 [Bottom] [Top]
포트를 삭제하는 방법은 설치할 때와 동일한 디렉토리에서 가능하다. 다음과 같이 포트를 삭제한다 (예: lsof 포트).
# cd /usr/ports/sysutils/lsof # make deinstall
삭제한 포트를 다시 설치할 경우 make reinstall 을 사용하여 다시 설치한다.
# cd /usr/ports/sysutils/lsof # make reinstall
그러나 make clean 을 실행하여 포트를 정리한 경우 make deinstall 과 make reinstall 을 실행할 수 없다. 이 경우 포트를 삭제해야 한다면, pkg_delete(1) 를 사용한다.
참고> 포트 설치 및 제거 명령 정리
설치 명령 |
설 명 |
make |
포트를 컴파일 한다. |
make build |
|
make depends |
포트와 종속된 포트들을 설치한다. |
make install |
포트를 설치 한다. |
make clean |
포트를 정리 한다. |
make reinstall |
포트를 재설치 한다. |
make deinstall |
포트를 제거 한다. |
포트 업그레이드 [Bottom] [Top]
포트 업그레이드는 sysutils/portupgrade 를 이용하여 자동으로 업그레이드 해준다. 다음과 같이 portupgrade 를 설치하고 포트를 업그레이드 해보자.
# cd /usr/ports/sysutils/portupgrade # make install # pkgdb -F # portupgrade -a
pkgdb -F 는 패키지 데이타베이스를 생성하는 명령으로 설치된 포트 목록를 읽어서 /var/db/pkg 디렉토리에 데이타베이스 파일을 생성한다. 그리고 portupgrade -a 는 패키지 데이타베이스와 포트 INDEX 파일을 읽은 후, 각 포트의 다운로드가 시작되고 컴파일과 설치가 진행된다. 이 과정에서 기존 설정을 백업한 후 설치하고 업데이트된 포트를 정리한다.
설치된 모든 포트가 아닌 특정 포트를 업그레이드 해야 한다면 portupgrade pkgname 를 사용한다. pkgname 은 포트 이름이며, 업그레이드 해야할 포트의 의존성과도 동작해야 된다면 -r 옵션을 사용하고, -R 옵션은 포트가 필요한 모든 패키지와 동작한다. 포트 대신 패키지를 사용하여 설치하려면 -P 옵션을 사용한다. 자세한 정보는 portupgrade(1) 의 man 페이지를 참고한다.
참고> 패키지 데이타베이스가 일치하지 않는 문제를 해결하기 위해 pkgdb -F 를 사용하여 정기적으로 업데이트하는 것이 필요하다.
