homebrew, macports 또는 기타 패키지 설치 도구의 차이점 / 사용은 무엇입니까? [닫은]


238

최근 우분투에서 Mac으로 전환했습니다. 맥이 sudo apt-get우분투 에서 편리하지 않다는 것에 실망했습니다 . 나는 homebrew를 사용해야한다고 들었지만 homebrew 또는 macports가 무엇을하는지 확실하지 않습니까?



8
몇 년 전, 홈 브루어 정문은 "루비 어로 작성 되었기 때문에 홈 브루어가 더 낫습니다"라는 성명서를 발표했습니다. 나는 루비에게 전혀 반대하지 않는다. 나는 oop을 좋아하고 루비는 훌륭한 oop 언어입니다. 내가 가진 문제는 한 언어가 다른 언어보다 낫다고 생각하는 소프트웨어 개발자입니다. 그런 이유로 홀로 나는 양조에 관심이 없습니다. 또한 macports는 몇 년 동안 나에게 잘 작동했습니다.
Mike Makuch

답변:


145

MacPorts가 갈 길입니다.

  1. @ user475443이 지적한 것처럼 MacPorts에는 더 많은 패키지가 있습니다. 추출을 사용 하면 필요한 수식이 없기 때문에 곧 갇히게 됩니다.

  2. MacPorts는 C + TCL과 같은 기본 응용 프로그램입니다. 루비가 전혀 필요하지 않습니다. Mac OS X에 Ruby를 설치하려면 MacPort 필요할 있으므로 MacPorts와 함께라면 행복 할 것입니다.

  3. MacPorts는 8 년 만에 전혀 문제가 없었으며, 전체 Unix 생태계가 릴레이되었습니다.

  4. PHP 개발자 인 경우 최신 버전의 Apache (Mac OS X에서 2.2 사용), PHP 및 필요한 모든 확장을 설치 한 다음 하나의 명령으로 모두 업그레이드 할 수 있습니다. Homebrew와 동일한 작업을 잊어 버리십시오.

  5. MacPorts는 그룹을 지원합니다.

    foo@macpro:~/ port select --summary
    
    Name        Selected      Options
    ====        ========      =======
    db          none          db46 none
    gcc         none          gcc42 llvm-gcc42 mp-gcc48 none
    llvm        none          mp-llvm-3.3 none
    mysql       mysql56       mysql56 none
    php         php55         php55 php56 none
    postgresql  postgresql94  postgresql93 postgresql94 none
    python      none          python24 python25-apple python26-apple python27 python27-apple none
    

    PHP55와 PHP56이 모두 다른 확장명으로 설치되어 있다면, 하나의 명령으로 서로 전환 할 수 있습니다. 모든 상대 확장명은 그룹의 일부이며 선택한 그룹 내에서 활성화됩니다 : php55 또는 php56. Homebrew에이 기능이 있는지 확실하지 않습니다.

  6. 루비 스트는 루비 자체를 편하게 쓸 수 있기 때문에 루비의 모든 것을 다시 쓰는 것을 좋아합니다.


26
루비 스트는 재 작성을 좋아한다. 그는 JS에서 MySQL 용 바이너리 프로토콜을 구현하는 NodeJS 사람들을 살펴 보았다. :)
kolypto

37
Ruby를 설치하기 위해 MacPort가 필요하지 않습니다 — Ruby는 OS X에 포함되어 있으며 brew는 시스템 Ruby를 사용합니다.
Michael Ekstrand

5
@Michael Ekstrand OS X에는 최신 버전의 Ruby가 포함되어 있지 않습니다.
명사

89
이것을 공표 할 수 없습니다. 너무 으스스하고, 멍청함은 정보를 훼손합니다.
OldPeculier

34
생략 된 "스 나이키 (anti-snarky)"공감에 반대하는 공감. 인간으로부터받은 모든 정보는 항상 자연스러운 편견을 갖습니다 (이 경우 "고해"). 이 사용자의 관점에 감사드립니다. 특히 답변이 위키 백과 항목처럼 읽히지 않기 때문일 수 있습니다.
rinogo

109

Homebrew와 macport는 같은 문제를 해결합니다. 즉 osx와 함께 제공되지 않는 공통 라이브러리 및 유틸리티를 설치하는 것입니다.

일반적으로 이들은 개발 관련 라이브러리이며 이러한 도구의 가장 일반적인 용도는 osx 작업을하는 개발자를위한 것입니다.

둘 다 xcode 명령 줄 도구가 설치되어 있어야하며 ( https://developer.apple.com/ 에서 별도로 다운로드 할 수 있음 ) 특정 패키지의 경우 전체 xcode IDE가 설치되어 있어야합니다.

xcode는 Mac 앱 스토어에서 무료로 다운로드 할 수 있지만 약 5GB (정확히 기억한다면)부터 시간이 걸립니다.

macports는 BSD에서 제공하는 포트 유틸리티의 osx 버전입니다 (osx는 BSD에서 파생되었으므로 당연한 선택이었습니다). BSD 배포판에 익숙한 사람이라면 macports는 집에있는 것처럼 느낄 것입니다.

홈브류와 맥 포트 사이의 주요 차이점 제가 홈브류를 선호하는 이유는 osx에 "기본적으로"설치해야하는 것들을 덮어 쓰지 않기 때문입니다. 즉, 기본 패키지를 사용할 수있는 경우 homebrew는 덮어 쓰지 않고 추가로 문제를 일으키는 대신 사용자에게 알립니다. 또한 사용자 공간에 라이브러리를 설치합니다 (따라서 "sudo"를 사용할 필요가 없습니다). 모든 것이 접근 가능한 경로에 있기 때문에 라이브러리를 제거 할 때도 도움이됩니다.

homebrew는 또한보다 활동적인 사용자 커뮤니티를 즐기며 패키지 (공식이라고 함)가 자주 업데이트됩니다.


macports는 고유 OSX 패키지를 덮어 쓰지 않습니다. 자체 버전을 제공합니다. 이것이 내가 직접 만든 것보다 macports를 선호하는 주된 이유입니다. 사용중인 포트와 다른 시간에 Apple의 포트 변경을 알고 알아야합니다. 일부 프로젝트에서 몇 년 뒤 업데이트

macports가 기본 OS X 패키지를 덮어 쓴다는 것을 보여주는 참조를 할 수 있습니까? 내가 알 수있는 한, 모든 macports 설치는 /opt/local

아마도 분명히해야합니다. macports가 OSX 기본 패키지를 덮어 쓰는 대답은 어디에도 말하지 않았습니다. 둘 다 항목을 별도로 설치합니다.

호환성을 높이기 위해 라이브러리 / 도구의 기본 설치 프로그램을 사용하여 "기본"으로 설치해야하는 경우 Homebrew에서 경고합니다. 이것이 내가 의미 한 바입니다. 또한 OS X에서 사용 가능한 많은 로컬 라이브러리를 사용합니다. 위키에서 :

우리는 Homebrew / homebrew에서 듀피를 좋아하지 않습니다.

그러나 우리는 수도꼭지에서 속임수를 좋아합니다!

OS X과 함께 제공되거나 RubyGems, CPAN 또는 PyPi에서 제공하는 라이브러리 인 항목은 중복되지 않아야합니다. 이에 대한 충분한 이유가 있습니다.

  • 중복 라이브러리는 정기적으로 빌드를 중단합니다
  • 미묘한 버그는 중복 라이브러리와 그보다 적은 범위에서 중복 도구로 나타납니다.
  • OS X에서 제공하는 방식으로 공식을 사용하기 위해 더 열심히 노력하기를 바랍니다.

선택적 으로 homebrew로 macosx 제공 유틸리티 버전을 덮어 쓸 수 있습니다 .


78
macports는 고유의 OSX 패키지를 덮어 쓰지 않습니다. 자체 버전을 제공합니다. 이것은 가정용 맥주보다 macports를 선호하는 주요 이유입니다. 사용중인 포트와 Apple의 다른 시간에 포트를 변경하고 알고 있어야합니다. 일부 프로젝트에서 업데이트 뒤에 ye3srs가 될
mmmmmm

13
macports가 기본 OS X 패키지를 덮어 쓴다는 것을 보여주는 참조를 할 수 있습니까? 내가 알 수있는 한, 모든 /opt/local

27
최소한 MacPorts가 기본 OS X 패키지를 덮어 쓴다는 것을 의미합니다. 당신이 쓴 것을 썼다고 주장하면서 "명확하게"하는 대신에, 당신은 아마도 해당 문장을 편집해야 할 것입니다.
편안한

13
이 문장은 "homebrew와 macports의 주요 차이점 중 하나입니다. 제가 homebrew를 선호하는 이유는 osx에"기본적으로 "설치해야하는 것들을 덮어 쓰지 않기 때문입니다." "homebrew와 macports의 주요 차이점 중 하나는 homebrew가 Apple에서 이미 제공 한 도구와 라이브러리의 병렬 사본을 자동으로 설치하지 않기 때문입니다."
bgupta

7
MacPorts는 기본 응용 프로그램을 덮어 쓰지 않습니다. "포팅 된 소프트웨어를 개인"샌드 박스 "로 제한하여 운영 체제 및 공급 업체에서 제공 한 소프트웨어와 통합되어 손상되지 않도록합니다."
-MacPorts

23

현재 Macports는 성숙으로 인해 Homebrew 공식 (~ 3.1K)보다 많은 패키지 (~ 18.6K)를 보유하고 있습니다. 홈브류는 천천히 따라 잡고있다.

Macport 패키지는 한 사람이 유지하는 경향이 있습니다.

Macports는 여러 버전의 패키지를 유지할 수 있으며, 패키지를 활성화 또는 비활성화하여 테스트 할 수 있습니다. 때때로이 목록은 손상 될 수 있으며 너무 어렵지는 않지만 수동으로 다시 편집해야합니다.

두 패키지 관리자 모두 정기적으로 업데이트하도록 요청합니다. 시간이 좀 걸릴 수 있습니다.

참고 : 시스템에 두 패키지 관리자를 둘 수 있습니다! 둘 중 하나가 아닙니다. 브루는 불평하지만 맥 포트는 그렇지 않습니다.

또한 파이썬 또는 루비 패키지를 다루는 경우 가능한 한 가상 환경을 사용하십시오.


1
{{{때로는이 목록이 손상 될 수 있으므로 너무 어렵지는 않지만 수동으로 수정하여 다시 정렬해야합니다. }}} 이것이 불가능하다는 말은 아니지만이 일이 발생하는 것을 본 적이 없습니다. 상황은 어땠습니까? 버그를 신고 했습니까 ( trac.macports.org )?
LSpice 2018 년

{{{두 패키지 관리자 모두 정기적으로 업데이트하도록 요청합니다. 시간이 좀 걸릴 수 있습니다. }}} 이것은 이상한 진술처럼 보입니다. 몇 년 동안 사용하면 MacPorts 자체를 몇 번만 업그레이드 한 것을 기억하며 업데이트가 다소 빠릅니다. 포트 자체를 자주 업데이트해야합니까? 글쎄, 그들은 수 있지만 단점은 아니지만 좋은 것입니다. 또한,이 MacPorts를이되지 않습니다 지적 아마 가치가 물어 아무것도 - 즉을 할, 아니 잔소리가 없습니다; 오래된 패키지에 대해 문의 해야 합니다.
LSpice 2018 년

18

기본적으로 Homebrew는 / usr / local에 패키지를 설치합니다. Macport 명령은 설치 및 업그레이드를 위해 sudo가 필요합니다 (Ubuntu의 apt-get과 유사).

자세한 내용은 :

이 사이트는 Hombrew 사용을 제안합니다 : http://deephill.com/macports-vs-homebrew/

이 사이트는 Macports 사용의 장점을 나열합니다 : http://arstechnica.com/civis/viewtopic.php?f=19&t=1207907

나는 또한 최근 우분투에서 전환했고, homebrew를 사용하는 것을 좋아하지만 (간단하고 사용하기 쉽습니다!) sudo 사용에 익숙하다면 Macports가 더 좋은 방법 일 것입니다!


4
Homebrew /usr/local가 sudo를 요구하지 않고 물건을 설치한다고 말하고 있습니까?

1
@NgocPham 당신은 그것에 대한 참조가 있습니까?

16
@Keith 해당 사이트가 잘못되었습니다. 또는 적어도 주요 전제를 생략하고 있습니다. "Apple은이 디렉토리를 남겨두고 있습니다. 기본적으로 / usr / local 디렉토리가 없기 때문에 기존 도구를 망칠 염려가 없습니다." 애플은 /usr/local홈브류로 떠나지 않았다 . Apple은 /usr/local"기본 운영 체제에 포함되지 않은 실행 파일, 라이브러리 등"으로 남겨 두었 습니다. 이는 Homebrew를 사용하기 전에 설치된 도구가을 (를) 사용 /usr/local하지 않고 수정할 수 없도록 생성 했을 수 있음을 의미 sudo합니다. 그들은 위키에서 그것을 논의하지 않습니다.

2
@NgocPham 내 요점은 Homebrew가 /usr/local루트 권한없이 사용할 수 있다고 생각하지 않는다는 것 입니다. /usr새로 운 OS X 설치에 대한 기본 권한 은 루트 소유자이며 다른 사람에게는 쓰기 권한이 없습니다. 를 만들려면 /usr/local Homebrew에 루트 액세스 권한이 필요합니다. (아무것도 방어하지 않습니다)

5
@Articuno 나는 지금 당신을 얻었다 고 생각합니다. 그것은 단지 문입니다 homebrew없이 물건을 설치할 수 있습니다 sudo그 자체를 설정할 때,이 때문에 사용 sudo 이 아무것도 내부를 수행 할 수 있도록 디렉토리 패자의 사용 권한을 만들기 위해 /usr/local암호를 트리거하지 않고. "암호없이 설치"부분이 잘못되었음을 의미합니까? 나는 그렇게 생각하지 않습니다! 그것은 그 여전히 사실 homebrew 암호없이 물건을 얻을 수.
Ngoc Pham
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.