Homebrew, macports veya diğer paket kurulum araçlarının farkı / kullanımı nedir? [kapalı]


239

Yakın zamanda Ubuntu'dan bir Mac'e geçtim. Mac sudo apt-getUbuntu uygun olmadığını hayal kırıklığına uğradım . Homebrew kullanmam gerektiğini duydum ama homebrew veya macports'un ne yaptığını tam olarak bilmiyorum?



8
Birkaç yıl önce homebrew ön kapısında "Homebrew daha iyi çünkü Ruby'de yazılmış" gibi bir şey yapan bir ifade vardı. Ruby'ye karşı hiçbir şeyim yok sana, hiç de değil. Oop'u seviyorum ve ruby ​​iyi bir oop dilidir. Bir sorunum var, bir dilin diğerlerinden daha iyi olduğunu düşünen herhangi bir yazılım geliştiricisidir. Bu nedenle tek başına homebrew ile ilgilenmiyorum. Ayrıca, macports yıllardır benim için iyi çalışıyor.
Mike Makuch

Yanıtlar:


146

MacPorts ilerlemenin yoludur.

  1. @ User475443'ün işaret ettiği gibi, MacPorts'un çok daha fazla paketi var. Demlemek ile yakında kendinizi tuzağa bulabilirsiniz bulacaksınız çünkü ihtiyacınız olan formül mevcut değil.

  2. MacPorts yerel bir uygulamadır: C + TCL. Ruby'ye hiç ihtiyacın yok. Mac OS X'e Ruby yüklemek için MacPorts'a ihtiyacınız olabilir , bu yüzden MacPorts ile devam edin ve mutlu olacaksınız.

  3. MacPorts gerçekten kararlı, 8 yıl içinde hiç bir sorunum olmadı ve tüm Unix ekosistem rölem.

  4. Bir PHP geliştiricisiyseniz, Apache'nin son sürümünü (Mac OS X 2.2 kullanır), PHP'yi ve ihtiyacınız olan tüm uzantıları yükleyebilir, ardından hepsini tek bir komutla yükseltebilirsiniz. Homebrew ile de aynı şeyi yapmayı unut.

  5. MacPorts destek grupları.

    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
    

    Hem PHP55 hem de PHP56 yüklüyse (birçok farklı uzantıya sahip), sadece bir komutla aralarında geçiş yapabilirsiniz. Tüm göreceli uzantılar grubun bir parçasıdır ve seçilen grupta etkinleştirilir: php55 veya php56. Homebrew'un bu özelliğe sahip olduğundan emin değilim.

  6. Rubistler Ruby'deki her şeyi yeniden yazmayı sever, çünkü rahat oldukları tek şey Ruby'nin kendisidir.


26
Rubistler yeniden yazmayı sever - hehe, JS'de MySQL için ikili protokoller uygulayan NodeJS adamlarına bir göz atın! :)
kolypto

37
Ruby'yi yüklemek için MacPorts'a ihtiyacınız yoktur - Ruby OS X'e dahildir ve demlemek Ruby sistemini kullanır.
Michael Ekstrand

5
@Michael Ekstrand OS X, Ruby'nin son sürümünü içermez.
İsim

89
Bunu onaylayamıyorum. Çok sinsi ve sersemlik bilgiyi baltalıyor.
OldPeculier

34
Yok sayılan "anti-snarky" upvotes'a karşı oy verme. Bir insandan alınan herhangi bir bilginin her zaman doğal bir önyargısı olacaktır (bu durumda "sersemlik"). Ben belki özellikle bu kullanıcının bakış açısını takdir çünkü cevap wikipedia girişi okumuyor.
rinogo

109

Homebrew ve macport'lar aynı sorunu çözüyor - osx ile birlikte verilmeyen ortak kütüphanelerin ve yardımcı programların yüklenmesi.

Genellikle bunlar geliştirme ile ilgili kütüphanelerdir ve bu araçların en yaygın kullanımı osx üzerinde çalışan geliştiriciler içindir.

İkisinin de yüklü xcode komut satırı araçlarına ( https://developer.apple.com/ adresinden ayrı olarak indirebilirsiniz ) ve bazı belirli paketler için tüm xcode IDE'nin yüklü olması gerekir.

xcode mac app store'dan yüklenebilir, ücretsiz bir indirme ancak 5GB civarında bir süre alır (doğru hatırlıyorsam).

macports, BSD'nin liman yardımcı programının osx versiyonudur (osx BSD'den türetildiği için, bu doğal bir seçimdi). BSD dağıtımlarından herhangi birini bilen herkes için, macportlar kendinizi evinizde hissedecektir.

Homebrew ve macports arasındaki önemli bir fark; ve homebrew'u tercih etmemin sebebi, osx'a "doğal olarak" kurulması gereken şeylerin üzerine yazmamasıdır. Bu, yerel bir paket varsa, homebrew'un üzerine yazmak ve satırda daha fazla soruna neden olmak yerine sizi bilgilendireceği anlamına gelir. Ayrıca kitaplıkları kullanıcı alanına yükler (bu nedenle, şeyleri yüklemek için "sudo" kullanmanıza gerek yoktur). Bu, kütüphanelerden de kurtulmanıza yardımcı olur, çünkü her şey sizin için erişilebilir bir yoldadır.

homebrew ayrıca daha aktif bir kullanıcı topluluğuna sahiptir ve paketleri (formüller olarak adlandırılır) oldukça sık güncellenir.


macports, yerel OSX paketlerinin üzerine yazmaz - kendi sürümünü sağlar - Bu, ev yapımı demlemek yerine macport'u tercih etmemin ana nedenidir, kullandığınız şeyden ve Apple'ın bağlantı noktalarındaki farklı zamanlarda değiştiğinden emin olmanız gerekir ve bazı projelerde yılların gerisinde

Macportların yerel OS X paketlerinin üzerine yazıldığını gösteren bir referans verebilir misiniz? Anlayabildiğim kadarıyla, tüm macports kurulumu /opt/local

Belki de açıklığa kavuşturmalıyım - cevabımda hiçbir yerde macports'un OSX yerel paketlerinin üzerine yazdığını söylemedim. Her ikisi de öğeleri ayrı ayrı kurar.

Homebrew, daha iyi uyumluluk için işleri "yerel olarak" (kitaplık / aracın tercih edilen yükleyicisini kullanarak) kurmanız gerektiğinde sizi uyaracaktır. Demek istediğim bu. Ayrıca OS X'te bulunan yerel kitaplıkların çoğunu kullanacaktır. Wiki'den :

Homebrew / homebrew'daki çiftleri gerçekten sevmiyoruz

Ancak, musluklar dupes gibi!

OS X ile birlikte gelen veya RubyGems, CPAN veya PyPi tarafından sağlanan bir kitaplık kopyalanmamalıdır. Bunun için güzel sebepler var:

  • Yinelenen kütüphaneler düzenli olarak yapıları bozar
  • Küçük hatalar, yinelenen kütüphanelerle ve daha az ölçüde yinelenen araçlarla ortaya çıkar
  • Formülünüzü OS X ile birlikte gelenlerle çalışmak için daha çok denemenizi istiyoruz

Sen edebilirsiniz isteğe homebrew ile araçlardan macosx verilen sürümlerin üzerine.


78
macports, yerel OSX paketlerinin üzerine yazmaz - kendi sürümünü sağlar - Bu, ana demlemek için macports'u tercih ettiğim ana rason'dur, kullandığınız şeyden ve Apple'ın bağlantı noktalarına farklı zamanlarda değiştiğinden emin olmanız gerekir ve projelerde güncellemelerin arkasında ye3srs olacak
mmmmmm

13
Macportların yerel OS X paketlerinin üzerine yazıldığını gösteren bir referans verebilir misiniz? Anlayabildiğim kadarıyla, tüm macports kurulumu gerçekleşiyor/opt/local

27
En azından, MacPorts'un yerel OS X paketlerinin üzerine yazıldığını ima ettiniz. Yazdıklarını yazdığını söylemişken hala "açıklığa kavuşturmak" yerine, söz konusu cümleyi düzenlemelisin.
Relaxed

13
Bu cümle, "Homebrew ve macports arasındaki büyük bir fark; ve homebrew'u tercih etmemin nedeni," doğal olarak "osx'e kurulması gereken şeylerin üzerine yazmamasıdır. "Homebrew ve macports arasındaki büyük bir fark olarak değiştirilmeli ve homebrew'u tercih etmemin nedeni, homebrew'un zaten Apple tarafından sağlanan araçların ve kütüphanelerin paralel kopyalarını otomatik olarak yüklememesidir."
bgupta

7
MacPorts yerel uygulamaların üzerine yazmaz, "Taşınan yazılımları, işletim sisteminizle ve satıcı tarafından sağlanan yazılımlarıyla bozulmasını önlemek için özel bir" sanal alana "sınırlar." - MacPorts Kılavuzu, Bölüm 1
jla

23

Şu anda Macports, olgunluğu nedeniyle Homebrew formüllerinden (~ 3.1K) daha fazla pakete (~ 18.6 K) sahiptir. Homebrew yavaş yavaş yetişiyor.

Macport paketleri tek bir kişi tarafından korunma eğilimindedir.

Macports, paketlerin birden çok sürümünü saklayabilir ve bunları test etmek için etkinleştirebilir veya devre dışı bırakabilirsiniz. Bazen bu liste bozulabilir ve çok zor olmasa da, işleri düzenli olarak geri almak için manuel olarak düzenlemeniz gerekir.

Her iki paket yöneticisi de düzenli olarak güncellenmesini isteyecektir. Bu biraz zaman alabilir.

Not: Sisteminizde her iki paket yöneticisine de sahip olabilirsiniz! Biri ya da diğeri değil. Brew şikayet edebilir, ancak Macports bunu yapmaz.

Ayrıca, python veya ruby ​​paketleriyle uğraşıyorsanız, mümkün olan her yerde sanal bir ortam kullanın.


1
{{{Bazen bu liste bozulabilir ve bu çok zor olmasa da, işleri düzenli olarak geri almak için manuel olarak düzenlemeniz gerekir. }}} Bunu hiç görmedim, ancak bu mümkün olmadığını söylemek değil. Koşullar neydi? Hata mı verdiniz ( trac.macports.org )?
LSpice

{{{Her iki paket yöneticisi de düzenli olarak güncellenmesini isteyecektir. Bu biraz zaman alabilir. }}} Bu garip bir ifade gibi görünüyor. Birkaç yıllık kullanımda, MacPorts'un kendisini birkaç kez yükselttiğimi hatırlıyorum ve güncelleme oldukça hızlı. Bağlantı noktalarının kendilerinin sık sık güncellenmesi gerektiği anlamına mı geliyor? Eh, onlar olabilir , ama bu iyi bir şey değil, bir dezavantaj, bence! Ayrıca, MacPorts'un hiçbir şey yapmak istemeyeceğini belirtmek gerekir - yani , nagging yoktur; Eğer sormak zorunda it out-of-tarih paketleri hakkında.
LSpice

18

Varsayılan olarak, Homebrew paketleri / usr / local aygıtınıza yükler. Macport komutlarının yüklenmesi ve yükseltilmesi için sudo gerekir (Ubuntu'daki apt-get'e benzer).

Daha fazla ayrıntı için:

Bu site Hombrew kullanmanızı önerir: http://deephill.com/macports-vs-homebrew/

oysa bu site Macports kullanmanın avantajlarını listeler: http://arstechnica.com/civis/viewtopic.php?f=19&t=1207907

Ayrıca son zamanlarda Ubuntu'dan geçtim ve homebrew'u kullanmaktan keyif alıyorum (basit ve kullanımı kolay!), Ancak sudo kullanmaya bağlı hissediyorsanız, Macports gitmek için daha iyi bir yol olabilir!


4
Homebrew'un şeyleri /usr/localsudo gerektirmeden yüklediğini mi söylüyorsunuz ?

1
@NgocPham Bunun için bir referansınız var mı?

16
@Keith Bu site yanlış. Ya da en azından büyük bir öncül bırakıyor. "Apple bu dizini bizim için bıraktı. Yani varsayılan olarak / usr / local dizini yok, bu nedenle mevcut araçları karıştırmak için endişelenmenize gerek yok." Apple /usr/localHomebrew'a gitmedi. Apple, /usr/local"temel işletim sistemine dahil olmayan yürütülebilir dosyalar, kütüphaneler, vb." İçin ayrıldı . Bu, Homebrew kullanılmadan önce kurulan araçların /usr/localonsuz değiştirilemeyecek şekilde yaratılmış olabileceği anlamına gelir sudo. Bunu wiki'de tartışmıyorlar.

2
@NgocPham Demek istediğim, Homebrew'un /usr/localroot izinleri olmadan kullanabileceğine inanmıyorum . Yeni /usrbir OS X kurulumunda varsayılan izinler , başkalarına yazma izni olmayan kök sahiplerdir. Hatta oluşturmak için /usr/local Homebrew'un root erişimine ihtiyacı olacaktır. (Hiçbir şeyi savunmaya çalışmıyorum)

5
@Articuno Sanırım şimdi anladım. Bu sadece bir ifade homebrewolmadan şeyler yükleyebilirsiniz sudokendini kurarken bunun nedeni kullanılan sudo o şey içini yapmak mümkün olacak böylece dizin zayıf, izni yapmaya /usr/localşifresini tetiklemeden. "Parola olmadan yükle" bölümünün yanlış olduğu anlamına mı geliyor? Ben öyle düşünmüyorum! O hâlâ geçerliliğini homebrew olacaktır şifre olmadan malzeme almak mümkün.
Ngoc Pham
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.