MacPorts vs Fink vs. Homebrew [duplicato]

39

Ho sempre usato MacPorts per installare e mantenere i miei compilatori GCC e altri programmi. Ora ho sentito parlare di Fink e Homebrew. Sembra che queste due utility stiano guadagnando terreno nella comunità Mac, ma non capisco la differenza tra loro.

Qual è la principale differenza tra MacPorts, Fink e Homebrew? C'è qualche differenza in termini di qualità o prestazioni?

    
posta 20.09.2012 - 20:41
fonte

4 risposte

30

Fink esiste dal 2001. Fink e MacPorts sono gestori di pacchetti che vogliono essere "ortogonali" al sistema, cioè installano la propria versione di python , perl , librerie, compilatori, ecc. nei propri alberi (/ sw per Fink, / opt / local per MacPorts). La ragione di questo è che non hanno alcun controllo su ciò che Apple fa con il suo software, e occasionalmente ha rotto le cose quando Apple ha aggiornato le proprie cose.

Da quanto ho capito, Homebrew vuole essere più "integrato" con il sistema, usa le librerie fornite da Apple e installa le sue cose in /usr/local/bin e altre cartelle standard. Immagino che questo significhi che la scelta del software sia più limitata con Homebrew, non posso immaginare che si possa installare KDE con esso, ma non l'ho provato.

Un punto per Fink e MacPorts: alcuni anni fa, il progetto Fink forniva pacchetti binari; questo è possibile scaricare e installare i pacchetti senza compilarli da soli. Il suo gestore di pacchetti ha ancora quell'abilità, solo che non ci sono binari disponibili da molto tempo. Non so se nel frattempo sia cambiato.

Quindi, in breve: senza i file binari, Fink e MacPorts sono molto simili. Dovrebbero avere più pacchetti disponibili di Homebrew, mentre Homebrew dovrebbe occupare meno spazio sul disco per i motivi che ho affermato sopra. Per quanto riguarda la qualità: non ho mai installato Homebrew, e tra Fink e MacPorts di solito preferisco quello che non sto usando attualmente.

Quindi, se sei soddisfatto di MacPorts, resta semplicemente con esso.

P.S. Il motivo per cui non ho mai provato Homebrew è che utilizzo alcuni pacchetti precompilati. Questi di solito si installano anche in / usr / local / bin e simili, che piangono solo per i problemi.

    
risposta data 20.09.2012 - 21:12
fonte
7

Direi che le principali differenze sono:
Provvidenza, risultati e metodo di distribuzione.

Il dettaglio più importante sarà per voi per verificare se il sistema che scegliete contiene pacchetti per il software desiderato. I conteggi dei pacchetti sono approssimativi: 19k Macport, 22k Fink, 3k Homebrew, 10k pkgsrc.

  • Macports , in passato le porte Darwin sembravano essere un sistema di porte in stile BSD come pkgsrc che ottiene l'origine, lo aggiusta, lo costruisce e lo installa. Se è molto simile a pkgsrc, lo farà usando gli script di shell. Era solito affidarsi agli strumenti forniti da Xcode, ma questo ha iniziato a causare problemi, quindi ora può anche eseguire il bootstrap di gcc. Inoltre ci sono alcuni pacchetti binari, ma non si può trovare la versione più recente per il proprio sistema ogni volta. Veniva da Darwin, il BSD open source di Apple basato sul kernel OS X che ha cessato la distribuzione. Installa i pacchetti a /opt/local che probabilmente non verrà toccato da altri pacchetti di installazione o aggiornamenti di sistema.
  • Fink , re: fringuello che è oggetto dello studio di Charles Darwin, è un sistema di pacchetti basato su Debian Package Manager, che significa che include l'uso di dpkg e apt-get il vantaggio principale è che si possono trovare in modo affidabile pacchetti binari .. assumendo che si disponga di un repository di pacchetti upstream contenente binari per la versione del sistema operativo corrente. È anche uscito dalla base di utenti di Darwin ma probabilmente è più popolare tra coloro che provengono da Debian Linux [per Mac o PPC] alla ricerca di un supporto hardware un po 'più stabile ... finché è durato. Installa i pacchetti in /sw per ragioni di non sovrascrittura o sovrascrittura di ciò che altri installatori potrebbero installare. Anche qualcosa sui percorsi di ricerca del compilatore e il% co_de predefinito contenente PATH già.
  • Homebrew è una sorta di sistema di porte nel concetto, ma scritto in ruby. Non proviene da un sistema operativo stand-alone ed era destinato agli utenti Mac OS X (gli altri sono ampiamente utilizzati e testati dallo stesso). A partire dalla metà del 2014 cerca di costruire praticamente tutti i pacchetti (li chiamano formula) anche se alcuni sono disponibili in forma binaria chiamati bottiglie, e puoi creare un deposito di bottiglie da condividere nel tuo gruppo sociale se sei incline ai semi standardizzando te e strumenti del tuo amico (idem per altri sistemi). Tra l'altro, si costruisce usando il maggior numero di librerie che probabilmente avete già fornito da Apple. Penso che tu non abbia bisogno di Xcode perché funzioni nella maggior parte dei casi, ma "lo supporta e lo consiglia". Puoi installare ogni elemento nel proprio prefisso, ma il valore predefinito è il /usr/local/bin relativamente integrato. Penso che sia stato kickstarted ed è più recente rispetto agli altri. Personalmente ho scoperto che l'ho usato maggiormente perché raramente ho bisogno di pacchetti interdipendenti, e non sono chiaro su quanto bene sia supportato da mac homebrew. Homebrew punta a forzare l'utilizzo di gestori di pacchetti più appropriati per software che provengono da un gestore strettamente accoppiato, come cpan, gemme e simili.
  • pkgsrc sarebbe disponibile per Mac OS X, ha pacchetti binari e proviene da NetBSD che lo mantiene a sua volta basato sul sistema di porte di FreeBSD . NetBSD era così focalizzato sulla portabilità tra le architetture che probabilmente era il miglior sistema di porta candidato per iniziare a supportare anche altre piattaforme, cosa che ha. È simile nella mia descrizione a Macport, ma non l'ho usato (tranne su NetBSD), e penso che si installa in /usr/local ma crea e mantiene i pacchetti in / . Probabilmente ci sono molti pacchetti (come 12k) e circa il 20% potrebbe non essere compilato, oppure l'ultima versione dell'origine potrebbe non essere aggiornata con l'ultima patch mantenuta. Ecco perché i pacchetti binari sono la mia preferenza per questo tipo di sistemi.

Ho anche usato perlbrew che è un tipo di homebrew per /pkg , applicazioni create in perl e alcune dipendenze. È principalmente un buon modo per mantenere più versioni di perl, e nega convenientemente la necessità di altri sistemi di pacchetti più generali (per il suo scopo). Ma naturalmente ha anche cpan e cpanminus .

Potresti trovare gestori simili per il tuo mini-ambiente (come vundle per vim o gem per ruby, npm per nodo .js, pypm o pip per python, vai built-in perl ... ecc.?

    
risposta data 16.06.2014 - 19:05
fonte
4

Fink e MacPorts sono concorrenti diretti in quanto installano un sistema ortogonale. Fink ha perso terreno considerevole per MacPorts diversi anni fa. Non sono completamente sicuro del perché ora, ma MacPorts ha gestito quasi tutto meglio.

Abbiamo meno motivi per un'installazione ortogonale ora che Mac OS X è diventato meno pazzo. Brew è stato creato per integrarsi meglio con Mac OS X, rendendolo più leggero e meno ortogonale, e anche perché Rubyist riscrive tutto.

In pratica, MacPorts è un po 'più complicato, ma MacPorts funziona quasi sempre, mentre Brew è più semplice ma con maggiori probabilità di imbattersi in un muro di mattoni.

Fai questa domanda:

  • Usi molti strumenti dell'ecosistema Linux?
  • Hai bisogno di più versioni?
  • Sperimenta molto con i nuovi strumenti?
  • Usi strumenti / librerie matematiche / scientifiche o altri strumenti insoliti?

Qualsiasi risposta affermativa suggerisce che dovresti scegliere MacPorts. Brew è meno overhead se si installano pacchetti relativamente pochi e comuni, ma Brew non gestirà anche le complessità. Brew pollutes /usr/local che potresti volere anche per le installazioni manuali. In realtà, ci sono argomenti più dettagliati per MacPorts ma di nuovo probabilmente non si applicano se hai risposto no.

Al contrario, se hai risposto sì ma la tua macchina principale utilizza Linux, e il tuo Mac è solo un giocattolo con un software Linux minimale, in realtà potresti fare meglio con Brew.

    
risposta data 19.10.2014 - 14:23
fonte
2

Ma come nota a margine, nulla di Apple OS X correlato si installerebbe in / usr / local / bin. Usano / usr / lib, / usr / bin dietro le quinte e framework vengono impacchettati in / Library / Frameworks mentre roba che si installa tramite il normale Unix ./configure, make, make install userà / usr / local / bin etc e utility come MacPorts useranno / opt / e possibilmente pacchetti frameworks per il tuo personale ~ / Library / Frameworks /.

La mia raccomandazione è di rimanere con MacPorts se è quello a cui sei abituato. Fondamentalmente la differenza principale è che MacPorts utilizza un sistema che ricorda più da vicino la vera implementazione delle porte Unix / BSD con le porte di FreeBSD, mentre Fink usa le applicazioni portate dagli archivi Debian di Linux, e usa lo stesso sistema di gestione dei pacchetti di Linux Debian.

    
risposta data 22.01.2014 - 23:03
fonte

Leggi altre domande sui tag