Homebrew를 통해 프로젝트를 사용할 수 있도록 만들기

소프트웨어 개발자로서 누구나 쉽게 프로젝트를 사용할 수 있도록 하는 것이 목표이지만 달성하기 어려울 수 있습니다. apt , pacman 또는 brew 와 같은 패키지 관리자를 사용하는 것은 업계 표준이 되었지만(wget + 직접 컴파일 + 설치에 비해) 여기에 프로젝트를 게시하는 것은 상당히 지루할 수 있습니다.

이 기사에서는 홈브류(Linux 및 MacOS 모두에서 사용 가능)용 탭 생성의 기본 사항을 살펴보겠습니다.

탭 만들기



탭은 홈브류용 공식(설치 스크립트)의 외부 소스입니다. 사용하려면 brew tap user/repo 로 추가해야 합니다. 홈브류/코어에 새 공식을 제출하고 승인(또는 거부)을 기다리는 것보다 훨씬 쉽습니다.

새 탭을 만드는 것은 다음과 같이 쉽습니다.

# creates a folder under /opt/homebrew/Library/Taps/xxx/xxx
brew tap-new arkscript-lang/homebrew-arkscript

# generates a formula in your newly created tap
brew create --cmake \
    'https://github.com/ArkScript-lang/Ark.git' \
    --HEAD \
    --set-name '[email protected]' \
    --set-version '3.3.0' \
    --tap arkscript-lang/homebrew-arkscript


필요한 빌드 유형을 --cmake로 지정했습니다(다른 템플릿은 크리스탈, 고, 메손, 파이썬, 노드, 루비, 펄 및 러스트에 사용 가능). URL은 파일이 아니라 저장소입니다). --HEAD로 수식의 이름을 지정한 다음 버전을 set-name로 지정했습니다. 마지막으로 set-version로 리포지토리를 지정했습니다(사용자 및 리포지토리 이름이 GitHub/GitLab/etc에서 일치해야 함).

수식 편집



이 마지막 명령을 입력하면 공식을 편집하기 위해 선택한 편집기(저에게는 vim)에 들어가게 됩니다.

# Documentation: https://docs.brew.sh/Formula-Cookbook
#                https://rubydoc.brew.sh/Formula
# PLEASE REMOVE ALL GENERATED COMMENTS BEFORE SUBMITTING YOUR PULL REQUEST!
class ArkscriptAT330 < Formula
  desc ""
  homepage ""
  license ""
  head "https://github.com/ArkScript-lang/Ark.git"

  depends_on "cmake" => :build

  def install
    # ENV.deparallelize  # if your formula fails when building in parallel
    system "cmake", "-S", ".", "-B", "build", *std_cmake_args
    system "cmake", "--build", "build"
    system "cmake", "--install", "build"
  end

  test do
    # `test do` will create, run in and delete a temporary directory.
    #
    # This test will fail and we won't accept that! For Homebrew/homebrew-core
    # this will need to be a test that verifies the functionality of the
    # software. Run the test with `brew test [email protected]`. Options passed
    # to `brew install` such as `--HEAD` also need to be provided to `brew test`.
    #
    # The installed folder is not in the path, so use the entire path to any
    # executables being tested: `system "#{bin}/program", "do", "something"`.
    system "false"
  end
end

tap를 사용했기 때문에 이 수식은 --HEAD에만 적용됩니다. 이를 해결하기 위해 brew install --head를 추가합니다.

class ArkscriptAT330 < Formula
  desc ""
  homepage ""
  url "https://github.com/ArkScript-lang/Ark.git", tag: "v3.3.0"
  license ""
  head "https://github.com/ArkScript-lang/Ark.git"


SPDX 라이센스 명명 규칙( https://spdx.org/licenses/ )을 따라야 하는 라이센스 필드 바로 앞에 와야 합니다(예: url ).

맞춤 단계



모든 필드가 채워지고 기본 주석이 제거되면 수식의 단계를 조금 더 수행할 수 있습니다.

테스트를 위해 MPL-2.0 단계를 추가했습니다.

class ArkscriptAT330 < Formula
  # ...

  def post_install
    ohai "ℹ️  Add ARKSCRIPT_PATH=" + lib + "/Ark/ to your bashrc/zshrc"
  end

  # ...


이는 기본적으로 프로젝트가 작업할 수 있도록 환경 변수를 셸 구성 파일에 추가하도록 사용자에게 지시합니다post_install(메시지 인쇄). 오류 메시지를 표시하기 위한 ohai와 경고를 위한 odie도 있습니다. 여기에서 수식을 사용자 정의하기 위한 추가 단계 및 필드를 찾을 수 있습니다: https://rubydoc.brew.sh/Formula.html .

오류 확인



이제 수식을 작성했으므로 다음을 사용하여 테스트해 보겠습니다.

brew audit --new [email protected]


아무 것도 반환하지 않으면 계속 진행할 수 있으며 탭을 게시할 수 있습니다.

다음을 사용하여 잘못된 구성 및 오류를 확인하는 수식을 작성해야 합니다.

brew install --build-from-source <user>/<repo>/<formula>


테스트를 다시 수행해야 하는 경우 opoo를 수행하십시오.

탭 게시



먼저 brew remove <formula> 이름으로 아직 완료되지 않은 경우 GitHub/GitLab에 리포지토리를 생성해야 합니다. 접두사는 필수입니다.

그런 다음 다음을 사용하여 탭에 리모컨을 추가할 수 있습니다.

git remote add origin [email protected]:<user>/<repo>.git


작업을 커밋하면 이제 리포지토리에 푸시할 수 있습니다.

탭 사용


homebrew-<tap name> 를 사용하여 탭 추출 목록에 탭을 추가합니다. 그런 다음 공식은 brew tap <user>/<repo> 또는 brew install <formula> 이름이 이미 homebrew core에서 사용되는 경우 사용할 수 있습니다.

더 나아가



탭 한 번으로 수식을 게시하고 프로젝트를 누구나 쉽게 사용할 수 있도록 만들었으므로 이제 더 나아가 다음 전체 가이드를 확인하고 싶을 수 있습니다. https://docs.brew.sh/Formula-Cookbook

좋은 웹페이지 즐겨찾기