Hacker News 의견
  • Homebrew의 네이밍 규칙이 가끔은 헷갈리게 느껴지기도 하지만, 전반적으로 정말 유용한 도구임을 계속 느끼고 있음
    또한 자신의 tap을 만들어서 툴을 배포하는 과정이 이렇게 간단할 줄 몰랐음
    언어별 패키지 매니저(예: uv)와 비교하면 어떤 점이 더 나은지 궁금함
    특히 특정 생태계 안에 없는 사람에게 더 쉬운지, 즉 범용성 관점에서 우위가 있는지 알고 싶음

    • 고마움 전달하며, 패키지 레지스트리를 사용하는 다른 툴들은 대체로 계정 생성, 2단계 인증, 서명 과정 등이 필요함
      Homebrew는 GitHub 약관(ToS)이 신뢰의 근거 역할을 하기에 전체적으로 훨씬 간소화됨
      Homebrew 팀에서 이 방식 덕분에 많은 복잡함을 줄일 수 있음

    • Python 패키지 기준으로 이야기하면, uv같이 모든 걸 한 번에 패키징하려는 시도는 현실적으로 힘들음
      그래서 일반적으로는 venv 환경에 고정된 의존성만 설치하는 방식을 사용함
      구체적인 예시로는 이 포뮬라 참고 가능
      uv에 관해서는, 공식 툴(brew update-python-resources, homebrew-pypi-poet)로 비공개 패키지를 지원해 보려 했지만 제대로 되지 않아서
      직접 uvbrew를 만들어 리소스 생성을 돕도록 함
      Homebrew에서 Python 포뮬라 작성 참고용 공식 문서 있음

  • Go 개발자라면 Goreleaser 툴을 추천함
    개인 tap 내에서 바이너리 배포를 아주 쉽게 해줌(공식 core에는 금지된 방식임)

    • 최근에 알게 된 사실인데 Goreleaser가 이제 Go뿐 아니라 Rust, TypeScript, Python, Zig 등 여러 언어를 지원함
      각 언어별 프로젝트 관리에서 활용도 높음
  • 개인적으로는, tap 쪽에서 직접 업데이트를 관리하는 게 좀 더 이상적이라고 생각함
    일반적으로 upstream에서 업데이트하는 방식과 비슷함
    이 워크플로우를 참고하면 소유하지 않은 포뮬라/캐스크도 쉽게 업데이트할 수 있음
    brew bump 명령어로 모두 스캔하고, PR 만들어 올리면서 brew test-bot으로 테스트까지 자동화 가능함
    실제 PR 예시는 여기 에 참고할 수 있음

    • 좋은 아이디어라고 생각함
      평소엔 GitHub Actions 사용 시간이 아쉽다는 생각 때문에 엄두가 나지 않았는데, 오픈소스에서는 무료이니 이런 활용도 괜찮겠음
  • 나만의 Homebrew tap 버전 자동 bump 워크플로우로 homebrew-bump-revision을 직접 작성해 봄
    여러 개인 프로젝트에서 이걸 잘 쓰고 있음

    • 멋져 보인다는 생각 전함
      나는 귀찮아서 시도하지 않았지만 좋은 툴임
  • Ruby Rogues 팟캐스트에서 Homebrew로 CLI 배포할 때의 각종 팁을 다룬 에피소드가 있었음
    관련 에피소드 링크에서 더 많은 내용 들어볼 수 있음

  • Python 툴 패키징에 대해 흥미로운 점 발견함
    일부 Python 패키지는 빌드 과정에서 의존성 루프가 발생해 Homebrew와 호환되지 않는 경우가 있음
    pip는 바이너리 릴리스를 다운로드하므로 문제가 없지만, Homebrew는 모든 의존성까지 직접 빌드하므로 이 과정이 훨씬 오래 걸림
    그래서 중간 크기 Python 프로젝트도 "bottle" 빌드에 한 시간이 넘게 걸릴 수 있음

  • 나는 시스템 관리를 위해 nix를 사용하기 시작한 이후로 단 한 번도 후회하지 않았음
    유일하게 아쉬운 점은 멀티플레이어 게임 때문에 windows에 의존해야 하는 부분 하나뿐임