태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

티스토리 툴바

 OS X는 새로운 버전이 출시 될때마다 BSD의 표준에 좀더 충실히 따라가려는 노력이 보인다.
 여기에서는 BSD 패키지 관리인 port tree system의 mac버전이 macports에 관해 살펴보기로한다. 개괄적인 설명이 포함될것이고 세부적인 면이 앞으로 추가되길 바란다. (여기에서 fink에 대해서는 따로  언급을 안하기로 한다.)

 port 시스템은 기본적으로 port tree에 릴되어있는 패키지의 정보를 가져와서 원하는 패키지를 선택해서 소스로 설치를 한다. 바이너리의 설치도 지원이란 말은 포트를 pkg, dmg,rpm 따위의 바이너리 아카이브로 만들어줌을 의미한다(잘못알고 있다면 단호히 지적바란다.현재 leopard 10.5.1). 소스 설치의 경우 쓸때없이 컴파일 시간 잡아 먹을수도 있다고 느낄 것이다. 브라우져나 오피스같은 경우 다른 BSD의 경우 finrefox-bin, openoffice-bin따위를 제공하지만 macports는 이들이 없다 .
 개인적으로 그리 특별히 컴파일의 매력이 없는 일반사용자로서 컴파일의 속도는 지옥이다. 이는 사용자마다 다를 것이다.

 하지만 여전히 OS X에서 ports시스템은 매력이 존재한다. 터미널에서 수도없이 많은 명령어기반 소프트웨어, x11,그리고 심지어 Aqua기반의 오픈소스까지 설치할수 있다. 사용할수 있는 ports를 보려면...

http://www.macports.org/ports.php

에서 확인가능하다.

 macports를 사용하기로 맘먹었다면 이제 사용할수 있는 환경을 만들자.

 macports를 설치하기 위해서는 아래 두가지가 설치 되어 있어야 한다.

1. Xcode 3.0(current version)
- 애플설치 디스크나 https://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=19897 에서 Developer Connection 에 가입후 다운로드 받을수 있다.
2. X11 windowing environment와 X11 SDK package
   - 이또한 애플 설치디스크중에 포함되어 있으며 SDK는 Xcode 설치시 포함되어 있다.(SDK는 X11이 먼저 설치되어 있어야 Xcode 설치시 자동으로 설치된다.!!!)

 위 두 과정을 한방에 해주는 방법(MAC OS X Package installer)이 있지만 나는 위 두과정을 권한다. 왜? ;;;

!!! 위 두가지 설치후에 애플 소프트웨어 업데이트를 꼭 한번 실행해주자. 설치시디로 부팅했다면 업그레이드가 있을수도 있기 때문이다.!!!

 http://www.macports.org 에서 macports 를 받아와서 설치하자. dmg를 받아와 설치하는 것이 가장 쉬울것이다. OS의 버전에 따라 다르니 주의하도록 하자. 지금 현재 버전은 1.6.0이다.

 Macports를 설치 했다면 이제 본격적으로 시작을 해보자.

 먼저 SHELL 환경을 설정해주자. macports는 기본적으로(Leopard 기준) /opt/local 하위에 설치가 이루어진다.
 자신의 홈디렉토리의 .profile에서

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=$MANPATH:/opt/local/man
export DISPLAY=:0.0


을 추가해 주도록하자.

 터미널을 연 다음 아래 명령어를 입력해 보자.

sudo ports -d selfupdate

사용자 삽입 이미지

password를 입력하면 뭔가가 시작될 것이다.

사용자 삽입 이미지

 위와 같이 주루룩 터미널에 뭔가를 뿌리고 'selfupdate done'이란 메세지를 뿜어낸다면 잘된것이다.

 ports 시스템 사용시 가장 기본 명령어가 바로 'port'(NOT 'ports')이다. 위 명령어는

sudo port -d selfupdate

 port tree를 새로 받아와서 업데이트를 시켜주는 가장 기본적이며 종종해주어야 하는 명령어이다. port tree는 아주 자주 업데이트 된다. 언제 업데이트 될지 모르기때문에 새로운 어플을 설치하거나 할때 아니면 macports에 손댈일이 생기면 먼저 실행 시켜주고 시작하는 것이 좋다. 아예 cron으로 예약을 해 두는 것도 좋은 방법이다.(이는 데스크탑의 경우 꼭해두는 것도 나쁘지 않다고 생각한다. 노트북에서는 글쎄..이다.이는 사견이다.)

 port는 시스템을 관리하는 어플이기에 꼭 이를 변경시키는 명령어에서는 꼭 관리자 명령으로 실행해야한다. 이게 무슨말이냐 하면은...
일반사용자 계정에서

1. $>port search xmms

는 되지만 

2. $>port install xmms (X)

는 안된다는 것이다. 1번은 단지 port tree에서 xmms 를 검색하는 명령어이다. 검색은 하지만 port tree를 건드려서 변경시키지는 않는다. 하지만 2번의 경우는 xmms패키지를 설치하는 것으로 port tree를 변경시킨다.
 이렇게 어떠한 경우든 port를 설치하거나 제거,변경등이 일어날때는 앞에 sudo를 꼭 붙여주어야한다.
(sudo의 authenticate timestamp를 배제하고 말한다.)  

 port 명령어 다음에 오는 명령어로는

activate, archive, build, cat, cd, checksum, clean, compact, configure,
contents, deactivate, dependents, deps, destroot, dir, distcheck, dmg,
dpkg, echo, ed, edit, exit, extract, fetch, file, gohome, help, info,
install, installed, lint, list, livecheck, location, mdmg, mirror, mpkg,
outdated, patch, pkg, provides, quit, rpm, search, selfupdate, srpm,
submit, sync, test, trace, unarchive, uncompact, uninstall, upgrade,
url, usage, variants, version, work

등이 있다. 꽤 많은 것 같지만 몇몇은 일반적으로 쓸일이 없을 것이다. 개인적으로 내가 자주 쓴 명령어를 위순서로 나열하면...

sudo port activate 'package'     패키지 활성화, 버전에 따라 겹치는 경우가 있는데 아래명령어와 같이 사용.
sudo port deactivate 'package'
sudo port clean 'package'         패키지설치도중 에러나 variants재설정시 기존 config를 제거
sudo port clean all                   모든 패키지 초기화.distfile은 삭제되지 않는다.
port distcheck 'package'
port deps 'package'                  패키지 의존성 검사
port dependents 'package'        패키지에 의존성이 걸려있는 패키지
sudo port edit 'package'            패키지 상태를 변경. 권하지 않는다. 차라리 버전이 겹치는 경우라면 따로 포트파일을만드는게 현명하다.
sudo port fetch 'package'
port info 'package'                    패키지 정보 검색 
sudo port install 'package'
port list installed|grep 'arg'        설치된 패키지에서 검색
...
...
port list outdated                       업그레이드된 포트 리스트 검색
sudo port upgrade outdated           업그레이드된 포트 설치
sudo port uninstall 'package' 
...
...
port variants 'package'               패키지 variants 보기

...


 다쓰려니깐 생각보다 많다. 위정도로 요약하고 자세한 내용은 man page를 참고하거나
http://guide.macports.org/#introduction 에서 참조하라.

위 중에

port variants 'package'
port list 'package'

를 보면 각 패키지의 variants를 볼수 있다. 우리는 이 variants에 주목할 필요가 있다.

 POSIX 계열의 OS에서 프로그램을 소스로 설치시 보통

1.configure        make전에 컴파일 옵션과 다른 설정을 한다.
2.make              링크,컴파일
3.make install   바이너리,설정파일 정해진 경로에 설치

의 절차를 따른다. 1번에서... 보통을 아무 옵션을 주지 않고 설치하는 경우가 대부분이다.
 하지만 아무 소스나 직접 받아서 configure --help 라고 입력해 보면 많은 옵션들을 볼수가 있다.
아래는 xmms-1.2.11의 소스를 받아와서 configure --help를 입력한 화면의 일부이다.

사용자 삽입 이미지

 많은 옵션들이 보인다. 평상시 모르고 지냈던 옵션들이다. 하지만 이옵션들은 xmms를 좀더 다이나믹하게 사용하게 해주는 옵션들이다. configure할때 그냥 아무 arg를 안먹이는 것보다 예를들면

configure --enable-simd --enable-ipv6

라고 설정후 make, make install하며 x86SIMD와 ipv6를 지원하는 xmms로 컴파일 된다는 말이다.   

 아무옵션없이 했다면 default=no라고 표기 되어 있듯이 저 기능이 지원없이 컴파일이 된다.
(simd와 ipv6이 뭐가 중요하겠나고 묻는사람도 있겠지만 그냥 예를 든것이다. 이외에도 configure --help해보면 훨~씬 많은 variable과 옵션이 존재한다.)

 그렇다면 port에서는 어떻게 저런것들을 설정할수 있을까? configure를 실행할수도 없는데...
 내가 아는 두가지 방법이 있는데 그 하나가 가장 많이 쓰는 variants 이다. 아래를 보자.
사용자 삽입 이미지

 위의 두 명령어로 variants를 볼수 있다. xmms의 설정할수 있는 variants는 universal, darwin, linux 세가지 뿐이다.
 여기서 잠깐... 내가 예를 xmms로 든것을 지금 글쓰는 이시점에서 무척이나 후회하고 있다.하필이면 설정할수 있는 variants의 값이 적고 일반적이지못한 xmms를 예로 들다니...; 하지만 어쩔수 없다. 어짜피 이해의 목적이 있으니 계속 이것으로 예를 들어 보겠다.

 variants를 적용해서 설치할때는 아래와 같은 방법으로 해주면 된다.

sudo port install xmms +universal +linux

 적용할 variants앞에 '+'를 붙여준뒤 써주면 된다. 위는 유니버셜로 컴파일되고 linux라는 옵션이 적용되어 컴파일된다.
 보통 port에서는 설정할수 있는 옵션이 소스로 컴파일시보다 적은데 이는 의존성문제를 최대한 줄이기 위해서이다.
 위에서 port info xmms에서 보면

Library Dependencies: glib1, gtk1, esound, gettext, bison, libiconv, libvorbis, libmikmod, libogg

가 보이는데 이는 xmms가 가지고 있는 의존성 걸린 패키지들이다. 이들을 xmms설치하면 이 패키지들의 설치 여부를 판단하고 없다면 이들부터 설치한다.

!!!중요한 한가지는... 만약 "sudo port install 'package' +var1 +var2" 했을때 var1,var2에 의존성이 걸리는 패키지가 있다면 이또한 설치를 하게 된다. 하지만 이들 패키지들은 port info 'package'라고 했을때 나오는 'Library Dependencies:'에는 나오지 않는다것에 주의하자.!!!

 설정할수 있는 다른 한가지 방법으로

sudo port edit xmms

가 있다.

사용자 삽입 이미지

 port edit를 실행하기 위해서는 터미널에서 EDITOR가 정의 되어 있어야 한다.
export $EDITOR='/usr/bin/vi' (애용하는 걸로 하라.)

 위에서 보면 xmms의 variants인 darwin과 linux를 볼수 있다. darwin 설정시 --disable-oss를 옵션으로 넣는다는 말이다.
 linux설정시는 두가지 경우가 보이는데 이는 linux와 섞어쓰는 특별한 경우가 되는데 설명이 갑갑하다.(사실 +linux하면 에러뜬다. 참고 해두시라.)

 다시한번 xmms를 예를 든것은 잘못이다.;;; 지금 찾아보니 imageMagick 이 설명들기에 너무도 좋은 패키지란 생각이 떠오른다.

 port edit 'package'하면 안에서 선택가능한 옵션을 변경할수 있다. xmms보다 sudo edit imageMagik 을 실행해서 한번 보기 바란다. 깔끔하게 정리가 될것이다.
 하지만 이같은 경우 잘못 설정했을 경우 의존성이 마구 꼬기 시작하는 첫걸음이 된다. 코드에 자신이 있거나 작은 변화를 주는 경우가 아니라면 절대 자제하기 바란다.(실제 관리자권한으로 실행해야 수정이 가능하다.)
아주 많이 바꾸어야 한다면 소스를 받아와 따로 포트에 포함시키자.(이는 다음에 설명하도록한다.)

 지금까지 macports의 대략적인 사용법을 보았다. 다음에는 여러 어플을 설치하고 실행해보고 또 빠진 설명이 있다면 보충해볼까한다.

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

'OS X Guide' 카테고리의 다른 글

OSX에서의 X11 윈도우 매니저 소개  (3) 2008/02/24
WebDAV Under OS X  (2) 2008/01/24
apache2+php5+tomcat with mod_jk installation in OS X.  (0) 2008/01/23
macports를 사용해 보자.  (11) 2008/01/23
Trackback 1 | Comments 11
이 글의 트랙백 주소 :: http://osxinside.tistory.com/trackback/2 관련글 쓰기
mac에 ispell 설치 - 나의 세계를 구축하라
2010/02/19 00:28 삭제
emacs를 이용해 spelling 을 검사할 수 있는 ispell 설치하기 1. mac port를 설치한다 (Darwin port 라고도 하는 것 같았다..?) http://darwinports.com/ 에서 Darwin port 를 다운로드 난 csh을 쓰기 때문에 다음을  ~/.cshrc 에 추가 setenv PATH /opt/local/bin:/opt/local/sbin:${PATH} setenv MANPATH ....
permalink Favicon of http://rukikuki.tistory.com BlogIcon 1234321
2008/02/28 22:50 댓글에 댓글수정/삭제
설명 잘 보았습니다.
kldp 에서 링크타고 왔고요..
일전에 저도 작업한 내용을 적을 때 port 에 대한 내용을 썼었는데
모 위키의 내용을 요약해서 설치만 가능토록 적어놓았었죠..

BSD 계열 사용은 Mac OS X 이 처음입니다. 좋은 참고가 되었습니다.
추가로 tomcat 과 apache 연동 부분, 잘 보고 갑니다.

저는 서비스까지는 해 볼 생각이 없었기에 연동까지는 생각하지 않았습니다만 ^-^

여튼 좋은 글 감사드립니다.
고수의 포스가 느껴지는군요. 좋은 하루 되세요 ^-^
permalink Favicon of http://osxinside.tistory.com BlogIcon osxinside
2008/02/29 10:59 댓글에 댓글수정/삭제
만나서 반갑습니다. 참고가 되셨다니 기뿔따름입니다.
좋은 하루 되시길...
permalink
2008/03/25 21:00 댓글에 댓글수정/삭제
비밀댓글입니다
Favicon of http://osxinside.tistory.com BlogIcon osxinside
2008/03/25 22:57 수정/삭제
파일명앞에 . 이 붙으면 POSIX계열에서는 숨김파일(hidden file)을 의미합니다. 이들은 기본적으로 파인더에서 볼수가 없습니다. 터미널을 열고
$cd
$ls -al 이라고 입력하시면 그 파일들까지 다볼수가 있습니다.
.profile 또한 시스템 환경설정을 위한 파일입니다. 기본적으로 생성 안된경우도 있습니다. 없으면 만들어 주시면 됩니다. 터미널에서 vi,nano,pico등의 텍스트 편집기로 수정혹은 생성해주시면 됩니다. 제가보기에는 nano가 좋을 것 같네요.
$cd
$nano .profile
하시면 편집기가 열리는데 거기에다가 위의 내용(export PATH등등)을 추가해주시고 저장하시고 나오면 됩니다.
permalink 김민규
2008/03/29 11:27 댓글에 댓글수정/삭제
저도 .profile 파일이 없어서 위에 대로
$cd
$nano .profile 해봤는데 오히려 오류만 났어요 어떻게 해야하나요?:;
Favicon of http://osxinside.tistory.com BlogIcon osxinside
2008/03/29 11:34 수정/삭제
오후... 방금 글을 쓰셨군요. 운이 좋으신건가요?//
민규님 어떤 오류가 나셨는지요? 터미널에서 오류메세지를 보여주세요. //혹 연결가능하다면 지금 icaht에서 File-대화방에서 osxinside입력하셔서 들어오셔도 됩니다.
permalink 김민규
2008/04/01 18:51 댓글에 댓글수정/삭제
$cd
$nano .profile
라고 치면
-bash: .profile: command not found 라고 나오네요 ㅇ_ㅇ;;;
저 그리고 제가 고3이라 컴퓨터를 많이 쓸수없어서 잘들어올수가 없네요 죄송합니다. ㅎㅎ;;;
Favicon of http://osxinside.tistory.com BlogIcon osxinside
2008/04/04 01:21 수정/삭제
아이고 수험생이셨군요. 수험생한테는 제 블로그가 별로 득이 될것이 없을듯한데 말이죠... ^^;;; 경험으로 대학 진학후 POSIX의 세계에 빠져보셔야 제대로 빠지실듯(?) 해서요;; 이게 빠지면 끝이 안보여서... 저도 14년째 UNIX 계열을 다루지만 고3의 빠듯한 생활에 한번 빠지면 힘든 지식갈구의 고통을 느끼면서 언제 다해보나 이런걸 느끼고 있을까 해서 드리는 말씀입니다. 똑똑한 학생이시라 여기고 근심 접을께요. 질문하신 내용에 답하자면
"command not found" 은 nano 라는 에디터가 설치 안되신겁니다. 이게 설명드리는게 어려운것이 터미널 기반의 에디터를 안써보셨다면 더욱 그러합니다. 제가 nano를 설치했는지 기억도 안나기 때문에...(pico도 기본설치인지 저는 모릅니다.) osx에 설치 안되어 있어서 그냥 설치 했을 수도 있습니다. nano는 거의 안쓰는데도 불구하고... 그래도 알아보시겠다면 다른 에디터인 vi를 알아 보시면 됩니다. 이게 댓글로 다는 설명에서 머무르는 수준의 에디터가 아니라서...osx에서 기본설치되어 있습니다. vi.kldp.org 이게 참고 사이트입니다. 이쪽이 좀 넓어서 이런 설명으로 부족하지만 어쩔수가 없네요... 원하는 과에 입학하실수 있게 열심히 공부하시길...
permalink mystique
2008/06/08 05:03 댓글에 댓글수정/삭제
안녕하세요. 링크따라 왔습니다. 맥포트 설명 잘 보았습니다!
레퍼드에 MySql을 macport로 설치하느라 무척 고생했었습니다.
한국어로 적힌 도움말을 찾기 힘들더라구요 >.<
요즘엔 맥을 사용하는 시간중 절반은 터미널과 vi입니다. ^^
종종 들려서 도움 받겠습니다.
Favicon of http://osxinside.tistory.com BlogIcon osxinside
2008/06/10 00:06 수정/삭제
반갑습니다. 미스틱님...
mysql은 맥포트로 설치하시면 너무 시간이 오래 걸리고 버전업에 따라 그짓(?^^)을 할려면 보통일이 아닙니다.
mysql은 그냥 바이너리로 설치 하시는 편이 정신건강에 좋습니다. 젠투 리눅스에서 특별한 사유없이 오픈오피스를 소스로 컴파일하는 느낌일겁니다.(그정도는 아닐지라도...) 맥 사용의 절반이 터미널이라시것에 좋은 느낌 받았습니다. 터미널도 사용하시고 시간나실때 X11도 설치 해보시고 사용해보시기 바랍니다. 종종들러주시고 궁금하신거 있으시면 질문해주세요. 제가 요즘 블로그에 관심을 두지 못해 새글을 쓰지 못하고 있네요. 원하시는 컬럼 같은거 있으면 요청도 부탁합니다. 프로그래밍을 포함한 리눅스/유닉스/서버분야(윈도우를 제외한) 모든 분야가 가능합니다. 맥과 연관된 부분이면 더욱 좋겠지요... 그럼...
permalink jardn
2010/03/18 13:29 댓글에 댓글수정/삭제
잘 정리된 설명 감사히 보고 갑니다. ^^;;




osxinside's Blog is powered by Daum & tistory