Apa perbedaan / penggunaan homebrew, macports atau alat instalasi paket lainnya? [Tutup]

239

Saya baru saja beralih ke Mac dari Ubuntu. Saya kecewa bahwa mac tidak memiliki kenyamanan sudo apt-getdi Ubuntu. Saya pernah mendengar bahwa saya harus menggunakan homebrew tetapi saya tidak yakin apa yang homebrew atau macports lakukan?

ROBOTPWNS
sumber
8
Beberapa tahun yang lalu pintu depan homebrew memiliki pernyataan yang berbunyi seperti ini "homebrew lebih baik karena ditulis dalam Ruby". Saya tidak menentang Ruby, tidak sama sekali. Saya suka oop dan ruby ​​adalah bahasa oop yang bagus. Yang saya punya masalah adalah pengembang perangkat lunak mana pun yang menganggap satu bahasa lebih baik daripada semua bahasa lainnya. Untuk alasan itu saja saya tidak tertarik pada homebrew. Juga, macports telah bekerja dengan baik untuk saya selama bertahun-tahun.
Mike Makuch

Jawaban:

146

MacPorts adalah caranya.

  1. Seperti yang ditunjukkan oleh @ user475443, MacPorts memiliki banyak lebih banyak paket. Dengan minuman, Anda akan segera terjebak karena formula yang Anda butuhkan tidak ada.

  2. MacPorts adalah aplikasi asli: C + TCL. Anda tidak membutuhkan Ruby sama sekali. Untuk menginstal Ruby di Mac OS X Anda mungkin perlu MacPorts, jadi pergilah dengan MacPorts dan Anda akan senang.

  3. MacPorts benar-benar stabil, dalam 8 tahun saya tidak pernah punya masalah dengannya, dan seluruh ekosistem Unix saya menyampaikannya.

  4. Jika Anda seorang pengembang PHP, Anda dapat menginstal versi terakhir Apache (Mac OS X menggunakan 2.2), PHP dan semua ekstensi yang Anda butuhkan, kemudian tingkatkan semua dengan satu perintah. Lupa melakukan hal yang sama dengan Homebrew.

  5. Grup pendukung 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
    

    Jika Anda menginstal PHP55 dan PHP56 (dengan banyak ekstensi berbeda), Anda dapat bertukar di antara keduanya hanya dengan satu perintah. Semua ekstensi relatif adalah bagian dari grup dan ekstensi itu akan diaktifkan di dalam grup yang dipilih: php55 atau php56. Saya tidak yakin Homebrew memiliki fitur ini.

  6. Rubi suka menulis ulang semuanya di Ruby, karena satu-satunya hal yang membuat mereka nyaman adalah Ruby itu sendiri.

kata benda
sumber
26
Rubists suka menulis ulang - hehe, lihatlah orang-orang NodeJS yang mengimplementasikan protokol biner untuk MySQL di JS! :)
kolypto
37
Anda tidak perlu MacPorts untuk menginstal Ruby - Ruby disertakan dengan OS X, dan minuman menggunakan sistem Ruby.
Michael Ekstrand
5
@Michael Ekstrand OS X tidak termasuk versi terakhir Ruby.
kata benda
89
Tidak dapat membatalkan ini. Itu terlalu snarky, dan snarkiness merusak informasi.
OldPeculier
34
Memilih untuk melawan upvotes "anti-snarky" yang dihilangkan. Setiap informasi yang diterima dari manusia akan selalu memiliki bias alami ("snarkiness" dalam kasus ini). Saya menghargai perspektif pengguna ini, mungkin secara khusus karena jawabannya tidak dibaca seperti entri wikipedia.
rinogo
109

Homebrew dan macports keduanya memecahkan masalah yang sama - yaitu instalasi perpustakaan umum dan utilitas yang tidak dibundel dengan osx.

Biasanya ini adalah pustaka terkait pengembangan dan penggunaan paling umum dari alat ini adalah untuk pengembang yang bekerja di osx.

Keduanya membutuhkan alat baris perintah xcode yang terinstal (yang dapat Anda unduh secara terpisah dari https://developer.apple.com/ ), dan untuk beberapa paket tertentu Anda perlu menginstal seluruh xcode IDE.

xcode dapat diinstal dari app store mac, ini adalah unduhan gratis tetapi butuh waktu sejak sekitar 5GB (jika saya ingat dengan benar).

macports adalah versi osx dari utilitas port dari BSD (karena osx berasal dari BSD, ini adalah pilihan alami). Bagi siapa pun yang akrab dengan distribusi BSD, macports akan terasa seperti di rumah.

Satu perbedaan utama antara homebrew dan macports; dan alasan saya lebih suka homebrew adalah karena tidak akan menimpa hal-hal yang harus diinstal "secara native" di osx. Ini berarti bahwa jika ada paket asli yang tersedia, homebrew akan memberi tahu Anda alih-alih menimpa dan menyebabkan masalah lebih lanjut. Itu juga menginstal perpustakaan di ruang pengguna (dengan demikian, Anda tidak perlu menggunakan "sudo" untuk menginstal sesuatu). Ini membantu ketika menyingkirkan perpustakaan juga karena semuanya berada di jalur yang dapat diakses oleh Anda.

homebrew juga menikmati komunitas pengguna yang lebih aktif dan paket-paketnya (disebut formula) diperbarui cukup sering.


macports tidak menimpa paket OSX asli - ia memasok versi sendiri - Ini adalah alasan utama saya lebih suka macports daripada buatan sendiri, Anda harus yakin dengan apa yang Anda gunakan dan perubahan Apple pada waktu yang berbeda ke port dan telah diketahui bertahun-tahun di belakang pembaruan dalam beberapa proyek

Bisakah Anda memberikan referensi yang menunjukkan bahwa macports menimpa paket OS X asli? Sejauh yang saya tahu, semua instalasi macports terjadi di /opt/local

Mungkin saya harus mengklarifikasi - saya tidak mengatakan di mana pun dalam jawaban saya bahwa macports menimpa paket asli OSX. Keduanya menginstal item secara terpisah.

Homebrew akan memperingatkan Anda ketika Anda harus menginstal hal-hal "asli" (menggunakan installer perpustakaan / alat pilihan) untuk kompatibilitas yang lebih baik. Ini yang saya maksud. Ini juga akan menggunakan banyak perpustakaan lokal yang tersedia di OS X. Dari wiki :

Kami benar-benar tidak suka dupes di Homebrew / homebrew

Namun, kami suka dupes di keran!

Hal-hal yang datang dengan OS X atau perpustakaan yang disediakan oleh RubyGems, CPAN atau PyPi tidak boleh ditipu. Ada alasan bagus untuk ini:

  • Duplikat pustaka secara teratur memecah bangunan
  • Bug halus muncul dengan pustaka duplikat, dan pada tingkat lebih rendah, alat duplikat
  • Kami ingin Anda berusaha lebih keras untuk membuat formula Anda berfungsi dengan OS OS X

Anda secara opsional dapat menimpa versi utilitas yang disediakan macosx dengan homebrew.

Burhan Khalid
sumber
78
macports tidak menimpa paket OSX asli - ia memasok versi sendiri - Ini adalah alasan utama saya lebih suka macports daripada buatan sendiri, Anda harus yakin dengan apa yang Anda gunakan dan perubahan Apple pada waktu yang berbeda ke port dan telah diketahui menjadi ye3srs di belakang pembaruan di beberapa proyek
mmmmmm
13
Bisakah Anda memberikan referensi yang menunjukkan bahwa macports menimpa paket OS X asli? Sejauh yang saya tahu, semua instalasi macports terjadi di/opt/local
27
Setidaknya Anda melakukannya dengan sangat kuat bahwa MacPorts menimpa paket OS X asli. Alih-alih "mengklarifikasi" sementara masih berpura-pura Anda tidak mengatakan menulis apa yang Anda tulis, Anda mungkin harus mengedit kalimat yang dimaksud.
Santai
13
Kalimat ini, "Satu perbedaan utama antara homebrew dan macport; dan alasan saya lebih suka homebrew adalah bahwa itu tidak akan menimpa hal-hal yang harus dipasang" secara native "di osx." harus diubah menjadi "Satu perbedaan utama antara homebrew dan macport; dan alasan saya lebih suka homebrew adalah bahwa homebrew tidak akan secara otomatis menginstal salinan paralel alat dan perpustakaan yang sudah disediakan oleh Apple."
bgupta
7
MacPorts tidak menimpa aplikasi asli, itu "Membatasi perangkat lunak porting ke" kotak pasir "pribadi yang membuatnya tidak berbaur dengan sistem operasi Anda dan perangkat lunak yang disediakan vendor untuk mencegahnya rusak." - MacPorts Panduan, Bab 1
JLA
23

Saat ini, Macports memiliki lebih banyak paket (~ 18,6 K) daripada formula Homebrew (~ 3.1K), karena jatuh tempo. Homebrew perlahan-lahan mengejar ketinggalan.

Paket macport cenderung dipertahankan oleh satu orang.

Macports dapat menyimpan beberapa versi paket, dan Anda dapat mengaktifkan atau menonaktifkannya untuk menguji berbagai hal. Terkadang daftar ini bisa rusak dan Anda harus mengeditnya secara manual untuk mendapatkan kembali semuanya, meskipun ini tidak terlalu sulit.

Kedua manajer paket akan meminta untuk diperbarui secara berkala. Ini bisa memakan waktu.

Catatan: Anda dapat memiliki kedua manajer paket di sistem Anda! Itu bukan satu atau yang lain. Brew mungkin mengeluh tetapi Macports tidak mau.

Juga, jika Anda berurusan dengan paket python atau ruby, gunakan lingkungan virtual sedapat mungkin.

pengguna475443
sumber
1
{{{Kadang-kadang daftar ini bisa rusak dan Anda harus mengeditnya secara manual untuk mendapatkan semuanya kembali, meskipun ini tidak terlalu sulit. }}} Saya belum pernah melihat ini terjadi, meskipun itu tidak mengatakan bahwa itu tidak mungkin. Apa situasinya? Apakah Anda mengajukan bug ( trac.macports.org )?
LSpice
{{{Kedua manajer paket akan meminta untuk diperbarui secara berkala. Ini bisa memakan waktu. }}} Ini sepertinya pernyataan yang aneh. Dalam beberapa tahun penggunaan, saya hanya ingat memperbarui MacPorts sendiri beberapa kali, dan pembaruannya agak cepat. Apakah maksud Anda bahwa port itu sendiri harus sering diperbarui? Yah, memang bisa , tapi itu hal yang baik, bukan kelemahan, saya pikir! Juga, mungkin perlu dicatat bahwa MacPorts tidak akan meminta untuk melakukan apa pun — yaitu, tidak ada yang mengganggu; Anda harus bertanya itu sekitar out-of-date paket.
LSpice
18

Secara default, Homebrew menginstal paket ke / usr / local Anda. Perintah Macport membutuhkan sudo untuk menginstal dan meningkatkan (mirip dengan apt-get di Ubuntu).

Untuk lebih detail:

Situs ini menyarankan menggunakan Hombrew: http://deephill.com/macports-vs-homebrew/

sedangkan situs ini mencantumkan keuntungan menggunakan Macports: http://arstechnica.com/civis/viewtopic.php?f=19&t=1207907

Saya juga beralih dari Ubuntu baru-baru ini, dan saya menikmati menggunakan homebrew (sederhana dan mudah digunakan!), Tetapi jika Anda merasa terikat menggunakan sudo, Macports mungkin cara yang lebih baik untuk pergi!

debstep
sumber
4
Apakah Anda mengatakan bahwa homebrew menginstal semuanya /usr/localtanpa memerlukan sudo?
1
@NgocPham Apakah Anda punya referensi untuk itu?
16
@Keith Situs itu salah. Atau setidaknya, itu meninggalkan premis utama. Dikatakan "Apple telah meninggalkan direktori ini untuk kita. Yang berarti tidak ada direktori / usr / lokal secara default, jadi tidak perlu khawatir tentang mengacaukan alat yang ada." Apple belum berangkat /usr/localke Homebrew. Apple telah pergi /usr/localke "executable, libraries, dll. Tidak termasuk dalam sistem operasi dasar". Itu artinya ada kemungkinan bahwa alat yang diinstal sebelum menggunakan Homebrew mungkin telah dibuat /usr/localsedemikian rupa sehingga tidak dapat dimodifikasi tanpa sudo. Mereka tidak membicarakan hal itu di wiki.
2
@NgocPham Maksud saya adalah saya tidak percaya bahwa Homebrew dapat digunakan /usr/localtanpa izin root. Izin default untuk /usrinstalasi OS X yang baru adalah pemilik root, tanpa izin menulis untuk orang lain. Untuk membuat /usr/local , Homebrew akan membutuhkan akses root. (Saya tidak mencoba membela apa pun)
5
@ Articuno, kurasa aku punya kamu sekarang. Itu hanya pernyataan yang homebrewdapat menginstal barang tanpa sudokarena ketika mengatur sendiri, itu digunakan sudo untuk membuat izin pada direktori lebih longgar sehingga akan dapat melakukan apa pun di dalam /usr/localtanpa memicu kata sandi. Apakah itu berarti bagian "instal tanpa kata sandi" salah? Saya kira tidak! Itu masih benar bahwa homebrew akan bisa mendapatkan barang tanpa kata sandi.
Ngoc Pham