홈브류 Homebrew

macOS는 기본적으로 유닉스 기반의 운영체제 OS로, 그 특성상 다양한 오픈 소스 소프트웨어들이 널리 사용되고 있습니다. 하지만 이러한 소프트웨어들을 개별적으로 설치하고 관리하는 것은 시간과 노력이 많이 들 수 있는 작업입니다. 이러한 문제를 해결하고자, macOS에서는 패키지 관리 도구인 Homebrew가 존재합니다.

Homebrew는 편리한 패키지 관리를 위해 탄생한 도구로, 사용자들에게 커맨드 라인 인터페이스를 통해 소프트웨어를 쉽고 빠르게 설치하고 관리할 수 있는 환경을 제공합니다. Homebrew를 통해 사용자는 간단한 명령어만으로 필요한 소프트웨어를 설치하거나 업데이트할 수 있습니다.

Homebrew 란

Homebrew-홈페이지
Homebrew 홈페이지

Homebrew는 macOS 운영체제에서 사용되는 패키지 관리자로, 소프트웨어 및 도구를 간편하게 설치하고 관리할 수 있도록 도와주는 오픈 소스 프로젝트입니다. 이 도구는 터미널을 통해 손쉽게 다양한 소프트웨어를 설치하고 업데이트할 수 있는 강력한 도구로 알려져 있습니다. Homebrew 더 알아보기

맥북의 웹캠 카메라 를 끄고 추가적으로 웹캠의 활동을 모니터링 하는 방법

Homebrew 특징

Homebrew는 대표적으로 다음과 같은 특징이 있습니다.

  • 커맨드 라인 인터페이스: Homebrew는 터미널을 통해 사용되며, 명령어를 통해 패키지를 설치, 업데이트, 삭제할 수 있습니다. 이를 통해 사용자는 간편하게 소프트웨어를 관리할 수 있습니다.
  • 설치 경로: Homebrew가 설치되는 경로는 /usr/local이며, 시스템 디렉터리와 격리되어 시스템 파일을 손상시키지 않습니다.
  • Formula(수식): Homebrew에서는 패키지를 Formula라고 부르며, 이는 각 소프트웨어 패키지의 설치 및 빌드 방법을 정의한 스크립트입니다. Formula는 Homebrew의 핵심 요소로, 새로운 소프트웨어를 Homebrew에 추가하거나 업데이트할 때 사용됩니다.
  • 간편한 업데이트: Homebrew를 사용하면 설치된 패키지를 쉽게 최신 버전으로 업데이트할 수 있습니다. 간단한 명령어로 전체 시스템의 패키지를 업데이트할 수 있어 유지 보수가 용이합니

Homebrew 설치

홈브류-설치-과정
홈브류 설치 과정

Homebrew는 터미널에서 간단한 명령어 실행으로 설치할 수 있습니다. 기본적인 설치 과정은 Homebrew 설치하기 문서를 확인하세요.

Hombrew 기본 사용법

Homebrew의 사용 방법은 Homebrew 기본 사용 방법 문서를 확인하세요.

맥 기본 보조키 cmd,option,ctrl 키 위치 값 변경 - 윈도우 키보드 연동

Homebrew Cask

Homebrew Cask는 Homebrew의 확장 기능으로서, macOS 애플리케이션, 폰트, 플러그인, 그리고 논-오픈 소스 소프트웨어 등을 설치하는 기능을 제공합니다. 이는 기본적인 Homebrew가 주로 커맨드 라인에서 사용되는 툴들을 관리하는 데 반해, Homebrew Cask는 GUI 기반의 애플리케이션 등을 관리하는데 초점을 두고 있습니다.

Homebrew Cask를 사용하면, 사용자는 터미널에서 간단한 명령어를 통해 macOS 애플리케이션을 손쉽게 설치하고 관리할 수 있습니다. 이를 통해 사용자는 소프트웨어의 설치 및 업데이트 과정을 간소화하고, 시스템의 패키지 관리를 효율적으로 수행할 수 있습니다.

기본 앱 설치 명령

Homebrew Cask를 사용하면 터미널에서 간단한 명령어를 사용하여 macOS 애플리케이션을 설치하고 업데이트할 수 있습니다.

예를 들어 Chrome 브라우저를 설치하고 싶다면 다음과 같이 명령어합니다.

brew install --cask google-chrome

윈도우 10에서 우클릭 메뉴 왼쪽에 나올때 오른쪽으로 변경하기

애플리케이션 관리

Homebrew Cask를 통해 설치된 애플리케이션은 간편하게 업데이트하거나 제거할 수 있습니다.

  • 업데이트 명령 예시: brew upgrade --cask application-name
  • 제거 명령 예시: brew uninstall --cask application-name

폰트 및 플러그인 설치

macOS 폰트나 플러그인도 Homebrew Cask를 통해 설치할 수 있습니다.

  • 폰트 설치 명령어 예시: brew install --cask font-name
  • 플러그인 설치 명령어 예시: brew install --cask plugin-name
맥에서 클립보드 히스토리 단축키로 적용하기 변수 활용

Cask 파일

Cask 파일은 Homebrew Cask를 통해 macOS 애플리케이션을 설치하고 관리하기 위한 설정 파일로, Ruby 기반의 스크립트로 작성됩니다. 이 파일은 애플리케이션의 다운로드 URL, 버전, 설치 경로 등을 지정하여 Homebrew Cask가 정확한 정보를 참조하고 원하는 애플리케이션을 관리할 수 있도록 합니다.

Cask 파일은 보통 /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Casks 디렉터리에 저장됩니다. 이 디렉터리는 Homebrew Cask가 자동으로 생성하며 기본적으로 다음과 같은 구조를 가지고 있습니다.

cask 'application-name' do
  version 'x.x.x'
  url 'https://example.com/application-name.dmg'
  appcast 'https://example.com/application-name.xml'
  name 'Application Name'
  homepage 'https://example.com'
  sha256 'hash-value'

  app 'Application Name.app'
end

Cask 파일의 주요 속성은 다음과 같습니다.

  • cask: 애플리케이션의 이름을 정의합니다.
  • version: 애플리케이션의 버전을 지정합니다.
  • url: 애플리케이션의 다운로드 URL을 지정합니다.
  • appcast: 애플리케이션의 업데이트 정보를 제공하는 URL을 지정합니다.
  • name: 애플리케이션의 공식 이름을 지정합니다.
  • homepage: 애플리케이션의 홈페이지 URL을 지정합니다.
  • sha256: 다운로드 파일의 SHA-256 해시 값을 지정합니다.
  • app: 설치된 애플리케이션의 실행 파일을 지정합니다.

Homebrew의 작동 원리

Homebrew는 Formula와 Tap을 활용하여 간편하게 소프트웨어를 설치하고 관리합니다. Formula의 스크립트는 소스 코드의 빌드 및 설치에 대한 지침을 제공하며, Tap은 추가적인 외부 저장소를 등록하여 다양한 소프트웨어를 사용할 수 있도록 확장성을 제공합니다.

기본적인 작동 원리는 다음과 같이 진행됩니다.

  1. Formula 검색: 사용자가 brew install 명령을 실행하면 Homebrew는 공식 및 추가된 Tap에서 Formula를 검색합니다.
  2. 의존성 확인: Formula에 정의된 의존성이 있는 경우, 해당 의존 패키지를 먼저 설치합니다.
  3. 소스 코드 다운로드 및 설치: Formula에 정의된 소스 코드의 URL로부터 아카이브를 다운로드하고, 필요에 따라 소스 코드를 컴파일하여 패키지를 설치합니다.
  4. 심볼릭 링크 생성: 필요한 실행 파일이나 라이브러리를 /usr/local/bin 또는 /usr/local/lib 등의 디렉터리에 심볼릭 링크를 생성하여 사용자의 시스템에서 사용할 수 있도록 합니다.
맥 윈도우 리눅스 CopyQ로 클립보드 저장하고 쉽게 재사용하기

Formula와 Tap

Homebrew의 Formula는 패키지 설치와 빌드 방법을 정의한 스크립트이며, Tap은 사용자가 추가로 패키지를 설치할 수 있게 해주는 패키지 저장소입니다.

Formula(수식)

Formula는 Homebrew에서 패키지(소프트웨어)를 정의하고 설치하는 데 사용되는 스크립트입니다. 각 Formula 파일은 특정 소프트웨어 패키지의 설치, 컴파일, 의존성 관리 등에 필요한 모든 정보를 포함합니다. Homebrew는 이러한 Formula를 사용하여 패키지를 설치하고 업데이트합니다.

Formula는 Ruby 스크립트로 작성된 파일로, 보통 *.rb 확장자를 가지고 있습니다. 이 파일은 Homebrew가 해당 패키지를 설치하고 관리하기 위한 지침을 포함하고 있습니다. 예를 들어, 아래 ExamplePackage라는 Formula는 example_package.rb와 같이 파일로 저장될 수 있습니다.

class ExamplePackage < Formula
  desc 예시 패키지
  homepage https://example.com
  url https://example.com/archive.tar.gz
  sha256 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
  depends_on dependency
  def install
    # 패키지의 설치 로직
    bin.install executable
    lib.install library
  end
end

위 내용은 다음과 같은 부분들을 정의합니다.

  • desc: desc는 패키지에 대한 간단한 설명을 제공합니다. 이 부분은 사용자가 패키지를 검색할 때 표시되는 간략한 설명으로, 패키지의 주요 기능이나 목적을 요약하여 나타냅니다.
  • homepage: homepage는 패키지의 공식 홈페이지나 소개 페이지의 주소를 나타냅니다. 사용자가 패키지에 대한 자세한 정보를 얻을 수 있는 곳으로 연결됩니다.
  • url: url은 소스 코드 아카이브의 다운로드 주소를 지정합니다. Homebrew는 이 URL을 사용하여 소스 코드를 다운로드하고 패키지를 빌드합니다.
  • sha256: sha256은 소스 코드 아카이브의 무결성을 검증하기 위한 해시값을 제공합니다. 해당 값은 소스 코드가 변경되지 않았음을 보장하고, Homebrew가 정확한 버전의 소스 코드를 다운로드하고 있는지 확인합니다.
  • depends_on: depends_on은 해당 패키지가 의존하는 다른 패키지를 지정합니다. 이 부분은 패키지를 설치하기 전에 필요한 다른 패키지들을 Homebrew에게 알려주어 의존성을 해결하는 데 사용됩니다.
  • install: install 메서드는 실제로 패키지를 설치하는 데 사용됩니다. 여기에는 실행 파일이나 라이브러리를 어디에 설치할지 등의 세부적인 설치 로직이 들어갑니다. 위의 예시에서는 bin.install로 실행 파일을 /usr/local/bin에, lib.install로 라이브러리를 /usr/local/lib에 설치하는 예시가 나와 있습니다.

Tap(탭)

Tap은 Homebrew의 외부 저장소입니다. 기본적으로 Homebrew는 공식 저장소에서 패키지를 제공하지만, Tap을 통해 추가적인 외부 저장소를 등록하고 사용할 수 있습니다. 이를 통해 사용자들은 커뮤니티에서 제공하는 Formula를 활용할 수 있습니다.

쉽게말해 Tap은 외부 저장소이며, 해당 저장소 안에 Formula가 포함된 디렉토리가 있습니다. 이 디렉토리는 보통 Tap의 이름과 일치하며, 그 안에 Formula 파일들이 위치합니다.

user
└── tapname
    └── Formula
        └── example_package.rb

예를 들어, user/tapname Tap에 속한 Formula 파일은 위 tree와 같이 구성될 수 있습니다. 이 디렉토리 구조에서 Formula 디렉토리 안에 example_package.rb와 같은 Formula 파일이 위치하게 됩니다. Homebrew는 이렇게 구조화된 Tap을 인식하고, 해당 Tap에 속한 Formula를 활용하여 패키지를 설치합니다.

# 외부 저장소(Tap) 추가
brew tap user/tapname

# 추가된 외부 저장소에서 Formula 설치
brew install user/tapname/example-package

Tap을 사용한 Formula 설치 예시이며, Tap의 주요 명령어는 다음과 같은 것들이 있습니다.

  • brew tap [계정/탭명]: 외부 저장소(Tap)를 추가합니다.
  • brew untap [계정/탭명]: 외부 저장소(Tap)를 제거합니다.
  • brew tap: 현재 등록된 Tap 목록을 확인합니다.

관련 글

댓글로 남기기 어려운 내용은 Contact Form 에서 개별적으로 문의 할 수 있습니다. 해당 글과 연관 된 내용은 Copy를 이용해 현재 페이지의 주소를 복사 후 문의 폼에 입력시 보다 정확한 답을 얻을 수 있습니다.

Leave a Comment