Sto solo migrando da Ubuntu Linux a Mac, e tutto è nuovo e sto imparando di nuovo un sacco di cose.
Su Linux avevo leccellente apt-get per gestire i pacchetti software. Ho cercato su Google unalternativa su Mac e ho scoperto MacPorts, Fink e Homebrew.
Userò questo computer principalmente per sviluppare applicazioni Ruby on Rails.
Allora, quali sono le differenze tra loro? Quali sono i lati positivi e negativi? Quale è meglio mantenuto e ha più pacchetti?
Commenti
- Ho modificato il tuo titolo per farlo corrispondere alla tua vera domanda. Nella maggior parte dei siti di Stack Exchange, le domande che chiedono ” i migliori ” sono disapprovate.
- Perché ne hai bisogno di queste ‘ t ruby ‘ gemme saranno sufficienti?
- per ulteriori informazioni sul motivo per cui i duplicati non sono ‘ t sempre male: apple.stackexchange.com/questions/11461/… ci sono anche altre alternative
- Non lho mai usato da solo, ma forse sarebbe utile anche un confronto con pkgin .
Risposta
Sicuramente Homebrew. Ho iniziato con Fink, poi sono passato a MacPorts (più felice), poi a Homebrew (molto, molto più felice). Queste sono le mie ragioni per usarle ciascuna (una lista di professionisti se vuoi):
Fink
- Apt-based – sentiti a casa se vieni da un Debian-based ambiente
- Pacchetti binari – i pacchetti sono disponibili come binari quindi non ci sono lunghi tempi di compilazione. Praticamente però ho scoperto che i binari precompilati erano sempre obsoleti e dovevo comunque compilare roba per il mio sistema
MacPorts
- A differenza di homebrew do non dipendono dalla libreria di MacOS che potrebbe cambiare in futuro.
- Installa tutto in / opt / local
- Nice varianti del sistema che ti consente di personalizzare la build
- File di port facili e intuitivi, ti permette anche di aggiungere i tuoi
- supporta molte versioni di OSX e macos che risalgono a Tiger comprese le versioni di PowerPC vedi altra risposta
Homebrew
- Massimo sfruttamento di ciò che viene fornito con OS X. A differenza Fink o MacPorts, non richiede di costruire / installare ruby e librerie da zero solo per installare qualche piccolo strumento basato su Ruby.
- Installa in
/usr/local
- Installa senza accesso root
- Ogni pacchetto installato è pulito in modo sandbox nella sua cantina, quindi non hai file vaganti in tutto il sistema, solo collegamenti simbolici da bin, man, ecc.
- Ha guide e automazione per creare i tuoi file formula (es. descrittori di pacchetti)
- Scritto in ruby e tutte le formule sono script ruby concisi
- Installazioni più veloci grazie ai binari precompilati
pkgin
- Installazioni più veloci grazie ai binari precompilati
- Tutto installato in / opt / pkg /
- supportato dalla comunità di pkgsrc e Joyent
- Noto per funzionare su NetBSD, DragonFly BSD, Solaris, Debian, Mac OS X, Minix
https://pkgsrc.joyent.com/install-on-osx/
Commenti
- I commenti non sono per discussioni estese; questa conversazione è stata spostata nella chat . Se il blocco deve essere rilasciato, solleva il problema su Chiedi a meta diversa o con un flag.
Risposta
MacPorts
È più indipendente da Mac OS X, questo significa che MacPorts ignorerà semplicemente molte delle librerie di sistema e dei software che già disponibile in Mac OS X e ne tira uno proprio , il che potrebbe essere più lento quando lutilità che installi richiede una serie di grandi librerie e software.
Ma questo tipo di scelta è più sicuro perché i pacchetti installati sono meno influenzati dallaggiornamento / aggiornamento del sistema di Apple
Homebrew
Dipende maggiormente dai pacchetti esistenti di Mac OS X installati, quindi questo velocizzerà linstallazione dei pacchetti e ridurrà al minimo le librerie ridondanti.
Ma il rischio che i pacchetti installati siano danneggiati n a causa dellaggiornamento / aggiornamento del sistema di Apple.
Quindi, questi sono i due diversi tipi di compromesso.
Inoltre, Homebrew prende il sopravvento / usr / local per impostazione predefinita, con il quale ad alcune persone non piace perché in qualche modo è in conflitto con la tradizione unix e potrebbe causare problemi se hai già installato qualcosa lì (MySQL, ecc.)
A parte queste differenze, considerando i pacchetti che questi due possono offrire, puoi controllare con questi due comandi se hai già installato MacPorts / Homebrew, che ti mostrano i pacchetti attualmente forniti:
port list | wc -l brew search | wc -l
E scoprirai che MacPorts ha molti più pacchetti di Homebrew.
(19399 vs 3583 del 13 maggio 2016)
Commenti
- Come osservazione sul diverso numero di pacchetti: Homebrew decisamente non include pacchetti per linguaggi di programmazione che hanno un proprio sistema di pacchettizzazione (rubygems / pip / cpan …) o per il software per il quale è disponibile un programma di installazione OS X probabilmente più appropriato (MacTeX). Inoltre, i duplicati e le versioni precedenti non si trovano nel repository predefinito, ma sono inclusi in repository tap alternativi. Confronta questo con macports, che, ad esempio, contiene una porta IPython per tutte le versioni di Python incluse. È una specie di filosofia diversa che aumenta naturalmente il numero di pacchetti in macports.
- Ottimo collegamento! terrychay.com/article/macports-vs-homebrew.shtml Grazie!
- @YaOz, Sicuramente potresti cambiare homebrew per usare qualcosa altro che
/usr/local
? - @Pacerier Credo che qualsiasi altro posto diverso da
/usr/local/
sia “non supportato” o “scoraggiato” .
Risposta
Solo per aggiungere alcuni dei miei pensieri che sembrano veri almeno verso la fine del 2014 .
Homebrew, fino a un paio di anni fa, ha decisamente il sopravvento in termini di mindshare. Troverai molti blog con persone che parlano di quanto siano più felici con Homebrew – di solito a causa dellintera cosa “MacPorts attira in tutto il mondo” rispetto a “Homebrew fa uso di ciò che hai già”.
Tuttavia, IMO, MacPorts è una bestia diversa ora rispetto a un paio di anni fa. Quando sono passato a OS X & usavo MacPorts la filosofia MP era davvero frustrante perché quasi tutto è stato creato dai sorgenti. Una nuova installazione è stata particolarmente dolorosa / lenta. Tuttavia, nellultimo anno circa, basandosi esclusivamente sulle mie impressioni, sembra che il 90% dei pacchetti MP siano binari & quindi linstallazione è davvero molto veloce adesso. Da quello che ho dedotto anche Homebrew si sta muovendo in questa direzione con “Bottles” ma ho limpressione che la maggior parte delle cose che installi tramite HB in questo momento saranno compilate dai sorgenti.
Quindi, se non altro per offrire unopinione contraria, MacPorts sembra effettivamente essere il “più veloce” o ption in questi giorni. Tuttavia, le opinioni della maggior parte delle persone su MP sembrano essere basate su esperienze del 2011-12 circa, & non ne tengono conto. Prendilo con le pinze anche se non sono un utente abituale di HB (ed è piuttosto doloroso usarli entrambi fianco a fianco).
Penso che HB abbia dei vantaggi che significa che probabilmente vincerà la guerra “a lungo termine però
- HB è tutto Ruby mentre MacPorts e le sue formule di pacchetto sono scritti in TCL che è …. non esattamente un linguaggio di scripting popolare. è dannatamente semplice creare il proprio portfile.
- HB è basato su GitHub & quindi sembra molto più accogliente per i nuovi contributori mentre MacPorts ospita il proprio repository SVN da qualche parte Penso – che sostanzialmente riflette le diverse età di entrambi i progetti, suppongo.
- Come accennato, il consenso generale è che MacPorts è stato sostituito da HB &, giustamente o erroneamente, questo attira più persone verso di esso.
Altrimenti YaOZl & kLy ha coperto abbastanza bene la differenza principale in termini di sudo, dipendenze, ecc. Personalmente IO scopro che MacPorts a volte porta ad alcuni mal di testa in termini di altri programmi che non si aspettano nulla da /opt/local
, cose che vengono installate con i permessi di root ecc. & ci sono alcune cose che generalmente è meglio non installare con MacPorts (es puoi installare Rails tramite MacPorts ma saresti matto a non installarlo tramite la normale gestione Gem di Ruby). A parte questo, anche se sono “un grande fan della filosofia di MacPorts di costruire il suo piccolo mondo & senza fare affidamento su qualche libreria OS X preconfezionata – quando funziona, e per lo più fa, tutto è semplicissimo. Che è quello che vuoi veramente da un gestore di pacchetti. E come ho detto, a questo punto è dannatamente veloce impostare la maggior parte delle cose.
Spero che alcune di queste siano state utili.
Commenti
- ” Come accennato, il consenso generale è che MacPorts è stato sostituito da HB &, a torto oa ragione, che attira più persone verso di esso. ” … sembra unaffermazione molto superficiale …essere popolari e fornire qualità non sono la stessa cosa e non significa affatto che il secondo sia ” sostituito ” dal primo.
- MacPorts ora utilizza Github. Vedi guide.macports.org/#project.github : ” Il progetto MacPorts utilizza il sistema di controllo della versione distribuito Git per gestire il codice per lintero progetto. I nostri repository principali sono ospitati su GitHub. Manteniamo archivi pubblici per quasi tutto il codice e la documentazione del nostro progetto, incluso un repository GitHub per il sistema MacPorts stesso, per i port MacPorts e anche per la guida che stai leggendo in questo momento. ”
Risposta
Qualcosa che altre risposte (finora) non sembrano aver menzionato è che MacPorts ha un eccellente supporto per le versioni legacy di macOS. Homebrew supporta solo i sistemi operativi attualmente supportati da Apple, il che di solito significa le ultime tre versioni. Ad esempio, a partire da agosto 2020, solo Catalina, Mojave e High Sierra sono compatibili con Homebrew.
Al contrario, MacPorts può essere installato su Tiger (!) E il progetto mantiene patch speciali per mantenere il software lavorando ove possibile. Mantengono anche una libreria ” Legacy Support ” che esegue il backport dei simboli dalle nuove versioni di macOS a quelle precedenti; il collegamento a questa libreria durante la compilazione può far funzionare improvvisamente ogni tipo di nuovo software su sistemi più vecchi!
Quindi, se stai utilizzando una vecchia versione di macOS, o se pensi di dover rimanere su un sistema operativo attuale dopo la data di scadenza di Apple, questo è sicuramente un motivo per scegliere MacPorts.
Answer
Brew era completamente liscio per me da usare, quindi non sono in grado di dirti sui suoi svantaggi. Alcuni svantaggi di MacPorts:
- devi installare Xcode dal sito per sviluppatori Apple , quindi devi avere un account sviluppatore Apple (che ora richiede una carta di credito) e scarica quasi 3,5 GB di materiale;
- se la porta 873 (rsync) è bloccata dal firewall, dovrai configurare manualmente il protocollo HTTPS ;
- il server HTTP (S) da cui vengono scaricati i pacchetti è (spesso) estremamente lento (ieri sotto i 20 KiB / s; testato da una coppia Gigabit molto affidabile connessioni in paesi diversi) e potrebbe non riuscire con errore Operazione troppo lenta. Meno di 1024 byte / sec trasferiti negli ultimi 60 secondi , costringendoti a rifare tutto da zero.
Ci sono molte domande molto popolari sui primi due punti.
Commenti
- Questa è stata la mia esperienza linstallazione di ImageMagick sulla 10.6; brew è stato molto semplice, ma ‘ t includere il delegato JP2. imagemagick.org/script/binary-releases.php
- brew e macports richiedono solo strumenti da riga di comando Xcode, quindi lo stesso qui.
- @Mark I ‘ non sono sicuro di cosa intendi, ma la birra ha funzionato perfettamente per me senza Xcode.
- Tu ‘ avrò bisogno di un compilatore per brew e MacPort, che può essere installato tramite Xcode Command Line Tools. Non avrai bisogno dell applicazione Xcode.
- Ho dimenticato quanto sia brutto sincronizzare quella cosa dietro un firewall … accidenti!