บังคับให้ Homebrew และ Macports อยู่ร่วมกันหรือไม่


10

ฉันมีระบบ MacOSX ที่ฉันใช้มาเป็นเวลาหลายปีและในช่วงเวลานี้ฉันได้ติดตั้งแพ็กเกจผ่านทาง Macports ค่อนข้างน้อย

ตอนนี้ฉันต้องการลองใช้ Homebrew แต่ก็ชัดเจนจากสิ่งที่ฉันได้อ่านที่นี่และที่อื่น ๆ ที่การติดตั้งเริ่มต้นของ Homebrew และ Macports ไม่สามารถอยู่ร่วมกันได้อย่างง่ายดาย

มันไม่ใช่ตัวเลือกที่ทำงานได้สำหรับฉันในการถอนการติดตั้ง Macports เนื่องจากงาน MacOSX รายวันของฉันเกี่ยวข้องกับการใช้ยูทิลิตี้ต่าง ๆ ที่ติดตั้ง Macports นอกจากนี้สาธารณูปโภคของฉันเองที่ผลิตเองหลายตัวก็มีการพึ่งพาซึ่งกันและกันกับ Macports และในที่สุดก็มีการติดตั้ง executables และ shared library จำนวนมากที่ฉันใช้เป็นประจำตอนนี้ภายใต้ / usr / local และระบบของฉันก็จะไม่สามารถใช้งานได้อย่างรวดเร็วถ้าฉันล้างแผนผังไดเรกทอรีนั้น

ดังนั้นคำถามของฉันคือ: มีใครคิดวิธีการติดตั้ง Homebrew ซึ่งสามารถอยู่ร่วมกับ Macports ได้หรือไม่ มีใครคิดวิธีที่จะทำให้ Homebrew ใช้ต้นไม้ไดเรกทอรีเช่น / usr / local / homebrew แทนที่จะเป็น / usr / local?

ขอขอบคุณล่วงหน้าสำหรับคำแนะนำหรือตัวชี้ไปยังเอกสาร


หากคุณต้องการลองทำไมไม่ตั้งค่าเครื่องเสมือน OS X ไม่ใช่กับ TOS ของ Apple สำหรับ OS X 10.7 และคุณสามารถทดลองกับสิ่งที่คุณต้องการได้ ถึงแม้ว่ามันจะเป็นชนิดของผลงานที่ใช้งานได้ทั้งในแบบคู่ขนานผมจะไม่ต้องแปลกใจถ้าสิ่งที่เริ่มต้นการทำลาย ...
แดเนียลเบ็ค

ขอบคุณมาก แต่ฉันชอบให้ผู้จัดการแพคเกจทั้งสองทำงานในสภาพแวดล้อม OSX เดียวกันหากมีวิธีใด ๆ ที่จะทำเช่นนั้น นี่เป็นเพราะถ้าฉันชอบ Homebrew ฉันจะต้องค่อย ๆ ติดตั้งแพคเกจผ่านระบบนั้นและค่อย ๆ ถอนการติดตั้งแพ็คเกจที่ใช้ Macports เก่า แต่น่าเสียดายที่มันไม่ใช่ทางเลือกที่เป็นไปได้สำหรับฉันที่จะตัดสินใจเกี่ยวกับ Homebrew, ระเบิดรหัส Macports แบบดั้งเดิมของฉันทั้งหมดในคราวเดียวตกจากนั้นจึงดิ้นรนเพื่อแทนที่มันทั้งหมดในแบบอื่น ๆ
HippoMan

คำตอบ:


2

คุณสามารถบอก Homebrew ให้ใช้ไดเรกทอรีของตัวเองแล้วเพิ่มลงในพา ธ แม้ว่าจะไม่ใช่เพื่อจุดประสงค์เดียวกัน แต่ข้อความที่ตัดตอนมาจากคู่มือการติดตั้งนี้บอกว่า:

การติดตั้งหลาย ๆ

สร้างการติดตั้ง Homebrew ทุกที่ที่คุณแยก tarball คำสั่งชงใดก็ตามที่ถูกเรียกคือตำแหน่งที่จะติดตั้งแพ็กเกจ คุณสามารถใช้สิ่งนี้ตามที่เห็นสมควรเช่นชุดระบบ libs ใน / usr / local และสูตร tweaked สำหรับการพัฒนาใน ~ / homebrew

ที่มา: https://github.com/mxcl/homebrew/wiki/installation


ขอบคุณ Karolos ฉันไม่ได้รับการสนับสนุนจากสถานะต่อไปนี้ในหน้า wiki เดียวกัน: "อย่างไรก็ตามคุณชอบและติดตั้งไปที่ / usr / local ... เลือกคำนำหน้าอื่นที่อันตรายของคุณ! " แต่ฉันจะลองและรายงานกลับ ต่อมา
HippoMan

ฉันพยายามติดตั้ง homebrew ใน / usr / local / homebrew อย่างไรก็ตามแพคเกจจำนวนมากที่ฉันพยายามติดตั้งล้มเหลว เมื่อฉันเรียกใช้หมอ / usr / local / homebrew / bin / ชงฉันได้รับการอ้างอิงถึงจำนวน dylibs ที่ไม่คาดคิดห้องสมุดคงที่ไฟล์. pc และไฟล์. la รวมทั้งคำเตือนเกี่ยวกับแพคเกจบางอย่างที่ต้องการการติดตั้ง / usr / local เนื่องจากระบบของฉันจะไม่ทำงานเลยหากฉันทำให้การติดตั้งซอฟต์แวร์แบบเดิมของฉันหายไป (ซึ่งเป็นที่มาของไฟล์ "ที่ไม่คาดคิด" ส่วนใหญ่จะมาจาก) ดูเหมือนว่าไม่มีทางที่ฉันจะใช้ homebrew ในระบบของฉัน
อืม

@HippoMan: ขออภัยที่มันไม่ได้ผล แม้ว่าคำถามหนึ่งข้อ: ตั้งค่า / usr / local / homebrew ไว้ในพา ธ ของคุณอย่างถูกต้องหรือไม่? ie PATH และ (DY) LD_LIBRARY_PATH
Karolos

@HippoMan: แพ็คเกจใดที่ล้มเหลว ฉันลองติดตั้งสองสามรายการแล้วไม่เห็นปัญหาใด ๆ (หลังจากแก้ไข / etc / พา ธ เพื่อเพิ่ม / usr / local / homebrew / bin)
Karolos

ใช่ฉันได้ตั้งค่า PATH และ LD_LIBRARY_PATH อย่างถูกต้องเพื่อให้ชี้ไปที่ bin และ lib ภายใต้ต้นไม้ / usr / local / homebrew หนึ่งในแพ็คเกจที่ล้มเหลวคือ gawk ซึ่งเป็นข้อกำหนดเบื้องต้นสำหรับ avidemux แต่ฉันจะเริ่มต้นใหม่จากศูนย์และลองอีกครั้งในกรณีที่ฉันทำข้อผิดพลาดบางอย่าง
HippoMan

1

วิธีของฉันที่จะบังคับให้พวกเขาอยู่ร่วมกันคือทำให้ MacPort ไม่สามารถมองเห็นได้ตามค่าเริ่มต้น แต่จะปรากฏให้เห็นเมื่อเรียกใช้โปรแกรม MacPorts ใด ๆ นั่นคือการห่อโปรแกรม MacPort ด้วยสคริปต์บางอย่างเช่น:

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

หากคุณตั้งชื่อสคริปต์นี้เป็นmacports.shคุณสามารถทำการตัดคำโดยmacports.sh macports_binเช่นmacports.sh portจะเรียกใช้การportตัดคำ

เพื่อความสะดวกของคุณสามารถใส่macports.sh somethingเข้าไปในสคริปต์บางคนที่มีชื่อเดียวกับคำสั่งของตัวเองและใส่ไว้ในไดเรกทอรีบ้านของคุณเช่น~/bin, ~/.local/binฯลฯ

ฉันเขียนบล็อกโพสต์เมื่อประมาณหนึ่งเดือนที่แล้ว คุณสามารถอ่านมันหากคุณต้องการดูรายละเอียด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.