[mac] 패키지 매니저, MacPort
이전에 포스팅했던 HomeBrew가 교체하고 싶어했던 macport이다. 현재 MacPort는 15,915(2012–11–01 현재)의 패키지를 관리하고 있다. 이렇게 많는 패키지를 체제적으로 관리하면 있는 것을 쉽지 않다. 이런 서비스를 이용할 수 있는 것에 감사할 따름이다.
이 문서에는 macport을 설치하고 사용하는 것에 대해서 정리해 볼 것이다.
설치
아래 명령을 통해서 서버에서 소스를 받을 수 있다. ( 여기서는 2.1.2를 사용했다.)
$> curl -O https://distfiles.macports.org/MacPorts/MacPorts-2.1.2.tar.gz
$> tar xvfz Macports-2.1.2.tar.gz
$> cd MacPorts-2.1.2
$> ./configure
$> make
$> sudo make install
이렇게 macport를 설치하면 /opt에 실행파일 및 필요한 파일들이 생성된다. macport로부터 컴파일되는 실행파일들이 이 경로에 들어가기 때문에 이것을 path에 추가 해야 한다. ( ~/.bash_profile )
# set path for MacPort >>
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/share/man:$MANPATH
이용
이렇게 설정이 끝났다면 이제 macport를 사용해 보도록 하자.
Mac Port 자체 업데이트
$> sudo port selfupdate --nosync
selfupdate는 macport 자제를 업그레이드하는 것이다. 옵션으로 –nosync가 있는 이 옵션을 주면 mac port의 package tree를 업데이트하지 않는다.
Mac Port의 package tree 업데이트
$> sudo port sync
앞에서도 설명했지만 Mac Port는 1만 5천개 이상의 패키지를 가지고 있다. 이 패키지 정보들이 update될 수 있다. 따라서 이를 주기적으로 업데이트해야 한다.
Mac Port의 패키지 리스트 및 검색
MacPort에서 자신이 원하는 패키지를 찾아야 한다. 웹사이트를 이용하는 것도 있고 command로 찾는 방법도 있다.
$> port list | grep <pacakge name>
port list를 하면 가지고 있는 패키지를 검색해서 출력한다. 이것을 grep으로 검색할 수 있다. 혹은 port의 search 명령을 사용해도 된다.
$> port search <package name>
search 명령을 사용하면 좀더 쉽게 패키지를 검색할 수 있다.
설치
패키지를 설치하기 위해 install를 명령을 사용해야 한다.
$> sudo port install <package name>
위 명령처럼 install 명령뒤에 package name을 써주면 된다. package name은 앞에서 설명한 패키지 검색 방법을 사용해서 원하는 패키지를 찾는다.
제거
이미 설치된 패키치를 삭제할때 이렇게 사용한다.
$> sudo port uninstall <pacakge name>
설치된 패키지 보기
이미 설치된 패키지를 보고 싶다면 다음과 같다.
$> port installed
Macport 제거
Macport 및 설치 패키지 모두를 삭제할 수 있다.
$> sudo port -fp uninstall installed
$> sudo rm -rf /opt/local /Applications/DarwinPorts /Applications/MacPorts /Library/LaunchDaemons/org.macports.* /Library/Receipts/DarwinPorts*.pkg /Library/Receipts/MacPorts*.pkg /Library/StartupItems/DarwinPortsStartup /Library/Tcl/darwinports1.0 /Library/Tcl/macports1.0 ~/.macports
이외에 많은 명령들이 있다. 나머지 명령들은 MacPort 매뉴얼을 통해서 더 알아볼 수 있다.
참고
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
1065 | Develop | 웹페이지 성능 테스트 툴 설명 | hooni | 2013.04.23 | 27453 |
1064 | Develop | [android] 멀티터치(Multi touch) 부분 구현 ㅋㅋ | hooni | 2013.04.23 | 27421 |
1063 | Develop | [ios] 참고할만한 좋은 예제 소스.. | hooni | 2013.04.23 | 27375 |
1062 | Develop | [ios] UDID와 UUID (디바이스의 Unique Identifier) | hooni | 2013.04.23 | 27348 |
1061 | Develop | [doc] 테크니컬 레포트 (BHO 취약점을 이용한 공격) 2 | hooni | 2013.04.23 | 27089 |
1060 | Develop | [node.js] 지금 하고 있는거.. | hooni | 2013.04.23 | 26980 |
1059 | System/OS | [linux] 리눅스 파일시스템과 디렉토리 설명 | hooni | 2013.04.23 | 26883 |
1058 | Develop | [c#] 간단한 소켓통신 예제.. | hooni | 2013.04.23 | 26698 |
1057 | Develop | [ios] NSData 클래스에 대해 (NSData <-> char*) | hooni | 2013.04.23 | 26573 |
1056 | Develop | [android] 단일 Thread 환경의 안드로이드에서 Handler를 사용 | hooni | 2013.04.23 | 26503 |
1055 | Develop | [ios] Objective-C 문자열 조작 메서드 | hooni | 2013.04.23 | 26460 |
1054 | Develop | [js] 모바일웹에서 이미지 저장하는거 (context menu) 막기 | hooni | 2013.04.23 | 26372 |