Sono appena passato a un Mac da Ubuntu. Sono rimasto deluso dal fatto che Mac non abbia il conveniente sudo apt-get
in Ubuntu. Ho sentito che dovrei usare l'homebrew ma non sono esattamente sicuro di cosa faccia homebrew o macports?
Sono appena passato a un Mac da Ubuntu. Sono rimasto deluso dal fatto che Mac non abbia il conveniente sudo apt-get
in Ubuntu. Ho sentito che dovrei usare l'homebrew ma non sono esattamente sicuro di cosa faccia homebrew o macports?
Risposte:
MacPorts è la strada da percorrere.
Come indicato da @ user475443, MacPorts ha molti altri pacchetti. Con brew ti troverai presto intrappolato perché la formula di cui hai bisogno non esiste.
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.
I MacPorts sono davvero stabili, in 8 anni non ho mai avuto problemi con esso e il mio intero ecosistema Unix ci ha riferito.
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.
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.
Ai rubisti piace riscrivere tutto in Ruby, perché l'unica cosa a loro agio è Ruby stesso.
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.
/opt/local
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.
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!
/usr/local
per 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/local
tale da non poter essere modificati senza sudo
. Non ne discutono nel wiki.
/usr/local
senza i permessi di root. Le autorizzazioni predefinite per /usr
una 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)
homebrew
può installare roba senza sudo
perché quando si è configurata, ha usato sudo
per rendere più permissiva l'autorizzazione alla directory in modo da poter fare qualsiasi cosa all'interno /usr/local
senza 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.