หลายปีที่ผ่านมาคุณสามารถหนีด้วยการทำงาน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ไม่เพียงพอสำหรับวัตถุประสงค์ของคุณ?