Memaksa Homebrew dan Macports hidup berdampingan?

10

Saya memiliki sistem MacOSX yang telah saya gunakan selama beberapa tahun, dan selama ini, saya telah menginstal beberapa paket melalui Macports.

Saya sekarang ingin mencoba Homebrew, tetapi jelas dari apa yang saya baca di sini dan di tempat lain bahwa instalasi default Homebrew dan Macports tidak dapat dengan mudah hidup berdampingan.

Ini bukan pilihan yang layak bagi saya untuk menghapus Macports, karena sebagian besar pekerjaan MacOSX harian saya melibatkan penggunaan berbagai utilitas yang diinstal Macports. Selain itu, banyak dari utilitas saya sendiri yang tumbuh di dalam rumah sekarang saling bergantung dengan Macports. Dan akhirnya, banyak executable dan shared library yang saya gunakan secara rutin sekarang diinstal di / usr / local, dan sistem saya akan dengan cepat menjadi tidak dapat digunakan jika saya menghapus pohon direktori itu.

Jadi pertanyaan saya adalah ini: adakah yang datang dengan cara alternatif untuk menginstal Homebrew yang dapat hidup berdampingan dengan Macports? Secara khusus, adakah yang tahu cara membuat Homebrew memanfaatkan pohon direktori seperti / usr / local / homebrew alih-alih / usr / local?

Terima kasih sebelumnya atas saran atau petunjuk ke dokumen.

HippoMan
sumber
Jika Anda hanya ingin mencoba, mengapa tidak menyiapkan mesin virtual OS X? Ini tidak bertentangan dengan TOS Apple untuk OS X 10.7 dan Anda dapat bereksperimen dengan apa pun yang Anda inginkan di sana. Bahkan jika itu adalah jenis pekerjaan yang menggunakan keduanya secara paralel, saya tidak akan terkejut jika semuanya mulai rusak ...
Daniel Beck
Terima kasih banyak, tetapi saya lebih suka menjalankan kedua manajer paket di lingkungan OSX yang sama, jika ada cara untuk melakukannya. Ini karena jika saya suka Homebrew, saya kemudian ingin menginstal paket secara bertahap melalui sistem itu dan secara bertahap menghapus paket-paket lama berbasis Macports. Sayangnya, itu bukan alternatif yang layak bagi saya untuk memutuskan Homebrew, membuang semua kode Macports warisan saya dalam satu gerakan, dan kemudian berjuang untuk mengganti semuanya dalam gerakan lain melalui Homebrew.
HippoMan

Jawaban:

2

Anda bisa memberi tahu Homebrew untuk menggunakan direktori sendiri, dan kemudian menambahkannya ke path. Meskipun tidak untuk tujuan yang sama, kutipan dari panduan instalasi ini memberi tahu:

Beberapa instalasi

Buat instalasi Homebrew di mana pun Anda mengekstrak tarball. Perintah brew mana pun yang dipanggil adalah tempat paket akan diinstal. Anda dapat menggunakan ini sesuai keinginan Anda, mis. Satu set sistem libs di / usr / local dan formula tweak untuk pengembangan di ~ / homebrew

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

Karolos
sumber
Karolos terima kasih. Saya tidak didorong oleh statment berikut pada halaman wiki yang sama: "Namun tolong dan instal ke / usr / local ... Pilih awalan lain atas risiko Anda! " Tapi saya akan mencoba ini dan melaporkan kembali kemudian.
HippoMan
Saya telah mencoba menginstal homebrew di / usr / local / homebrew. Namun, sejumlah paket yang saya coba instal gagal. Ketika saya menjalankan / usr / local / homebrew / bin / brew doctor , saya mendapatkan referensi ke lusinan dylibs yang tak terduga, perpustakaan statis, file .pc, dan file .la, ditambah peringatan tentang paket-paket tertentu yang membutuhkan instalasi / usr / lokal. Karena sistem saya tidak akan berjalan sama sekali jika saya membuang instalasi perangkat lunak lawas saya (yang merupakan asal sebagian besar file "tak terduga"), sepertinya tidak ada cara bagi saya untuk menggunakan homebrew pada sistem saya. Oh well ... (
huh
@HippoMan: Maaf itu tidak berhasil. Namun satu pertanyaan: apakah / usr / local / homebrew diatur dengan benar di jalur Anda? yaitu PATH dan (DY) LD_LIBRARY_PATH
Karolos
@HippoMan: Paket mana yang gagal? Saya baru saja mencoba menginstal beberapa dari mereka dan tidak melihat masalah (setelah mengedit / etc / path untuk menambahkan / usr / local / homebrew / bin).
Karolos
Ya, saya memiliki PATH dan LD_LIBRARY_PATH yang diatur dengan benar untuk menunjuk ke bin dan lib di bawah pohon / usr / local / homebrew. Salah satu paket yang gagal adalah gawk, yang merupakan prasyarat untuk avidemux. Tapi saya akan memulai kembali dari awal dan mencoba sekali lagi, kalau-kalau saya membuat semacam kesalahan.
HippoMan
1

Cara saya untuk memaksa mereka hidup berdampingan adalah membuat MacPorts tidak terlihat secara default, tetapi terlihat saat menjalankan program MacPorts. Yaitu, bungkus program MacPorts dengan beberapa skrip seperti:

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 $* 

Jika Anda menamai skrip ini macports.sh, Anda dapat melakukan pembungkus dengan macports.sh macports_bin, seperti macports.sh portmenjalankannya akan portdibungkus.

Untuk kenyamanan, Anda dapat menempatkan macports.sh somethingke dalam beberapa script dengan nama yang sama dengan perintah sendiri dan menempatkan mereka dalam direktori HOME Anda, seperti ~/bin, ~/.local/bin, dll

Saya sudah menulis posting blog tentang ini sebulan yang lalu. Anda dapat membacanya jika Anda perlu melihat detailnya.

xuhdev
sumber