[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 매뉴얼을 통해서 더 알아볼 수 있다.
참고
No. | Category | Subject | Author | Date | Views |
---|---|---|---|---|---|
249 | Develop | [js] jQuery, Javascript 모바일(스마트폰) 판단하는 방법 | hooni | 2015.04.26 | 2574 |
248 | Develop | [php][laravel] 라라벨 프로젝트 생성 및 구조 | hooni | 2017.12.15 | 2562 |
247 | Develop | [펌] 게임 엔진 만든거 공개합니다. | hooni | 2015.02.21 | 2477 |
246 | Develop | [ios] iOS앱의 Xcode 빌드 과정 | hooni | 2015.01.03 | 2407 |
245 | Develop | [c] 셀프 넘버(Self Number) 구하기 1 | hooni | 2016.09.09 | 2399 |
244 | System/OS | 무료로 HTTPS 적용하기 (Lets' Encrypt) | hooni | 2017.02.16 | 2397 |
243 | Develop | XML, JSON, BSON, MSGPACK 장,단점 비교 | hooni | 2017.01.11 | 2385 |
242 | Develop | [java] netty (비동기 이벤트 방식 네트워크 프레임워크) 사용법 #1 (server) 1 | hooni | 2015.01.02 | 2325 |
241 | System/OS | [mac][추천 무료앱] 구름 입력기 - 국내 맥 사용자를 위한 한글 대안 입력기 1 | hooni | 2015.01.04 | 2323 |
240 | Develop | [android] 버전 별 앱 알림 설정으로 이동하는 방법 | hooni | 2016.11.28 | 2294 |
239 | System/OS | 서버 확장을 위한 두 가지 방법 | hooni | 2018.08.29 | 2281 |
238 | Develop | [android] 안드로이드 앱 문서 샘플 - NCComix | hooni | 2017.07.11 | 2235 |