맨위로가기

홈브루 (패키지 관리 소프트웨어)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

홈브루는 맥스 하월에 의해 2009년에 개발된 macOS용 패키지 관리자이다. 루비로 작성되었으며, 깃허브를 통해 업데이트된다. brew 명령어를 통해 소프트웨어 설치, 업데이트, 무결성 확인 등의 기능을 제공한다. 홈브루는 macOS 운영 체제와 함께 설치되는 루비 버전을 대상으로 하며, 인텔 기반 머신에서는 /usr/local에, 애플 실리콘에서는 /opt/homebrew에 설치된다. 2019년 Linuxbrew가 병합되어 리눅스 및 Windows Subsystem for Linux에 대한 지원을 추가했으며, 2021년에는 Apple silicon을 탑재한 Mac에 대한 공식 지원이 추가되었다. 홈브루는 사용자의 행위를 수집하여 InfluxDB에 보고하며, brew analytics off 명령을 통해 데이터 수집을 중단할 수 있다.

더 읽어볼만한 페이지

  • 리눅스 패키지 관리 관련 소프트웨어 - 어드밴스트 패키징 툴
    어드밴스트 패키징 툴(APT)은 데비안 계열 리눅스 배포판에서 패키지를 관리하는 도구 모음으로, 패키지 설치, 삭제, 업데이트, 업그레이드 기능을 제공하며, 특히 패키지 간 의존성을 자동 관리하는 특징을 가진다.
  • 리눅스 패키지 관리 관련 소프트웨어 - ZYpp
    ZYpp은 SUSE Linux 배포판의 소프트웨어 관리 엔진으로, YaST 패키지 관리자와 Red Carpet의 통합 필요성에 의해 개발되었으며, libsolv 통합 및 SAT 솔버 도입을 통해 패키지 관리 효율성을 높인 Zypper 명령줄 도구를 제공한다.
  • MacOS용 유틸리티 - MacPorts
    MacPorts는 macOS에서 소프트웨어를 설치 및 관리하는 패키지 관리 시스템으로, 사용자가 소스 코드 컴파일 또는 미리 빌드된 바이너리를 통해 오픈 소스 소프트웨어를 간편하게 설치할 수 있도록 지원하며, Fink, Homebrew와 유사한 오버레이 배포판이다.
  • MacOS용 유틸리티 - 야후! 위젯
    야후! 위젯은 자바스크립트와 XML을 기반으로 하여 다양한 기능을 수행하는 위젯을 제작하고 배포할 수 있도록 지원하는 소프트웨어이다.
홈브루 (패키지 관리 소프트웨어) - [IT 관련 정보]에 관한 문서
기본 정보
Homebrew 로고
Homebrew 로고
웹사이트Homebrew 공식 웹사이트
장르패키지 관리자
라이선스BSD 라이선스
출시일2009년 5월 21일
최신 릴리스 버전4.1.21
최신 릴리스 날짜2023년 11월 20일
운영체제macOS, Linux
상태활성
프로그래밍 언어루비
개발
개발자Max Howell (맥스 호웰)
언어영어
기타
google_mapHomebrew

2. 역사

홈브루는 2009년 맥스 하웰(Max Howell)에 의해 처음 개발되었다.[1][14] 초기 성장을 위해 2013년 킥스타터 캠페인을 통해 서버 자금을 성공적으로 모금했으며(14859GBP),[15] 이후 프로젝트 저장소를 GitHub 내 자체 계정으로 이전하고[16] 호스팅 서비스도 Bintray[17]를 거쳐 GitHub Packages[23]로 옮기는 등 변화를 거쳤다.

주요 버전 업데이트를 통해 리눅스 및 Windows Subsystem for Linux 지원[19], Apple silicon 탑재 Mac 지원[22] 등 지원 범위를 넓혔으며, 바이너리 패키지(bottles) 제공 방식[21][23]과 공식 저장소(tap) 정보 관리 방식[24] 등을 개선하며 발전해왔다. 2021년 2월 기준으로, 홈브루는 34명의 팀에 의해 유지 관리되고 있다.[6]

2. 1. 개발 및 성장

Homebrew는 2009년 Max Howell에 의해 처음 만들어졌다.[1][14] 2013년 3월에는 킥스타터 캠페인을 통해 공식 테스트 및 빌드를 위한 서버 자금을 성공적으로 모금했으며, 총 14859GBP를 모았다.[15] 같은 해 12월 13일, Homebrew 저장소는 Howell의 개인 GitHub 계정에서 자체 프로젝트 계정으로 이전되었다.[16]

2015년 2월에는 SourceForge의 서비스 중단으로 바이너리 파일을 사용할 수 없게 되자, 호스팅 서비스를 Bintray로 옮겼다.[17] 2016년 9월 21일에는 Homebrew 버전 1.0.0이 공식 출시되었다.[18]

2019년 1월에는 Linuxbrew가 Homebrew에 통합되면서 리눅스 및 Windows Subsystem for Linux에 대한 베타 지원이 추가되었다.[19] 같은 해 2월 2일에는 버전 2.0.0이 출시되었다.[20] 2020년 9월 21일에는 버전 2.5.2가 출시되었는데, 이때부터 GitHub Releases를 통해 bottle taps(바이너리 패키지 저장소)를 지원하기 시작했다.[21]

2021년 2월 5일에는 버전 3.0.0이 출시되었으며, 이는 Apple silicon이 탑재된 Mac에 대한 공식 지원을 포함했다.[22] 2021년 2월 기준으로, Homebrew는 34명의 팀원에 의해 유지 관리되고 있다.[6] 2021년 4월 12일에는 버전 3.1.0이 출시되었는데, 이는 JFrog가 발표한 Bintray 서비스 종료(2021년 5월 1일)에 앞서 bottles(바이너리 패키지)를 GitHub Packages로 이전하는 작업을 완료한 것이었다.[23]

가장 최근인 2023년 2월 16일에는 버전 4.0.0이 출시되었다. 이 버전부터는 Homebrew가 관리하는 공식 테스트를 가져올 때, 기존의 로컬 Git 복제 방식 대신 호스팅된 JSON 파일을 사용하는 것이 기본값이 되었다.[24]

2. 2. 주요 버전 출시

2016년 9월 21일, 홈브루 버전 1.0.0이 출시되었다.[18] 2019년 1월, Linuxbrew가 홈브루에 병합되면서 리눅스 및 윈도우 리눅스 하위 시스템(WSL)에 대한 베타 지원이 추가되었다.[19]

이후 주요 버전 출시 내용은 다음과 같다.

  • 2.0.0 (2019년 2월 2일): 리눅스 및 WSL을 공식 지원하기 시작했다. 또한, `brew cleanup` 명령어가 자동으로 실행되도록 변경되었고, OS X Mountain Lion (10.8) 및 이전 버전에 대한 지원이 중단되었다.[20]
  • 2.5.2 (2020년 9월 21일): GitHub Releases를 통해 바이너리 패키지 저장소(bottle taps)를 지원하기 시작했다.[21]
  • 3.0.0 (2021년 2월 5일): Apple silicon을 탑재한 Mac에 대한 공식 지원이 추가되었다.[22]
  • 3.1.0 (2021년 4월 12일): Bintray 서비스 종료(2021년 5월 1일)에 앞서 바이너리 패키지(bottles) 호스팅을 GitHub Packages로 이전하는 작업을 완료했다.[23]
  • 4.0.0 (2023년 2월 16일): 기존의 로컬 Git 저장소 복제 방식 대신, 호스팅된 JSON 파일을 통해 공식 저장소(tap) 정보를 가져오도록 기본 설정을 변경하여 업데이트 속도를 크게 향상시켰다.[24]
  • 4.2.0 (2023년 12월 18일): Ruby 3.1 사용, 의존성 업데이트 감소 등 성능 개선이 이루어졌으며, `.env` 파일을 통한 설정 및 macOS 소노마 지원이 추가되었다.[34]


아래는 주요 버전별 상세 정보이다.

버전출시일지원하는 macOS최소 macOS주요 변경 사항[34]
4.2.02023-12-18소노마 (14)El Capitan (10.11)주요 성능 업그레이드 (Ruby 3.1 사용, 의존성 업데이트 감소 등), `.env` 파일 구성 및 macOS 소노마 지원.
4.1.02023-07-20벤투라 (13)Homebrew 4.0.0의 새로운 JSON API의 보안/신뢰성/성능/사용성 대폭 개선, 분석 데이터 Google Analytics에서 EU의 InfluxDB로 이전 완료, macOS 소노마 지원 기반 마련.
4.0.02023-02-16로컬 Git 복제 방식에서 JSON 다운로드 방식으로 변경하여 공식 저장소 업데이트 속도 크게 향상.
3.6.02022-09-07macOS 벤투라 사전 지원, `--eval-all`/`HOMEBREW_EVAL_ALL` 필요성 제거, CI 플랫폼으로 Ubuntu 22.04로 마이그레이션.
3.5.02022-06-06몬테레이 (12)El Capitan (10.11)`brew update` 동작 개선, 최소 지원 macOS 버전이 El Capitan (10.11)으로 변경됨.
3.4.02022-02-28Mavericks (10.9)`HOMEBREW_NO_ENV_HINTS`로 환경 설정 제안 숨기기 기능 추가, 리눅스에서 `brew services`가 systemd 지원, `brew install --overwrite` 옵션 추가.
3.3.02021-10-25리눅스 사용자를 위한 저장소(Homebrew/linuxbrew-core)를 Homebrew/homebrew-core로 통합, macOS 몬터레이 공식 지원, 모하비 지원 중단, API를 통한 설치 옵션(`HOMEBREW_INSTALL_FROM_API`) 추가.
3.2.02021-06-21몬테레이 (12) (베타)`brew install` 시 오래된 패키지 기본 업데이트, macOS 12 (몬테레이) 초기 지원.
3.1.02021-04-12빅 서 (11)바이너리 패키지(bottles) 호스팅을 GitHub Packages로 이전 완료.
3.0.02021-02-05Apple silicon 공식 지원 및 새로운 바이너리 패키지 형식 추가.
2.7.02020-12-21일부 API 사용 중단.
2.6.02020-12-01인텔 기반 macOS 빅서 지원, `brew cask` 명령어를 `brew` 명령어로 통합, Apple silicon/ARM 지원 시작 및 일부 API 사용 중단.
2.5.02020-09-08카탈리나 (10.15)`brew cask` 통합 개선, 라이선스 지원 추가 및 일부 API 사용 중단.
2.4.02020-06-11macOS Mavericks 지원 중단, 개발 버전(`--devel`) 설치 옵션 제거, `brew audit` 속도 향상.
2.3.02020-05-29GitHub Actions CI 도입, 설치 전 리소스 미리 받기 기능 추가, Docker 이미지 개선, URL을 통한 `brew install` 사용 중단.
2.2.02019-11-27macOS 카탈리나 지원, 성능 향상 및 리눅스 환경 통합 개선.
2.1.02019-04-04모하비 (10.14)공식 웹사이트(formulae.brew.sh)에서 캐스크(casks) 정보 제공 및 검색 기능 추가, Docker 지원 개선.
2.0.02019-02-02Mavericks (10.9)리눅스 및 WSL 공식 지원, `brew cleanup` 자동 실행, Homebrew/homebrew-core 저장소에서 옵션 제거, OS X Mountain Lion (10.8) 및 이전 버전 지원 중단.
1.9.02019-01-09Mountain Lion (10.8) 및 이전 버전리눅스 지원 시작, (선택 사항) 자동 `brew cleanup` 기능 추가, 더 많은 사용자에게 바이너리 패키지(bottles) 제공.
1.8.02018-10-23macOS 모하비 공식 지원, `brew upgrade` 시 링크 자동 복구, `brew info`에서 분석 데이터 표시, 캐스크(Cask) 다운로드 격리.
1.7.02018-07-15모하비 (10.14) (베타)macOS 모하비 개발자 베타 지원, JSON 분석 및 공식 API 도입, 다양한 API 사용 중단 관련 수정.
1.6.02018-04-09정보 없음`brew install python`이 Python 3 설치하도록 변경, Homebrew/homebrew-php 저장소 사용 중단, 다양한 API 사용 중단.
1.5.02018-01-19공식 API 및 일부 공식 저장소(tap) 사용 중단.
1.4.02017-12-11환경 변수 필터링 기능 추가.
1.3.02017-07-31`brew install python`이 `python` 대신 `python2` 바이너리 설치하도록 변경 (시스템 Python 덮어쓰기 방지 목적).
1.2.02017-05-01대부분의 공식 저장소(tap) 사용 중단 및 Homebrew/homebrew-core로 통합.
1.1.02016-11-07버전 1.0.0 이후 개선 작업 반영.
1.0.02016-09-21홈브루 첫 정식 버전 출시.


3. 구현

홈브루는 루비 프로그래밍 언어로 작성되었으며, macOS 운영 체제와 함께 설치되는 루비 버전을 대상으로 한다. 설치는 Git 저장소로 구성되어 사용자가 GitHub에서 업데이트된 저장소를 가져와 홈브루를 업데이트할 수 있다.

패키지 관리자는 "포뮬라"(Formula)라고 불리는, 홈브루 도메인 특화 언어(DSL)로 작성된 루비 스크립트를 사용하여 소스에서 소프트웨어를 빌드한다. 이 포뮬라는 종속성 관리, 소스 파일 다운로드, 소프트웨어 구성 및 컴파일 작업을 수행한다. "보틀"(Bottle)이라고 하는 바이너리 패키지는 기본 옵션으로 미리 빌드된 포뮬라를 제공하여 설치 시간을 단축시킨다.[27]

3. 1. 설치 경로

홈브루는 기본적으로 인텔 기반 맥에서는 /usr/local에 설치되고, 애플 실리콘 기반 맥에서는 /opt/homebrew에 설치된다.[25][26] 홈브루 설치는 Git 저장소를 통해 이루어지며, 사용자는 GitHub에서 업데이트된 저장소를 가져와 홈브루를 업데이트할 수 있다.

홈브루는 설치 과정에서 기본 경로인 /usr/local의 권한 설정을 변경한다. 기존에는 디렉토리 소유자가 루트(root)이고 그룹이 wheel이었지만, 홈브루 설치 후에는 설치를 진행한 사용자 및 "admin" 그룹으로 소유권이 변경된다. 구체적으로 디렉토리 접근 권한 모드는 drwxr-xr-x에서 drwxrwxr-x로 바뀐다.[28] 디렉토리뿐만 아니라 해당 경로 내 모든 파일의 소유권도 변경되는데, 이러한 권한 변경 방식은 보안상 취약점이 될 수 있다는 지적이 있다.[29]

3. 2. 권한 문제

홈브루는 /usr/local의 기본 권한 설정을 따르지 않는다. 홈브루 설치 시, 해당 디렉토리의 소유권은 기존의 루트(root) 사용자 및 wheel 그룹에서 홈브루를 설치한 사용자와 'admin' 그룹으로 변경된다. 구체적으로 권한 모드는 drwxr-xr-x root wheel에서 drwxrwxr-x myuser admin으로 바뀐다.[28] 디렉토리뿐만 아니라 그 안에 있는 모든 파일의 소유권도 설치 과정에서 함께 변경된다. 이러한 방식은 일부 사용자들에게 주요 보안 취약점으로 지적되기도 한다.[29]

4. 기능

홈브루는 터미널에서 기본 명령어인 brew를 사용하여 소프트웨어 설치, 업데이트, 시스템 점검 등 다양한 패키지 관리 기능을 수행한다.[1]

4. 1. 기본 명령어

기본 명령어는 brew이다.[1]

  • '''소프트웨어 설치''': `brew install [소프트웨어 이름]` 명령어를 사용하여 원하는 소프트웨어를 설치할 수 있다.[1]
  • '''설정 업데이트''': `brew update` 명령어를 실행하면 홈브루 자체의 설정을 최신 상태로 업데이트한다.[1]
  • '''무결성 확인''': `brew doctor` 명령어는 홈브루 설정 상태와 설치된 소프트웨어들에 문제가 없는지 점검하고, 문제가 있다면 해결 방법을 제시해 준다.[1]

5. 데이터 수집

홈브루는 InfluxDB를 통해 설치, 빌드 오류 및 운영 체제 버전과 같은 사용 통계 데이터를 수집한다.[30] 과거에는 구글 애널리틱스에도 사용자 행위를 보고했으나,[47] 홈브루 4.0.23 버전 이후로는 구글 애널리틱스를 통한 데이터 수집은 이루어지지 않는다.[31] 사용자는 brew analytics off 명령어를 사용하여 이러한 데이터 수집을 거부할 수 있다.[47][33] 수집된 데이터는 홈브루 웹사이트에서 지난 30일, 90일, 365일간의 분석 자료 형태로 공개되어 확인할 수 있다.[32]

참조

[1] Github Homebrew release 0.1 https://github.com/H[...]
[2] 웹사이트 Homebrew: OS X's Missing Package Manager https://blog.enginey[...] Engine Yard
[3] 웹사이트 Homebrew for OS X Easily Installs Desktop Apps and Terminal Utilities http://www.howtogeek[...] 2015-06-24
[4] 웹사이트 Homebrew, the perfect gift for command line lovers https://www.engadget[...] 2009-12-25
[5] 웹사이트 Homebrew - Open Collective https://opencollecti[...] 2024-01-12
[6] 웹사이트 Homebrew/brew/README.md https://github.com/H[...] 2021-02-05
[7] 웹사이트 Popular Forked Repositories https://github.com/p[...] 2015-06-24
[8] 웹사이트 The Octoverse in 2012 https://github.com/b[...] GitHub
[9] 웹사이트 GitHub Octoverse 2013 http://octoverse.git[...]
[10] 웹사이트 Linuxbrew https://linuxbrew.sh 2019-02-02
[11] 웹사이트 Linuxbrew Readme https://github.com/L[...] 2019-03-29
[12] 웹사이트 Homebrew Cask https://github.com/h[...] 2019-04-15
[13] 웹사이트 Homebrew/homebrew-php https://github.com/H[...] 2015-06-25
[14] 웹사이트 I'll start with a rare Belgian yeast and Sussex hops https://github.com/H[...] 2015-06-24
[15] 웹사이트 brew test-bot https://www.kickstar[...] 2015-06-25
[16] 트윗 This Saturday morning at 0100 GMT we will be migrating Homebrew 2013-12-11
[17] 트윗 Homebrew's bottles (binary packages) are now hosted by @bintray 2015-02-23
[18] Github Homebrew release 1.0.0 https://github.com/H[...]
[19] 웹사이트 Homebrew 1.9.0 https://brew.sh/2019[...] 2019-01-09
[20] 웹사이트 2.0.0 https://brew.sh/2019[...] 2019-02-02
[21] 웹사이트 Homebrew tap with bottles uploaded to GitHub Releases https://brew.sh/2020[...] 2020-11-18
[22] 웹사이트 3.0.0 https://brew.sh/2021[...] 2021-02-05
[23] 웹사이트 3.1.0 https://brew.sh/2021[...] 2021-04-12
[24] 웹사이트 4.0.0 https://brew.sh/2023[...] 2023-02-16
[25] 웹사이트 How to migrate to native Homebrew on an M1 Mac https://blog.smittyt[...] 2021-08-11
[26] 웹사이트 Discussion: longterm Homebrew prefix on Apple Silicon Macs · Issue #9177 · Homebrew/brew https://github.com/H[...] 2021-08-11
[27] 간행물 Homebrew Terminology https://docs.brew.sh[...] Homebrew 2024-02-27
[28] 웹사이트 What are the security implications of Homebrew and Macports? https://security.sta[...] 2019-04-02
[29] 웹사이트 How Homebrew invites users to get pwned https://applehelpwri[...] 2018-03-21
[30] 웹사이트 4.0.0 – Homebrew https://brew.sh/2023[...] 2023-02-16
[31] 웹사이트 4.0.23 Release notes https://github.com/H[...]
[32] 웹사이트 Analytics Data https://formulae.bre[...] 2018-11-01
[33] 웹사이트 Analytics Command https://docs.brew.sh[...]
[34] 웹사이트 Homebrew — Homebrew https://brew.sh/blog[...] 2024-03-15
[35] Github Homebrew release 0.1 https://github.com/H[...]
[36] Github Homebrew releases https://github.com/H[...]
[37] 웹사이트 Homebrew: OS X’s Missing Package Manager http://www.engineyar[...] Engine Yard 2010-02-02
[38] 웹인용 Homebrew: OS X’s Missing Package Manager https://blog.enginey[...] Engine Yard
[39] 웹인용 Homebrew for OS X Easily Installs Desktop Apps and Terminal Utilities http://www.howtogeek[...] 2015-06-24
[40] 웹인용 Homebrew, the perfect gift for command line lovers https://www.engadget[...] 2015-06-24
[41] 웹인용 Popular Forked Repositories https://github.com/p[...] 2015-06-24
[42] 웹인용 The Octoverse in 2012 https://github.com/b[...] 깃허브
[43] 웹인용 GitHub Octoverse 2013 https://octoverse.gi[...]
[44] 웹인용 homebrew/linuxbrew https://github.com/H[...] 2015-06-25
[45] 웹인용 Homebrew-Cask https://caskroom.git[...] 2018-04-11
[46] 웹인용 Homebrew/homebrew-php https://github.com/H[...] 2015-06-25
[47] 웹인용 Homebrew's Anonymous Aggregate User Behaviour Analytics https://github.com/H[...] 2016-09-20



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com