У чому відмінність / використання домашнього пива, макпорта чи інших інструментів встановлення пакунків? [зачинено]


238

Я нещодавно перейшов на Mac від Ubuntu. Я був розчарований, що mac не має зручного sudo apt-getв Ubuntu. Я чув, що я повинен користуватися домашньою мовою, але я не зовсім впевнений, що робить доморошня чи макспорт?


4
багато що пов’язано: apple.stackexchange.com/questions/32724/…
cregox

8
Кілька років тому на вхідних дверях доморощеного було повідомлення про те, що "щось подібне додому, бо це написано на Ruby". Я не маю нічого проти Рубі, що тебе заперечує. Мені подобається oop і ruby ​​- чудова мова. У мене є проблема з будь-яким розробником програмного забезпечення, який вважає, що одна мова краща за всі інші. Тільки з цієї причини я не маю інтересу до домашньої мови. Крім того, макпорти працювали для мене чудово вже багато років.
Майк Макуч

Відповіді:


145

MacPorts - це шлях.

  1. Як і @ user475443 вказував, MacPorts має ще багато інших пакетів. З квасом незабаром ви потрапите в пастку, оскільки потрібна формула не існує.

  2. MacPorts - це власна програма: C + TCL. Вам взагалі не потрібна Рубі. Щоб встановити Ruby на Mac OS X, вам може знадобитися MacPorts, тому просто зайдіть з 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. Я не впевнений, що домашня мова має цю особливість.

  6. Рубісти люблять переписувати все в Ruby, тому що єдине, що їм зручно, - це сама Ruby.


26
Рубісти люблять переписувати - хе-хе, подивіться на хлопців NodeJS, що реалізують бінарні протоколи для MySQL в JS! :)
kolypto

37
Для встановлення Ruby вам не потрібні MacPorts - Ruby входить до ОС X, а Brew використовує систему Ruby.
Майкл Екстранд

5
@Michael Ekstrand OS X не включає останню версію Ruby.
іменник

89
Неможливо підтвердити це. Це занадто химерно, і спритність підриває інформацію.
OldPeculier

34
Запрошення протидіяти пропущеним "антизламним" відгукам. Будь-яка інформація, отримана від людини, завжди матиме природний ухил ("хитрість" у даному випадку). Я ціную точку зору цього користувача, можливо конкретно, тому що відповідь не читається як запис у Вікіпедії.
rinogo

109

Homebrew та macports вирішують одну і ту ж проблему - це встановлення загальних бібліотек та утиліт, які не входять в комплект із OSX.

Зазвичай це бібліотеки, що стосуються розробок, і найчастіше ці інструменти використовуються для розробників, що працюють на OSX.

Їм обом потрібні встановлені інструменти командного рядка xcode (які ви можете завантажити окремо з https://developer.apple.com/ ), а для деяких конкретних пакетів вам знадобиться весь встановлений IDE xcode.

xcode можна встановити з магазину додатків Mac, його безкоштовно завантажити, але це займає певний час, оскільки його близько 5 Гб (якщо я правильно пам'ятаю).

macports - це версія OSX для порту утиліти від BSD (оскільки osx походить від BSD, це був природний вибір). Для всіх, хто знайомий з будь-яким дистрибутивом BSD, макпорти будуть почувати себе як вдома.

Одна з основних різниць між домашньою мовою та макпортами; і я вважаю, що я віддаю перевагу домашній мові - це те, що він не буде перезаписати речі, які повинні бути встановлені "вродженими" в ОСX Це означає, що якщо доступний нативний пакет, homebrew сповістить вас замість того, щоб його перезаписати і спричинить проблеми внизу лінії. Він також встановлює бібліотеки в просторі користувача (таким чином, вам не потрібно використовувати "sudo" для установки речей). Це допомагає і при позбавленні від бібліотек, оскільки все знаходиться на доступному вам шляху.

homebrew також користується більш активною спільнотою користувачів, і його пакети (так звані формули) оновлюються досить часто.


macports не перезаписує вбудовані пакети OSX - він постачає свою власну версію. Це головна причина, що я віддаю перевагу макпортам над домашнім варивом, ви повинні бути впевнені в тому, що ви використовуєте, і Apple змінити в різні часи до портів, і було відомо бути роками поза оновленнями в деяких проектах

Чи можете ви дати довідку, що показує, що макпорти замінюють натільні пакети ОС X? Наскільки я можу сказати, все встановлення макпортів відбувається в /opt/local

Можливо, варто уточнити - я ніде не сказав у своїй відповіді, що макпорти перезаписують рідні пакети OSX. Вони обидва встановлюють елементи окремо.

Homebrew попередить вас, коли вам слід інсталювати речі "споконвічно" (використовуючи бажану програму встановлення бібліотеки / інструмента) для кращої сумісності. Це я мав на увазі. Він також використовуватиме стільки ж локальних бібліотек, які доступні в OS X. З вікі :

Нам дійсно не подобаються дупи в Homebrew / homebrew

Однак ми любимо дупи в крані!

Речі, що поставляються з OS X або бібліотекою, яку надають RubyGems, CPAN або PyPi, не повинні бути одушевлені. Для цього є вагомі причини:

  • Дублікати бібліотек регулярно розбивають збірки
  • Тонкі помилки виникають із копіями бібліотек та меншою мірою дублюючими інструментами
  • Ми хочемо, щоб ви постаралися більше, щоб ваша формула працювала з тим, з чим поставляється OS X

Ви можете додатково замінити версії утилітів, що надаються в macosx, з домашньою мовою.


78
macports не перезаписує вбудовані пакети OSX - він постачає свою власну версію. Це основний расон, який я віддаю перевагу макпортам над домашнім варивом, ви повинні бути впевнені в тому, що ви використовуєте, і Apple змінилася в різні часи до портів, і було відомо бути ye3srs за оновленнями в деяких проектах
мммммм,

13
Чи можете ви дати довідку, що показує, що макпорти замінюють натільні пакети ОС X? Наскільки я можу сказати, все встановлення /opt/local

27
Ви принаймні дуже чітко випливали з того, що MacPorts перезаписує власні пакети ОС X. Замість того, щоб "уточнювати", роблячи вигляд, що ви не сказали, що написали те, що написали, ви, мабуть, відредагуйте відповідне речення.
Розслаблено

13
Це речення, "Одне головне відмінність між домашнім мовою та макпортами; і тому, чому я віддаю перевагу домашній мові, - це те, що він не буде перезаписати речі, які повинні бути встановлені" вродженими "в OSX". його слід змінити на "Одна головна різниця між homebrew та macports; і тому, чому я віддаю перевагу homebrew, це те, що homebrew автоматично не встановлюватиме паралельні копії інструментів і бібліотек, які вже надаються Apple".
bgupta

7
MacPorts не перезаписує вбудовані програми, він "Конфігурує перенесене програмне забезпечення на приватну" пісочницю ", яка не дозволяє йому переплутатися з вашою операційною системою та програмним забезпеченням, що постачається постачальником, щоб запобігти їх пошкодженню". - Керівництво MacPorts, глава 1
jla

23

В даний час у Macports є набагато більше пакетів (~ 18,6 К), ніж у формул Homebrew (~ 3,1 К), завдяки його зрілості. Хоча домашня мова повільно наздоганяє.

Пакети Macport, як правило, підтримується однією людиною.

Макпорти можуть тримати декілька версій пакетів, а ви можете ввімкнути або вимкнути їх для перевірки речей. Іноді цей список може бути пошкоджений, і вам доведеться його вручну редагувати, щоб повернути речі в порядок, хоча це не надто складно.

Обидва менеджери пакунків просять регулярно оновлюватись. Це може зайняти деякий час.

Примітка: у вашій системі ви можете мати обох менеджерів пакетів! Це не те чи інше. Brew може скаржитися, але Macports не буде.

Крім того, якщо ви маєте справу з пакетами python або ruby, використовуйте віртуальне середовище, де це можливо.


1
{{{Іноді цей список може бути пошкоджений, і вам доведеться вручну редагувати його, щоб повернути речі в порядок, хоча це не надто складно. }}} Я ніколи не бачив, щоб це сталося, хоча це не означає, що це неможливо. Які обставини були? Ви подали помилку ( trac.macports.org )?
LSpice

{{{Обидва менеджери пакунків просять регулярно оновлюватись. Це може зайняти деякий час. }}} Це здається дивним твердженням. За кілька років використання я пам'ятаю лише оновлення MacPorts декілька разів, і оновлення досить швидке. Ви маєте на увазі, що самі порти доводиться часто оновлювати? Ну, вони можуть бути, але це гарна річ, а не недолік, я думаю! Крім того, напевно, варто відзначити, що MacPorts не буде просити нічого робити - тобто немає нуд; Ви повинні запитати його про застарілі пакети.
LSpice

18

За замовчуванням Homebrew встановлює пакети до вашого / usr / local. Для встановлення та оновлення команд Macport потрібен sudo (подібно до apt-get в Ubuntu).

Детальніше:

Цей сайт пропонує використовувати Hombrew: http://deephill.com/macports-vs-homebrew/

враховуючи, що на цьому веб-сайті перераховані переваги використання Macports: http://arstechnica.com/civis/viewtopic.php?f=19&t=1207907

Нещодавно я також перейшов з Ubuntu, і мені подобається користуватися домашньою мовою (це просто і просто у використанні!), Але якщо ви відчуваєте прихильність до використання судо, Macports може бути кращим способом!


4
Ви хочете сказати, що домашня мова встановлює речі, /usr/localне вимагаючи судо?

1
@NgocPham У вас є посилання на це?

16
@Keith Цей сайт невірний. Або, принаймні, це залишає основні умови. У ньому йдеться "Apple залишила цей каталог для нас. Це означає, що за замовчуванням немає / usr / local каталога, тому не потрібно турбуватися про те, щоб зіпсувати існуючі інструменти". Apple не поїхала /usr/localдо Homebrew. Apple залишила /usr/local"виконавчі файли, бібліотеки тощо, не включені в основну операційну систему". Це означає, що можливо, інструменти, встановлені до використання Homebrew, можливо, створили /usr/localтакі, що без них неможливо змінити sudo. Вони не обговорюють цього на вікі.

2
@NgocPham Моя думка полягає в тому, що я не вірю, що Homebrew може використовуватись /usr/localбез кореневих дозволів. Дозвіл за замовчуванням для /usrнової інсталяції OS X є власником root, без дозволу на запис для інших. Для того, щоб навіть створити /usr/local , Homebrew знадобиться кореневий доступ. (Я нічого не намагаюся захищати)

5
@Articuno Я думаю, я тебе зараз отримав. Це просто те твердження, яке homebrewможе встановлювати речі без того, sudoщо коли він налаштовується, він використовував sudo дозвіл на те, що каталог втрачається, щоб він міг робити все, що завгодно, /usr/localне запускаючи пароль. Це означає, що частина "встановити без пароля" невірна? Я не думаю, що так! Це по - , як і раніше вірно , що homebrew буде мати можливість отримати матеріал без пароля.
Нгок Фам
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.