포트 컬렉션
포트 컬렉션(영어: Ports collection, 또는 포트 트리(ports trees), 또는 간단히 포트(ports))는 소프트웨어 설치 또는 바이너리 패키지 생성을 위한 간단한 방법으로 BSD 기반 운영체제인 FreeBSD, NetBSD, OpenBSD에서 제공하는 메이크파일 및 Patch 세트이다. 일반적으로 패키지 관리 시스템의 기반이며, 포트는 패키지 생성을 처리하고 추가 도구는 패키지 제거, 업그레이드 및 기타 작업을 관리한다. BSD 외에도 몇몇 리눅스 배포판은 젠투의 포티지, 아치의 아치 빌드 시스템 (ABS), CRUX의 포트 및 보이드 리눅스의 템플릿을 포함하여 유사한 기반 시설을 구현했다.
바이너리 배포 모델과 비교할 때 포트 시스템의 주요 이점은 사용 가능한 리소스에 따라 설치를 조정하고 최적화할 수 있다는 것이다. 예를 들어, 64비트 버전의 패키지를 사용할 수 없거나 해당 시스템에 최적화되지 않은 경우 시스템 관리자는 32비트 버전의 패키지를 쉽게 설치할 수 있다. 반대로, 주요 단점은 상당한 컴파일 시간이다. 예를 들어, 포트를 사용하여 FreeBSD 시스템을 완전히 설치하는 데는 하드웨어에 따라 며칠이 걸릴 수 있다.
FreeBSD 포트
[편집]조던 허바드는 1994년 8월 21일 자신의 포트 메이크 매크로를 FreeBSD CVS 저장소에 커밋했다.[1] 그의 패키지 설치 스위트 메이크파일은 1년 전(1993년 8월 26일)에 커밋되었다.[2] 핵심 포트 프레임워크는 처음에는 허바드와 아사미 사토시가 몇 년 동안 유지 관리했다. 이후 이 작업을 처리하기 위해 포트 관리 팀이 구성되었다.
NetBSD의 pkgsrc
[편집]NetBSD의 pkgsrc 포트 컬렉션은 이식성을 목표로 한다는 점에서 독특하며 NetBSD 자체 외에도 다른 BSD, 스마트OS/일루모스, macOS,[3] MINIX 3, 리눅스[4] 및 기타 유닉스 계열 운영체제에서 사용할 수 있다. pkgsrc는 기존 FreeBSD 포트 시스템을 기반으로 1997년 8월에 만들어졌다. 분기별 릴리스 일정을 따르며, 2018년 10월 기준으로 22,000개 이상의 패키지를 포함한다. DragonFly BSD는 1.4 릴리스와 함께 pkgsrc를 공식 패키지 관리 시스템으로 채택할 것이라고 발표했다.[5] 그러나 DragonFly BSD는 3.4 릴리스와 함께 dports라고 불리는 자체 포트 구현을 구축했으며[6] 3.6부터는 완전히 전환했다. 개발은 git을 통해 이루어진다.[7]
OpenBSD 포트
[편집]원래 기반이었던 FreeBSD Ports와 대조적으로, OpenBSD 포트 시스템은 최종 제품인 패키지를 만드는 데 사용되는 소스로 의도되었다. 포트를 설치하면 먼저 패키지를 생성한 다음 설치한다. 포트는 메이크파일, 설명 및 설치 메시지가 포함된 텍스트 파일, OpenBSD에서 프로그램이 작동하도록 조정하는 데 필요한 모든 패치, 그리고 패키지에 포함될 파일 목록이 포함된 패킹 목록으로 구성된다. 포트 트리는 표준 메이크파일 세트를 사용하며, 이 중 일부는 소스 트리와 공유되어 대부분의 기능을 제공한다. 이 공유 기반 시설에는 포트 개발자를 위한 많은 유틸리티 기능이 포함되어 있으며, 이는 포트를 매우 간단하게 만들 수 있음을 의미한다.
2007년 10월 말, OpenBSD 개발자 니콜라이 스투름은 리소스 부족으로 인해 -stable 포트 트리를 유지 보수되지 않는 것으로 간주해야 한다고 발표했다. 이는 사실상 사용자에게 보안 업데이트를 유지하기 위해 -current 포트/기본 트리를 실행하도록 강요했다. 2009년에는 로버트 나기아 재스퍼 리에비세 아드리안세의 감독 하에 -stable 포트 트리를 부활시키기로 결정되었다.[8]
OpenBSD 포트 및 패키지 목록이 있는 세 개의 비공식 웹사이트가 있다.
- OpenPorts.se, 원래 2006년에 ports.openbsd.nu로 발표되었으며,[9] 포트 트리 구조 및 업데이트를 자체적으로 파싱하고 주어진 포트의 변경 사항을 추적하는 기능을 가진 맞춤형 웹사이트였지만, 일부 복잡한 Makefile 로직을 지원하지 못하여 포트 트리 구조 및 공식 도구 사용에 대한 복잡한 지식이 필요한 패키지의 약 15%를 놓치는 단점이 있었다.[10] 이 프로젝트는 2023년 1월에 중단되었다.[11]
- ports.su, 2013년 2월에 발표되었으며 공식 sqlports 데이터베이스를 기반으로 하여[12] amd64 플랫폼에서 사용 가능한 모든 패키지 및 플레이버의 완전한 컬렉션을 보유한다. 공식 도구를 기반으로 하므로 "가상" (비주요) 카테고리를 쉽게 사용할 수 있으며, 라이브러리, 빌드 및 런타임 종속성에 대한 정보도 마찬가지이다. 웹사이트의 소스는 ports-readmes 포트에 크게 기반을 두고 있으며, GitHub에서 쉽게 사용할 수 있다. 이 프로젝트는 2018년 11월 이후 더 이상 업데이트되지 않는다.
같이 보기
[편집]- 안드로이드 런타임 (설치 시 AOT 컴파일을 수행)
- macOS에서 사용되는 MacPorts. 이름과 디자인은 포트 시스템을 기반으로 한다.
- 젠투 리눅스에서 사용되며 포트 시스템에서 영감을 받은 포티지 (소프트웨어)
각주
[편집]- ↑ “CVS log for ports/Mk/bsd.port.mk”. FreeBSD project. 2013년 4월 15일에 원본 문서에서 보존된 문서. 2018년 5월 26일에 확인함.
- ↑ “CVS log for src/usr.sbin/pkg_install/Makefile”. FreeBSD project. 2013년 4월 14일에 원본 문서에서 보존된 문서.
- ↑ “Joyent Packages Documentation - Install On macOS”. Joyent. 2018년 10월 6일에 원본 문서에서 보존된 문서. 2018년 10월 10일에 확인함.
- ↑ “Joyent Packages Documentation - Install On Linux”. Joyent. 2018년 10월 6일에 원본 문서에서 보존된 문서. 2018년 10월 10일에 확인함.
- ↑ Dillon, Matthew. “PKGSRC will be officially supported as of the next release”. 2015년 9월 9일에 원본 문서에서 보존된 문서. 2008년 1월 23일에 확인함.
- ↑ Sherrill, Justin. “DragonFly 3.4 release planning”. 2016년 3월 10일에 원본 문서에서 보존된 문서. 2016년 5월 5일에 확인함.
- ↑ “GitHub - DragonFlyBSD/DPorts: The dedicated application build system for DragonFly BSD”. 《GitHub》. 2018년 6월 11일에 원본 문서에서 보존된 문서. 2014년 7월 8일에 확인함.
- ↑ Yodlowsky, William. “4.6-stable ports”. 2011년 6월 12일에 원본 문서에서 보존된 문서. 2009년 12월 29일에 확인함.
- ↑ “ports.openbsd.nu - frontend to ports”. 《OpenBSD Journal》. 2006년 8월 9일. 2018년 5월 27일에 원본 문서에서 보존된 문서. 2018년 5월 26일에 확인함.
- ↑ Espie, Marc (2013년 6월 7일). “Re: Why is there no pkg_find(1)?”. 2022년 4월 10일에 원본 문서에서 보존된 문서. 2018년 5월 26일에 확인함.
- ↑ “Time to say goodbye”. 2023년 1월 30일. 2008년 2월 14일에 원본 문서에서 보존된 문서. 2023년 11월 2일에 확인함.
- ↑ “Introducing ports.su — ports-readmes mirror and ports search”. 《OpenBSD Journal》. 2013년 5월 2일. 2018년 5월 27일에 원본 문서에서 보존된 문서. 2018년 5월 26일에 확인함.