MacPorts vs. Fink vs. Homebrew [duplikat]

39

Pertanyaan ini sudah ada jawabannya di sini:

Saya selalu menggunakan MacPorts untuk menginstal dan memelihara kompiler GCC dan program lainnya. Sekarang saya sudah mendengar tentang Fink dan Homebrew. Tampaknya kedua utilitas ini mendapatkan dukungan di komunitas Mac, tapi saya tidak mengerti perbedaan di antara mereka.

Apa perbedaan utama antara MacPorts, Fink, dan Homebrew? Apakah ada perbedaan kualitas atau kinerja?


sumber
3
Ada juga Rudix .
lhf
4
Apakah pertanyaan lama ini memenuhi kebutuhan Anda?
bmike

Jawaban:

30

Fink telah ada setidaknya sejak 2001. Fink dan MacPorts manajer paket yang ingin menjadi "ortogonal" ke sistem, yaitu, mereka menginstal versi mereka sendiri python, perl, pustaka, kompiler, dll di pohon sendiri (/ sw untuk Fink, / opt / local untuk MacPorts). Alasan untuk ini adalah bahwa mereka tidak memiliki kendali atas apa yang Apple lakukan dengan perangkat lunaknya, dan kadang-kadang merusak ketika Apple memperbarui barang-barang mereka sendiri.

Dari apa yang saya mengerti, Homebrew ingin lebih "terintegrasi" dengan sistem, menggunakan perpustakaan yang disediakan Apple, dan menginstal barang-barangnya di /usr/local/bindan folder standar lainnya. Saya kira itu berarti bahwa pilihan perangkat lunak lebih terbatas dengan Homebrew, saya tidak dapat membayangkan bahwa seseorang dapat menginstal KDE dengannya, tetapi saya belum mencobanya.

Satu poin untuk Fink vs MacPorts: beberapa tahun yang lalu, proyek Fink menyediakan paket biner; yaitu Anda dapat mengunduh dan menginstal paket tanpa mengompilasinya sendiri. Pengelola paketnya masih memiliki kemampuan itu, hanya saja tidak ada binari yang tersedia untuk waktu yang lama. Saya tidak tahu apakah itu telah berubah sementara itu.

Jadi singkatnya: tanpa hal-hal biner, Fink dan MacPort sangat mirip. Mereka seharusnya memiliki lebih banyak paket yang tersedia daripada Homebrew, sementara Homebrew harus mengambil lebih sedikit ruang disk karena alasan yang saya nyatakan di atas. Mengenai kualitas: Saya belum pernah menginstal Homebrew, dan antara Fink dan MacPorts saya biasanya lebih suka yang saya tidak gunakan saat ini.

Jadi, jika Anda puas dengan MacPorts, tetap ikuti saja.

PS Alasan saya tidak pernah mencoba Homebrew adalah karena saya menggunakan beberapa paket yang sudah dikompilasi. Ini biasanya juga menginstal sendiri ke / usr / local / bin dan sejenisnya, yang hanya menangis karena masalah.

Ulysses Percival
sumber
Saya pikir Anda pasti salah tentang KDE, tetapi cukup yakin itu benar. Ia pernah memiliki paket untuk itu, tetapi tampaknya ada sesuatu tentang cara KDE dibangun yang tidak sesuai dengan hierarki Homebrew. Semoga itu akan diperbaiki suatu hari nanti.
echristopherson
1
@echristopherson Jadi pernah ada KDE? Kejutan bagi saya. Tetapi KDE tampaknya sangat rapuh, saya pernah menginstalnya dengan Fink, dan pada pembaruan berikutnya, seluruh instalasi menjadi kacau; jadi Anda akan berharap bahwa itu bahkan lebih rapuh dengan Homebrew. Tetapi jika mereka melakukannya dengan benar suatu hari nanti, saya mengambil kembali semua yang saya katakan.
Percival Ulysses
4
Menginstal homebrew di / usr / local adalah alasan yang sama saya tidak menggunakannya. Berpegang teguh pada filosofi unix tradisional, hanya saya yang harus meletakkan barang di / usr / local .. Seorang manajer paket harus mengelola beberapa awalan lainnya.
Jason
Secara pribadi saya menggunakan MacPorts, tetapi terakhir saya memeriksa (yang beberapa waktu lalu) Fink memiliki koleksi paket yang jauh lebih besar.
HairOfTheDog
1
@Jason Apakah ini juga berlaku untuk mesin satu pengguna? Saya baru saja menginstal Homebrew, dan hanya berharap saya tidak akan menyesalinya. Namun saya tidak begitu jelas bagaimana apel menangani root dan pengguna dengan hak admin. Saya adalah satu-satunya pengguna di sistem saya.
Haziz
8

Saya akan mengatakan perbedaan utama adalah:
Providence, hasil, dan metode distribusi.

Detail paling penting bagi Anda untuk memeriksa apakah sistem yang Anda pilih berisi paket untuk perangkat lunak yang Anda inginkan. Jumlah paket kira-kira: 19k Macports, 22k Fink, 3k Homebrew, 10k pkgsrc.

  • Macports , sebelumnya port Darwin tampaknya merupakan sistem port gaya BSD seperti pkgsrc yang mendapatkan sumber, menambalnya, membangunnya, dan memasangnya. Jika sangat mirip pkgsrc, ia akan melakukan ini menggunakan skrip shell. Dulu mengandalkan alat yang disediakan oleh Xcode, tapi itu mulai menyebabkan masalah, jadi sekarang juga bisa bootstrap gcc. Selain itu ada beberapa paket biner di luar sana, tetapi Anda mungkin tidak menemukan versi terbaru untuk sistem Anda setiap saat. Itu datang dari Darwin, Apple open-source BSD berdasarkan OS X kernel yang menghentikan distribusi. Itu menginstal paket /opt/localyang mungkin tidak akan disentuh oleh paket installer lain atau peningkatan sistem.
  • Fink , re: finch yang menjadi subjek penelitian Charles Darwin, adalah sistem paket berdasarkan Debian Package Manager, yang berarti fitur penggunaan dpkgdan apt-getmanfaat utama adalah bahwa Anda dapat menemukan paket biner dengan andal .. dengan asumsi Anda memiliki paket upstream repositori yang berisi binari untuk versi OS Anda saat ini. Itu juga keluar dari pangkalan pengguna Darwin tetapi mungkin lebih populer dengan mereka yang datang dari Debian Linux [untuk mac, atau PPC] mencari dukungan perangkat keras yang sedikit lebih stabil ... sementara itu berlangsung. Itu menginstal paket ke /swalasan tidak menimpa atau ditimpa apa installer lain mungkin menginstal. Juga sesuatu tentang jalur pencarian kompiler dan default PATHyang /usr/local/binsudah berisi .
  • Homebrew adalah semacam sistem pelabuhan dalam konsep, tetapi ditulis dalam ruby. Itu tidak datang dari dunia OS yang berdiri sendiri dan ditujukan untuk pengguna Mac OS X (yang lain benar-benar digunakan dan diuji oleh hal yang sama). Pada pertengahan 2014 ia mencoba untuk membangun pada dasarnya setiap paket (mereka menyebutnya formula) meskipun beberapa tersedia dalam bentuk biner yang disebut botol, dan Anda dapat membuat repositori botol untuk dibagikan di grup sosial Anda jika Anda cenderung semi -menstandardisasi Anda dan peralatan teman Anda (juga untuk sistem lain). Di sisi positifnya, ia dibangun menggunakan banyak perpustakaan seperti yang mungkin sudah Anda miliki dari Apple. Saya pikir Anda tidak perlu Xcode untuk berfungsi dalam banyak kasus, tetapi "mendukung dan merekomendasikan" itu. Anda dapat menginstal setiap item dalam awalannya sendiri,/usr/localSaya pikir itu dimulai dan lebih baru daripada yang lain. Saya pribadi menemukan bahwa saya paling sering menggunakan ini karena saya jarang membutuhkan paket yang saling tergantung, dan saya tidak tahu seberapa baik mac homebrew mendukungnya. Homebrew bertujuan untuk memaksa Anda menggunakan manajer paket yang lebih tepat untuk perangkat lunak yang berasal dari manajer yang sangat erat, seperti cpan, permata, dan sejenisnya.
  • pkgsrc akan tersedia untuk Mac OS X, memiliki paket-paket biner, dan berasal dari NetBSD yang memeliharanya dan pada gilirannya mendasarkannya pada sistem port FreeBSD. NetBSD sangat fokus pada portabilitas di seluruh arsitektur sehingga mungkin sistem kandidat pelabuhan terbaik untuk mulai mendukung platform lain juga, yang dimilikinya. Ini mirip dalam uraian saya dengan Macport, tapi saya belum menggunakannya (kecuali di NetBSD), dan saya pikir itu menginstal /tetapi membangun dan memelihara paket-paket masuk /pkg. Mungkin ada banyak paket (seperti 12k) dan sekitar 20% mungkin tidak dibuat, atau, versi terbaru dari sumbernya mungkin tidak ditambal dengan tambalan yang terakhir dipelihara. Itu sebabnya paket biner adalah pilihan saya dengan sistem semacam ini.

Saya juga menggunakan perlbrew yang merupakan semacam homebrew untuk perl, aplikasi yang dibangun di perl dan beberapa dependensi. Ini sebagian besar cara yang baik untuk mempertahankan beberapa versi perl, dan itu dengan mudah meniadakan perlunya sistem paket yang lebih umum (untuk tujuannya). Tetapi tentu saja itu juga memiliki cpan dan cpanminus .

Anda mungkin menemukan manajer serupa untuk lingkungan mini Anda sendiri (seperti vundle untuk vim, atau permata untuk ruby, npm untuk node.js, pypm atau pip untuk python, built-in gogo install ... dll?)

dlamblin
sumber
Hitungan paket menyesatkan karena Homebrew sengaja tidak menyertakan kelas paket tertentu - lihat lebih lanjut di apple.stackexchange.com/questions/32724/…
Dan Dascalescu
5

Fink dan MacPorts adalah pesaing langsung karena mereka menginstal sistem ortogonal. Fink kehilangan banyak alasan untuk MacPorts beberapa tahun yang lalu. Saya tidak sepenuhnya yakin mengapa sekarang, tetapi MacPorts menangani hampir semuanya dengan lebih baik.

Kami kurang memiliki alasan untuk pemasangan ortogonal sekarang karena Mac OS X telah mengembangkan celana yang kurang gila. Brew dibuat untuk berintegrasi lebih baik dengan Mac OS X, membuatnya lebih ringan dan lebih sedikit ortogonal, dan juga karena Rubyist menulis ulang semuanya.

Dalam praktiknya, MacPorts sedikit lebih rumit, tetapi MacPorts hampir selalu berfungsi, sementara Brew lebih sederhana tetapi lebih mungkin mengalami dinding bata.

Tanyakan pada diri Anda pertanyaan ini:

  • Apakah Anda menggunakan banyak alat ekosistem Linux?
  • Apakah Anda memerlukan banyak versi?
  • Apakah Anda banyak bereksperimen dengan alat baru?
  • Apakah Anda menggunakan alat matematika / sains / perpustakaan atau alat yang tidak biasa lainnya?

Jawaban ya apa pun menyarankan Anda harus memilih MacPorts. Brew lebih murah jika Anda menginstal paket yang relatif sedikit dan umum, tetapi Brew tidak akan menangani kerumitan juga. Brew polusi /usr/localyang mungkin Anda inginkan untuk instalasi manual juga. Sebenarnya, ada argumen yang lebih rinci untuk MacPorts tetapi sekali lagi mereka mungkin tidak berlaku jika Anda menjawab tidak.

Sebaliknya, jika Anda menjawab ya tetapi mesin utama Anda menjalankan Linux, dan Mac Anda hanya mainan yang menjalankan perangkat lunak Linux minimal, maka sebenarnya Anda mungkin lebih baik dengan Brew.

Jeff Burdges
sumber
2

Tetapi sebagai catatan tambahan, tidak ada yang terkait dengan Apple OS X yang akan menginstal sendiri ke / usr / local / bin. Mereka menggunakan / usr / lib, / usr / bin di belakang layar dan kerangka kerja dikemas ke / Library / Frameworks sementara barang-barang yang Anda instal sendiri melalui Unix biasa ./configure, make, make install akan menggunakan / usr / local / bin dll , dan utilitas seperti MacPorts akan menggunakan / opt / dan mungkin paket framework untuk pribadi Anda ~ / Library / Frameworks /.

Rekomendasi saya adalah tetap menggunakan MacPorts jika Anda sudah terbiasa. Pada dasarnya perbedaan utama adalah bahwa MacPorts menggunakan sistem yang lebih mirip dengan implementasi pohon port Unix / BSD yang sebenarnya dengan port dari FreeBSD, sementara Fink menggunakan aplikasi yang di-porting dari arsip Linux Debian, dan menggunakan sistem manajer paket yang sama dengan Linux Debian.

Chris
sumber