Homebrew ve Macports'u bir arada yaşamaya zorlamak mı?


10

Birkaç yıldır kullandığım bir MacOSX sistemim var ve bu süre boyunca Macports üzerinden birkaç paket yükledim.

Şimdi Homebrew'u denemek istiyorum, ancak burada ve başka yerlerde okuduğum kadarıyla Homebrew ve Macports'un varsayılan kurulumlarının kolayca bir arada var olamayacağı açık.

Günlük MacOSX çalışmamın çoğu Macports tarafından yüklenmiş çeşitli yardımcı programların kullanılmasını gerektirdiğinden Macports'u kaldırmak benim için uygun bir seçenek değil. Dahası, kendi yetiştirdiğim yardımcı programların çoğu artık Macports'a bağımlı. Ve son olarak, rutin olarak kullandığım birçok çalıştırılabilir dosya ve paylaşılan kütüphane şimdi / usr / local altına kurulur ve bu dizin ağacını temizlersem sistemim hızla kullanılamaz hale gelir.

Yani sorum şu: Herkes Homport'u kurmak için Macports ile bir arada bulunabilecek alternatif bir yol buldu mu? Özellikle, Homebrew'un / usr / local yerine / usr / local / homebrew gibi bir dizin ağacını nasıl kullanacağını anlayan var mı?

Dokümanlara önerileriniz veya işaretçileriniz için şimdiden teşekkür ederiz.


Sadece denemek istiyorsanız, neden bir OS X sanal makinesi kurmuyorsunuz? Apple'ın OS X 10.7 için Hizmet Şartları'na karşı değildir ve orada ne istersen deneyebilirsiniz. Her ikisini de paralel olarak kullanmak bir tür iş olsa bile, işler kırılmaya başlarsa şaşırmam ...
Daniel Beck

Çok teşekkür ederim, ancak bunu yapmanın herhangi bir yolu varsa, her iki paket yöneticisini de aynı OSX ortamında çalıştırmayı tercih ederim. Çünkü Homebrew'ı seversem, daha sonra paketleri bu sistem üzerinden yavaş yavaş yüklemek ve eski Macports tabanlı paketleri yavaş yavaş kaldırmak isteyeceğim. Maalesef, Homebrew'a karar vermem, eski Macports kodumu bir defaya mahsus bırakmam ve sonra da Homebrew aracılığıyla başka bir düştü swoopunda değiştirmem için uygun bir alternatif değil.
HippoMan

Yanıtlar:


2

Homebrew'a kendi dizinini kullanmasını söyleyebilir ve daha sonra bunu yola ekleyebilirsiniz. Aynı amaç için olmasa da, kurulum kılavuzundan bu alıntı şunları söyler:

Birden fazla kurulum

Tarball'ı çıkardığınız her yerde bir Homebrew kurulumu oluşturun. Hangi demleme komutu çağrılırsa, paketler nereye yüklenir. Bunu uygun gördüğünüz gibi kullanabilirsiniz, örneğin ~ usr / local içindeki bir sistem kümesi ve ~ / homebrew'daki geliştirme için tweaked formülleri

Kaynak: https://github.com/mxcl/homebrew/wiki/installation


Teşekkürler Karolos. Aynı wiki sayfasında aşağıdaki ifadeyle cesaretlendirilmiyorum: "Ancak kendinize bir iyilik yapın ve / usr / local'a yükleyin ... Tehlikenizde başka bir önek seçin! " sonra.
HippoMan

/ Usr / local / homebrew içine homebrew kurmaya çalıştım. Ancak, yüklemeye çalıştığım bazı paketler başarısız oluyor. Ben çalıştırdığınızda / usr / local / homebrewleri / bin / demlemek doktor , ben beklenmedik dylibs, statik kütüphaneler, .pc dosyaları ve .la dosyalar, artı bir / usr / local kurulum gerektiren belirli paketleri hakkında uyarılar anlamıyla onlarca göndermeler olsun. Eski yazılım kurulumlarımı (bu "beklenmedik" dosyaların çoğunun geldiği yer) havaya uçursam, sistemim hiç çalışmaz, çünkü sistemimde homebrew kullanmanın bir yolu yok gibi görünüyor. Ah iyi ... (iç
çeker

@HippoMan: İşe yaramadığı için üzgünüm. Ancak bir soru: / usr / local / homebrew yollarınızda doğru bir şekilde kurulmuş mu? yani PATH ve (DY) LD_LIBRARY_PATH
Karolos

@HippoMan: Hangi paketler başarısız? Sadece birkaçını yüklemeyi denedim ve (/ usr / local / homebrew / bin eklemek için / etc / path'ları düzenledikten sonra) herhangi bir sorun görmedim.
Karolos

Evet, PATH ve LD_LIBRARY_PATH, / usr / local / homebrew ağacının altında bin ve lib'e işaret edecek şekilde doğru şekilde ayarlandım. Başarısız olan paketlerden biri, avidemux için bir önkoşul olan gawk. Ama bir tür hata yapmam durumunda sıfırdan yeniden başlayacağım ve bir kez daha deneyeceğim.
HippoMan

1

Onları bir arada var olmaya zorlamanın yolu, MacPorts'u varsayılan olarak görünür değil, herhangi bir MacPorts programını çağırırken görünür yapmaktır. Yani, MacPorts programlarını aşağıdaki gibi bir komut dosyasıyla sarın:

if [ "$#" -le 0 ]; then
  echo "Usage: $0 command [arg1, arg2, ...]" >&2
  exit 1
fi
if [[ -z $MACPORTS_PREFIX ]]; then
  MACPORTS_PREFIX='/opt/local'
fi
export PATH="$MACPORTS_PREFIX/bin:$MACPORTS_PREFIX/sbin:$PATH"
export DYLD_LIBRARY_PATH="$MACPORTS_PREFIX/lib:$DYLD_LIBRARY_PATH"
export CPATH="$MACPORTS_PREFIX/include:$CPATH"
command=$1
shift
exec $command $* 

Bu komut dosyasını olarak adlandırırsanız macports.sh, kaydırmayı çalıştırabilirsiniz macports.sh macports_bin, örneğin sarılmış olarak macports.sh portçalışacaktır port.

Rahatlığı için, koyabilirsiniz macports.sh somethingkendilerini komutları aynı ada sahip bazı komut içine ve bu itibarla, sizin EV dizinde koydu ~/bin, ~/.local/binvs.

Bir ay önce bunun hakkında bir blog yazısı yazdım . Detaylara bir göz atmanız gerekiyorsa okuyabilirsiniz.

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.