Qual è la differenza / utilizzo di homebrew, macports o altri strumenti di installazione di pacchetti? [chiuso]


239

Sono appena passato a un Mac da Ubuntu. Sono rimasto deluso dal fatto che Mac non abbia il conveniente sudo apt-getin Ubuntu. Ho sentito che dovrei usare l'homebrew ma non sono esattamente sicuro di cosa faccia homebrew o macports?



8
Qualche anno fa la porta d'ingresso dell'homebrew aveva una dichiarazione che diceva qualcosa del tipo "l'homebrew è meglio perché è scritto in Ruby". Non ho niente contro Ruby, badate, per niente. Mi piace oop e ruby ​​è un bel linguaggio di oop. Ciò con cui ho un problema è qualsiasi sviluppatore di software che pensa che una lingua sia migliore di tutte le altre. Solo per questo motivo non ho alcun interesse per l'homebrew. Inoltre, macports ha funzionato bene per me per molti anni.
Mike Makuch,

Risposte:


146

MacPorts è la strada da percorrere.

  1. Come indicato da @ user475443, MacPorts ha molti altri pacchetti. Con brew ti troverai presto intrappolato perché la formula di cui hai bisogno non esiste.

  2. MacPorts è un'applicazione nativa: C + TCL. Non hai bisogno di Ruby. Per installare Ruby su Mac OS X potresti aver bisogno di MacPorts, quindi vai con MacPorts e sarai felice.

  3. I MacPorts sono davvero stabili, in 8 anni non ho mai avuto problemi con esso e il mio intero ecosistema Unix ci ha riferito.

  4. Se sei uno sviluppatore di PHP puoi installare l'ultima versione di Apache (Mac OS X utilizza 2.2), PHP e tutte le estensioni necessarie, quindi aggiornare tutto con un solo comando. Dimentica di fare lo stesso con Homebrew.

  5. Gruppi di supporto 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
    

    Se hai installato sia PHP55 che PHP56 (con molte estensioni diverse), puoi scambiarli con un solo comando. Tutte le estensioni relative fanno parte del gruppo e verranno attivate all'interno del gruppo scelto: php55 o php56. Non sono sicuro che Homebrew abbia questa funzione.

  6. Ai rubisti piace riscrivere tutto in Ruby, perché l'unica cosa a loro agio è Ruby stesso.


26
Ai rubisti piace riscrivere - hehe, dai un'occhiata ai ragazzi di NodeJS che implementano protocolli binari per MySQL in JS! :)
kolypto,

37
Non è necessario MacPorts per installare Ruby: Ruby è incluso con OS X e brew utilizza il sistema Ruby.
Michael Ekstrand,

5
@Michael Ekstrand OS X non include l'ultima versione di Ruby.
sostantivo

89
Non posso votare questo. È troppo snarky e la snarkiness mina le informazioni.
OldPeculier,

34
Upgrade per contrastare i voti omessi "anti-snarky". Qualsiasi informazione ricevuta da un essere umano avrà sempre una propensione naturale ("snarkiness" in questo caso). Apprezzo la prospettiva di questo utente, forse in particolare perché la risposta non legge come una voce di Wikipedia.
Rinogo,

109

Homebrew e macport risolvono entrambi lo stesso problema, ovvero l'installazione di librerie e utilità comuni non in bundle con osx.

In genere si tratta di librerie relative allo sviluppo e l'uso più comune di questi strumenti è per gli sviluppatori che lavorano su osx.

Entrambi hanno bisogno degli strumenti della riga di comando xcode installati (che è possibile scaricare separatamente da https://developer.apple.com/ ) e per alcuni pacchetti specifici è necessario che sia installato l'intero IDE xcode.

xcode può essere installato dal Mac App Store, è un download gratuito ma ci vuole un po 'di tempo da circa 5 GB (se ricordo bene).

macports è una versione osx dell'utilità della porta da BSD (poiché osx è derivato da BSD, questa è stata una scelta naturale). Per chiunque abbia familiarità con una qualsiasi delle distribuzioni BSD, i macport si sentiranno come a casa.

Una grande differenza tra homebrew e macports; e la ragione per cui preferisco l'homebrew è che non sovrascriverà cose che dovrebbero essere installate "nativamente" in osx. Ciò significa che se è disponibile un pacchetto nativo, homebrew ti avviserà invece di sovrascriverlo e causare ulteriori problemi. Installa anche le librerie nello spazio utente (quindi, non è necessario utilizzare "sudo" per installare le cose). Questo aiuta anche a sbarazzarsi delle biblioteche poiché tutto è in un percorso accessibile a te.

homebrew gode anche di una comunità di utenti più attiva e i suoi pacchetti (chiamati formule) vengono aggiornati abbastanza spesso.


macports non sovrascrive i pacchetti OSX nativi - fornisce la propria versione - Questo è il motivo principale per cui preferisco i macports rispetto alla birra fatta in casa, devi essere sicuro di ciò che stai usando e delle modifiche di Apple in diversi momenti alle porte e lo sai essere anni indietro rispetto agli aggiornamenti in alcuni progetti

Puoi fornire un riferimento che mostra che macports sovrascrive i pacchetti OS X nativi? Per quanto ne so, avviene l'installazione di tutti i macports /opt/local

Forse dovrei chiarire - non ho detto da nessuna parte nella mia risposta che macports sovrascrive i pacchetti nativi OSX. Entrambi installano gli articoli separatamente.

Homebrew ti avvertirà quando dovresti installare le cose "nativamente" (usando il programma di installazione preferito della libreria / strumento) per una migliore compatibilità. Questo è ciò che intendevo. Utilizzerà anche tutte le librerie locali disponibili in OS X. Dal wiki :

Non ci piacciono davvero i duplicati in Homebrew / homebrew

Tuttavia, ci piacciono i duplicati nel rubinetto!

Il materiale fornito con OS X o una libreria fornita da RubyGems, CPAN o PyPi non deve essere copiato. Ci sono buone ragioni per questo:

  • Le librerie duplicate interrompono regolarmente le build
  • Bug sottili emergono con librerie duplicate e, in misura minore, strumenti duplicati
  • Vogliamo che ti impegni di più per far funzionare la tua formula con ciò che viene fornito con OS X.

Puoi facoltativamente sovrascrivere le versioni di utility fornite da macosx con homebrew.


78
macports non sovrascrive i pacchetti OSX nativi - fornisce la propria versione - Questo è il rason principale che preferisco i macports rispetto alla birra fatta in casa, devi essere sicuro di ciò che stai usando e delle modifiche di Apple in diversi momenti alle porte e lo sai essere ye3srs dietro gli aggiornamenti in alcuni progetti
mmmmmm,

13
Puoi fornire un riferimento che mostra che macports sovrascrive i pacchetti OS X nativi? Per quanto ne so, l'installazione di tutti i macports avviene in/opt/local

27
Almeno hai implicato molto fortemente che MacPorts sovrascrive i pacchetti OS X nativi. Invece di "chiarire" mentre fingi ancora di non aver scritto ciò che hai scritto, dovresti probabilmente modificare la frase in questione.
Rilassato il

13
Questa frase, "Una delle principali differenze tra homebrew e macports; e la ragione per cui preferisco homebrew è che non sovrascriverà cose che dovrebbero essere installate" in modo nativo "in osx." dovrebbe essere modificato in "Una delle principali differenze tra homebrew e macport; e il motivo per cui preferisco homebrew è che homebrew non installerà automaticamente copie parallele di strumenti e librerie che sono già fornite da Apple."
bgupta,

7
MacPorts non sovrascrive le app native, "Confina il software trasferito in un" sandbox "privato che gli impedisce di mescolarsi con il sistema operativo e il software fornito dal fornitore per impedire che si danneggino." - Guida
MacPorts

23

Attualmente, Macports ha molti più pacchetti (~ 18.6 K) rispetto alle formule Homebrew (~ 3.1K), a causa della sua maturità. L'homebrew sta lentamente recuperando terreno.

I pacchetti Macport tendono ad essere gestiti da una sola persona.

I Macport possono mantenere più versioni dei pacchetti e puoi abilitarli o disabilitarli per testare le cose. A volte questo elenco può essere danneggiato e devi modificarlo manualmente per rimettere le cose in ordine, anche se questo non è troppo difficile.

Entrambi i gestori dei pacchetti chiederanno di essere regolarmente aggiornati. Questo può richiedere del tempo.

Nota: è possibile avere entrambi i gestori di pacchetti sul proprio sistema! Non è l'uno o l'altro. Brew potrebbe lamentarsi, ma Macports no.

Inoltre, se hai a che fare con pacchetti python o ruby, usa un ambiente virtuale ove possibile.


1
{{{A volte questo elenco può essere danneggiato e devi modificarlo manualmente per rimettere le cose in ordine, anche se questo non è troppo difficile. }}} Non l'ho mai visto accadere, anche se ciò non significa che non sia possibile. Quali sono state le circostanze? Hai segnalato un bug ( trac.macports.org )?
LSpice,

{{{Entrambi i gestori di pacchetti chiederanno di essere regolarmente aggiornati. Questo può richiedere del tempo. }}} Sembra una strana affermazione. In diversi anni di utilizzo, ricordo di aver aggiornato MacPorts stesso alcune volte e l'aggiornamento è piuttosto rapido. Vuoi dire che le porte stesse devono essere aggiornate frequentemente? Bene, possono esserlo, ma questa è una buona cosa, non uno svantaggio, credo! Inoltre, probabilmente vale la pena notare che i MacPorts non chiederanno di fare nulla, cioè non c'è fastidio; dovete chiedere che su out-of-date pacchetti.
LSpice,

18

Per impostazione predefinita, Homebrew installa i pacchetti su / usr / local. I comandi di Macport richiedono l'installazione e l'aggiornamento di sudo (simile a apt-get in Ubuntu).

Per maggiori dettagli:

Questo sito suggerisce l'utilizzo di Hombrew: http://deephill.com/macports-vs-homebrew/

mentre questo sito elenca i vantaggi dell'utilizzo di Macports: http://arstechnica.com/civis/viewtopic.php?f=19&t=1207907

Di recente sono passato anche da Ubuntu e mi piace usare l'homebrew (è semplice e facile da usare!), Ma se ti senti legato all'utilizzo di sudo, Macports potrebbe essere il modo migliore per andare!


4
Stai dicendo che homebrew installa le cose /usr/localsenza richiedere sudo?

1
@NgocPham Hai un riferimento per questo?

16
@Keith Quel sito non è corretto. O almeno, sta tralasciando una premessa importante. Dice "Apple ha lasciato questa directory per noi. Ciò significa che non esiste una directory / usr / local per impostazione predefinita, quindi non è necessario preoccuparsi di incasinare gli strumenti esistenti". Apple non è partita /usr/localper Homebrew. Apple ha lasciato /usr/local"eseguibili, librerie, ecc. Non inclusi nel sistema operativo di base". Ciò significa che è possibile che gli strumenti installati prima di utilizzare Homebrew possano essere stati creati in modo /usr/localtale da non poter essere modificati senza sudo. Non ne discutono nel wiki.

2
@NgocPham Il mio punto è che non credo che Homebrew possa usare /usr/localsenza i permessi di root. Le autorizzazioni predefinite per /usruna nuova installazione di OS X sono il proprietario di root, senza autorizzazioni di scrittura per nessun altro. Per persino creare /usr/local , Homebrew avrebbe bisogno dell'accesso root. (Non sto cercando di difendere nulla)

5
@Articuno Penso di averti preso ora. È solo l'affermazione che homebrewpuò installare roba senza sudoperché quando si è configurata, ha usato sudo per rendere più permissiva l'autorizzazione alla directory in modo da poter fare qualsiasi cosa all'interno /usr/localsenza attivare la password. Significa che la parte "installa senza password" è sbagliata? Io non la penso così! È ancora vero che homebrew sarà in grado di ottenere cose senza la password.
Ngoc Pham,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.