หลายปีที่ผ่านมาคุณสามารถหนีด้วยการทำงานbrew
ในฐานะรูทเพียงแค่ chowning brew
ไปที่รูท แต่มันก็ลบฟีเจอร์นั้นออก ดังนั้นใน Homebrew 1.1.6 ฉันเคยแก้ไข/usr/local/Homebrew/Library/Homebrew/brew.sh
เพื่อลบการตรวจสอบรูท (อันที่บอกว่ามัน "อันตรายมาก") ดังนั้นฉันจึงสามารถเรียกใช้brew
เป็นรูทได้
เวอร์ชันใหม่กว่าของ Homebrew ยังคงใช้งานได้ แต่จะคืนค่าbrew.sh
ไฟล์กลับมาทุกครั้งหลังจากที่ฉันเรียกใช้brew
แม้ว่าฉันchmod 500
จะเป็นเช่นนั้นก็ตาม ฉันสามารถเขียนสคริปต์เพื่อเปลี่ยนจากนั้นเรียกใช้brew
โดยอัตโนมัติ แต่ฉันไม่แน่ใจว่าสิ่งนี้จะได้ผลเสมอและไม่ต้องการโอกาส มีใครพบวิธีอื่นในการรัน Homebrew เป็น root
sudo
ใช้มันเป็น root และทำให้ฉันมีข้อผิดพลาด "อันตรายมาก" ฉันต้องการเรียกใช้เป็นรูทเนื่องจากมีปัญหาในการติดตั้งแพ็กเกจบางอย่างโดยเฉพาะอย่างยิ่งหากมีสิ่งใดติดตั้งไม่ผ่าน Homebrew (เช่นผ่านpip
) ฉันลงเส้นทางนั้นหลายครั้ง นอกจากนี้ยังไม่สามารถทำงานได้อย่างถูกต้องสำหรับผู้ใช้หลายคนโดยไม่มีวิธีการแก้ปัญหาแปลก ๆ ยกเว้นว่าฉันจะติดตั้งทุกอย่างเป็นรูท
root
มีความเสี่ยง แม้การสร้างแพคเกจโดยไม่ต้องจัดการแพคเกจที่คุณจะสร้างแพคเกจเป็นผู้ใช้ที่ไม่ใช่สิทธิพิเศษ (ตัวเอง) แล้วติดตั้งแพคเกจเป็นด้วยroot
sudo
ผู้จัดการแพคเกจเช่นตำรวจและ MacPorts root
ทั้งสร้างกับผู้ใช้ที่ไม่ใช่สิทธิ์ของตัวเองแล้วติดตั้งเป็น Homebrew ไม่มีกลไกดังกล่าว
brew.sh
ไฟล์ที่มีการย้อนกลับหลังจากแก้ไขและเรียกใช้brew
คำสั่ง ดังนั้นผมจึงสามารถเรียกใช้sudo brew whatever
และbrew whatever
ควบคู่เพียงแค่ปรับ brew --version
ผลลัพธ์ของฉันคือ: Homebrew 1.2.1-98-g803f9cbf7b-dirty Homebrew/homebrew-core (git revision d3d6; last commit 2017-05-28)
FYI ฉันแก้ไขbrew.sh
ไฟล์เพื่อคอมเม้นต์ทุกบรรทัดในcheck-run-command-as-root
ฟังก์ชันและวางreturn
คำสั่งเดียวที่ด้านบนของฟังก์ชันแทน
brew
เป็นราก? นอกจากนี้ยังsudo
ไม่เพียงพอสำหรับวัตถุประสงค์ของคุณ?