Homebrew ve Macport'u aynı makineye kurmak güvenli midir?


73

İMac cihazımda yüklü sayıda bağlantı noktası bulunan MacPorts'um var.

Bununla birlikte, Homebrew'i denemekle ilgileniyorum, çünkü çok iyi şeyler duydum ve kullandığım araçların daha güncel sürümlerini içerdiğini fark ettim.

Ancak bu ikisi aynı makinede bir arada bulunabilir mi, yoksa önce MacPorts'u kaldırmam gerekir mi?

İki Ayrıca, olabilir aynı anda yüklü olması, birbirlerini tamamen bağımsız olacak? Homebrew'in özelliklerinden biri, sistemde zaten bulunan şeylerin (örneğin python) yeni sürümlerini yeniden yüklememesidir. Bu aynı zamanda MacPorts tarafından tutulan şeylerin sürümlerini yüklememesini de içeriyor mu?

Daha sonra MacPorts'u kaldırırsam ne olur?

Yanıtlar:


24

Birlikte iyi bir arada bulunmayacaklar. Apple gcc bazı şeyler için / usr / local dizinine bakıyor. Bu, bir macports derlemesinin hamalın beklemediği bir şey bulabileceği anlamına gelir. / Usr / local içinde bulunan olayların örnekleri için macports posta listelerine ve hatalarına bakın.


4
Homebrew'e sadece çok cursory bir bakış attım, fakat eğer homebrew için varsayılan kurulum konumunu / usr / local 'dan / opt / homebrew / usr / local gibi bir şeye değiştirdiyseniz, bu sorundan kaçınılmaz mıydı?
Babu

@Babu - Demlendiğine göre, dikkatli
Peter Ajtai 19:12

@babu - muhtemelen ama hangi yolun ya da macportların yolunda ilerleyeceği ile ilgili sorunlar olabilir ve diğerlerinin de bu yürütülebilir dosyaları toplaması da aynı zamanda her iki sistemin bağlantı noktalarının da başka bir yolla test edilmediğinden şüpheleniyorum
kullanıcı151019

18

Benzer bir soruya başka bir cevap daha verdim :

Homebrew, / usr / local içine kuruluysa yazılımı kaynaktan oluştururken sorunlara neden olacaktır. Varsayılan, bu, derleyici ve diğer araçların varsayılan arama yolunda olduğu için kötü bir seçimdir. Bu nedenle, diğer ambalaj yazılımlarından elde edilen derlemeler, Homebrew’in kendi sürümlerini kullanarak yanlış bağımlılığı tespit edebilir.

Yıllar önce, projenin başlangıcında, MacPorts'un bile / usr / local kullanıyordu. Ancak SSS'sinde belirtilen diğer araçlarla işbirliği yapmamaya başladı. Maalesef Homebrew geliştiricileri önceki deneyimlerden haberdar olmak istemedi ve bu gibi gerçekleri görmezden geldi ...

Genel olarak, tüm sorunlardan kaçınmak için yalnızca bir alete bağlı kalmak daha iyidir. MacPorts, Fink tarafından kullanılan herhangi bir harcoded yolu yamalamak için elinden gelenin en iyisini yapıyor. Bu yüzden genellikle işe yarayacaktır, ancak / usr / local içine kurulmuş herhangi bir şey olması kesinlikle bunun için sorunlara yol açacaktır.

[...]


İçeride homebrew takmanın da mümkün olduğu anlaşılıyor ~/.homebrew. Orada kurulursa hala MacPorts'a müdahale eder mi?
Behrang

/ Usr / local dışında başka herhangi bir yer iyi olmalıdır.
raimue

MacPort ve Homebrew, MacPort'un kurulu olduğu yerde Homebrew'u / opt / local'e kurarsa bir arada var olur mu?
Adam LS,

1
MacPorts zaten kurulu olduğunda başka bir yazılımı / opt / local içine manuel olarak kurmamalısınız. Oraya MacPorts'un bilmediği dosyaları yerleştirdiğinizde bağlantı noktalarını kurarken çakışmalara yol açması kesinlikle engellenir.
15

8

Gnu'nun ürettiği araçların ne yapacağına dair endişelerin /usr/localparanoyak üzerinde olduğunu düşünürdüm . Yapı araçları orada birçok şey olmasını bekler : Paket yöneticilerinin eski güzel günlerinde (şaka yapıyorum), ne olursa olsun derledik /usr/local. Ancak Autoconf genellikle sorunları bulsa da, birçok açık kaynaklı projenin karmaşıklığı sorunlara neden olur ve bu sorunların zorlandığınız zaman geri dönmesi zor olabilir.

Ancak, Autoconf'un altında olması gerekmeyen bir şeyi bulma problemi /usr/local, her biri farklı paket kütüphanelerinin farklı kapsama alanlarına sahip iki, üç veya dört farklı Perl, Tcl ve Ruby kopyası bulunan bakım sıkıntısı konusunda dengelenmesi gerekir. Hoş olmayan.

MacPorts ve Fink ile olan deneyimim tipik olarak tam da bundan kaynaklanıyor ve bir noktada eski moda bir şekilde derlemeye geçmeye başladığım için /usr/local, Homebrew'in bununla uğraşmadığını görmekten memnun oldum. Yüklemek için MacPorts'u yapılandırmaya çalıştım /usr/local, ancak MacPorts bunu zorlaştırmaktan kurtuldu. Motivasyonunun, e-posta listelerinde ve böcek takipçilerinde yardım çığlıkları ile uğraşırken kendileri için hayatı kolaylaştırmak olduğunu anlıyorum: gönüllü gönüllülerin çabalarına saygı göstermeli ve zamanlarını değerli görmemiz gerektiğine dikkat edin. hata ayıklama rahatlığı, kullanıcı olarak sizi etkileyen tek basitlik değildir.

Homebrew, bu bakımdan en azından, eskiden olduğu gibi işler ve MacPorts, karışmamaya çalışır. Homebrew ile hangi paketlere ihtiyacınız olduğunu belgelemek ve zorluk durumunda / usr / local'ı silmek ve yeniden kurmak için istekli iseniz, sorunların ters gitmesi durumunda her zaman geri dönebilirsiniz. Ve / usr / local içindeki sorunların makinelerinizde genellikle kalıcı hasar riski taşımadığını fark ettiğinizde, risk almakta daha özgür hissedebilirsiniz.

Sadece OSX’te FreeBSD’den ne kadar daha kötü bir paketleme olduğuna dikkat edeceğim: Apple, BSD alt ürününün kullanılabilirliğini gerçekten önemsemiyor gibi görünüyor, çünkü bu onların yardım edebilecekleri bir problem.


Benim sorum, sadece "eşya almak" için paket yöneticisini kullanan aptal bir kullanıcının bakış açısından soruluyor. Kesinlikle, "işler ters giderse kendimi biraz özümseyebilirim " diyebileceğim kesin değil . Yine de, ekstra açıklama için yine de oy kullanın. Teşekkürler!
Zengin

1
MacPorts / usr / local kullanmamak için iyi nedenler olarak, bkz. Trac.macports.org/wiki/FAQ#defaultprefix
raimue,

3
@Raim: Onlar için iyi nedenler - onların hata izleme kolaylığı ve kullanıcının makinedeki kurulum kolaylığı arasında bir takas. İkincisini umursuyorum.
Charles Stewart

1
Birisinin (veya bir şeyin) $ lib kopyasını yüklediği için yanlış gidebilecek şeylerin sayısı /usr/localsonsuzdur. Mimariler, sürümler, yapılandırılmış özellikler ve bayraklar, kısmi yüklemeler, güvenlikle ilgili eski yüklemeler ve ve sorunlara neden olur. Elbette, ne yaptığınızı biliyorsanız, devam edin, ancak bununla ilgili herhangi bir hata bildirmeyin. Tecrübe, insanların yine de dosya açtığını gösteriyor ve bu tam olarak izleme modunun ( -t, aşağıya bakınız) var olmasının ve kaçınmanın neden /usr/localvarsayılan öneri olduğunun sebebi .
Kasım’da İspanyol olmayan

@neverpanic - Bu cevabı yazdığımdan beri / usr / local'e kadar her şeyi derlemenin riskleri hakkındaki fikrim değişti, çünkü çoğunlukla tipik açık kaynaklı projelerin karmaşıklığı daha da artıyor ve Autoconf sorunları kolaylaşmıyor halletmek: en azından, "paranoyakla savaşmak" haksızlık. Yine de Macports'un "kendi özel yapı evren" yaklaşımını beğenmedim, ancak posta listesi etkileşimlerinin basitliğinin son kullanıcının endişelemesi gereken tek basitlik olmadığını vurgulamayı hak ediyor. Cevabımı uyarılar ekleyeceğim.
Charles Stewart

6

Göre MacPorts SSS :

2.3.0 ile başlayan MacPorts'un otomatik olarak / usr / local (ve bir portun bağlı olmadığı diğer tüm dosyaları) portların derleme sistemlerinden gizleyebileceğini unutmayın. Bu özelliğe izleme modu adı verilir ve bağlantı noktasına -t bayrağı sağlayarak etkinleştirilir, örn.

sudo port -t install <portname>

Bu, çünkü Homebrew Kurulum Sayfasına göre:

Homebrew'un sadece rekabete göre çalışmasının sebeplerinden biri / usr / local kurulumunu tavsiye etmemiz. Tehlikenizden başka bir önek seçin!

Bu nedenle ve çok az kişisel deneyimim olduğunda, MacPort kurulumları için -t bayrağını kullanmanın her zaman MacPorts ve Homebrew'un aynı sistemde bir arada var olma sorunlarının önüne geçmesi gerektiğini düşünüyorum. Son sorunuzu ele almak için: MacPorts'u kaldırmanın herhangi bir soruna neden olacağına dair herhangi bir neden görmüyorum.


Önemli bir performans cezası çekeceğinizi unutmayın. Ancak genel olarak, bu hemen hemen her durumda işe yaramalı.
asla İspanyol

Hiçbir zaman bu ihtarı gösterdiğin için teşekkürler. Söz konusu performans cezasının sadece portun kurulma süresini etkilediğini ve kurulu portun çalışma zamanı özellikleri üzerinde hiçbir etkisi olmadığını varsayıyorum. Doğru?
webappzero

Doğru. Yalnızca çalışma zamanı sorunlarını da önler, çalışma zamanı sorunlarını da (ancak çok nadir görülür) önler.
18:36

Uygulamada, her zaman izleme bayrağını kullanmanın bu gereğini hatırlayamadım. Bu nedenle, sürekli kullanacağınızdan emin değilseniz, bu uygulamayı başkalarına önermiyorum.
webappzero

Bunu hatırlamak istemiyorsanız, her zaman sizin için geçirmesi için bir sarmalayıcı komut dosyası veya kabuk takma adı (ancak sudo ile kabuk takma adı arasındaki etkileşimin farkında olun) yazabilirsiniz. El Capitan'ın şu anda izleme modunu kırdığını unutmayın. Bir geçici çözüm üzerinde çalışıyorum.
14

4

Homebrew'i yıllardır port kullandığım bir bilgisayara yüklerken, işte okuyabildiğim şeyler:

Warning: You have MacPorts or Fink installed:
  /opt/local/bin/port

This can cause trouble. You don't have to uninstall them, but you may want to
temporarily move them out of the way, e.g.

  sudo mv /opt/local ~/macports

Dikkatli ol!


1

webappzero'nun sudo port -t ...çözümü yardımcı olmalı. Dürüst olmak gerekirse, Fink, MacPorts ve Homebrew ile aynı anda, MacPorts'a (şu an için zaten) saygılı olarak ve diğer ikisinden birini MacPorts'tan alamayacağım şeyleri yüklemek için kullanıyorum. Bu port -tnumarayı öğrenmeden önce bile bu şekilde çok az zorluk yaşadım . Ancak, karmaşık geliştirme ve sunucu ortamlarını sürdürmek için birden fazla paket yöneticisi kullanmaya çalışıyorsanız, muhtemelen en azından bir rahatsızlık dünyasındasınız. Birini seç ve diğerlerinden uzak dur, ama onlardan umutsuzca ihtiyacın olan bir şey için, ve asıl yolunu daha erken yola koy.

Eğer duyduğum şey Apple'ın kendisinin / usr / içine Apple'ınkinden başka şeylerin yüklenmesini yasaklayacağı konusunda doğruysa (veya belki de bunu zaten daha sonraya kadar "yukarı" derecelendirmesinden kaçındığım El Crapitan'da yapıyorlar. onunla ilgili sorunlar çözüldü), Homebrew’in başka bir şeyi kullanmaya karar vermesinden sonra konuyu azaltacağını tahmin ediyorum - Apple’ın çok yönlü yaklaşımını kabul edip etmeyeceğimiz konusunda.

Sonunda, Apple'ın kendi limanlarını kendi ağacıyla sınırlandırma fikrini seviyorum, keşke / usr / olmasaydı. Kendi eşyalarını izole etmek için / System / bin /, vb. Vb. Kullanmayı tercih ederdim, böylece güncel, toplum tarafından korunan bir yazılımla daha kolay atlayabilirdim.

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.