Homebrew ช่วยให้การติดตั้งแพคเกจโดยไม่มีสิทธิ์ sudo แต่ดูเหมือนว่าฉันต้องการสิทธิ์ผู้ดูแลระบบเพื่อติดตั้ง Homebrew เอง
ฉันต้องการติดตั้ง Homebrew ในสภาพแวดล้อม Mac ที่ฉันไม่มีสิทธิ์ sudo หรือผู้ดูแลระบบ เป็นไปได้ไหม
Homebrew ช่วยให้การติดตั้งแพคเกจโดยไม่มีสิทธิ์ sudo แต่ดูเหมือนว่าฉันต้องการสิทธิ์ผู้ดูแลระบบเพื่อติดตั้ง Homebrew เอง
ฉันต้องการติดตั้ง Homebrew ในสภาพแวดล้อม Mac ที่ฉันไม่มีสิทธิ์ sudo หรือผู้ดูแลระบบ เป็นไปได้ไหม
คำตอบ:
ไม่ .. เว้นแต่คุณจะทำศัลยกรรมที่สำคัญ
เหตุผลก็คือว่า Homebrew /usr/local
ขอยืนยันในแพคเกจติดตั้งลงใน ในความเป็นจริงแม้ว่าคุณจะบังคับให้ติดตั้งที่อื่นคุณก็มีแนวโน้มที่จะทำลายการพึ่งพาเมื่อคุณใช้brew install
ในการติดตั้งแพ็คเกจ ส่วนใหญ่ถ้าไม่ทั้งหมดของแพคเกจเหล่านี้จะถูก /usr/local
pre-รวบรวมและเชื่อมโยงในการคาดหวังว่าจะมีชีวิตอยู่
เหตุผลของการยืนยันนี้ก็คือเหตุผล/usr/local
ที่ POSIX แนะนำสิ่งที่ได้รับการติดตั้ง ในการสร้าง/usr/local
Homebrew จำเป็นต้องมีข้อมูลประจำตัวของผู้ดูแลระบบชั่วคราวเพื่อสร้างไดเรกทอรีและกำหนดความเป็นเจ้าของ
ในทางกลับกันนี่คือสิ่งที่ช่วยให้คุณสามารถติดตั้งสิ่งอื่นได้โดยไม่ต้องยกระดับข้อมูลรับรอง
brew
โดยมีคำนำหน้าตั้งค่าไว้ที่ไดเรกทอรีบ้านของฉันเป็นเวลา 5 ปีและฉันพบแพ็คเกจที่เสียหาย 1 หรือ 2 ครั้งในเวลานั้น
ใช่.
ฉันแก้ไขสคริปต์การติดตั้งเพื่อไม่ให้ใช้sudo
และใช้ไดเรกทอรีที่คุณเลือก https://gist.github.com/skyl/36563a5be809e54dc139
ดาวน์โหลดนั้นตั้งค่าYOUR_HOME
ในสคริปต์ไปยังเส้นทางที่แน่นอน chmod +x
บท. สร้างYOUR_HOME/usr/local
ไดเรกทอรี จากนั้นดำเนินการสคริปต์
./install.rb
ใน.bash_profile
ฉันตั้งค่า (ฉันไม่แน่ใจว่าสิ่งนี้เป็นสิ่งสำคัญและค่อนข้างแน่ใจ):
export HOMEBREW_PREFIX=/The/path/to/YOUR_HOME/usr/local
ตอนนี้ฉันสามารถ:
brew install wget
ตรวจสอบให้แน่ใจbin
ไดเรกทอรีYOUR_HOME
+ เป็นตัวคุณ/usr/local/bin
$PATH
which wget
#{YOUR_HOME}
คำนำหน้าให้กับHOMEBREW_CACHE
ตัวแปรเช่นกัน นั้นและเพราะผู้ดูแลระบบแล้วได้ homebrew ติดตั้งผมต้องเพิ่มexport PATH=/path/to/home/usr/local/bin:$PATH
ไป.bash_profile
เช่นกัน แต่ดูเหมือนว่ามันจะใช้งานได้ดี
usr
ไดเรกทอรีในโฮมไดเร็กตอรี่ของคุณก่อนที่สคริปต์จะทำงาน นอกจากนี้เมื่อคุณเพิ่ม#{YOUR_HOME}
ไปยังHOMEBREW_CACHE
ตัวแปรดูเหมือนว่าคุณจะต้องเปลี่ยนคำพูดเดียวที่ราคาคู่ให้มันทำงาน ดังนั้นจึงมีไม่กี่ขั้นตอน แต่ก็คุ้มค่าที่จะรับพลังของ Homebrew
chgrp admin /usr/local
และบัญชีที่ไม่ใช่ผู้ดูแลระบบไม่ใช่สมาชิกของกลุ่มผู้ดูแลระบบดังนั้นจึงสามารถ ' ไม่เปลี่ยนอะไรเป็นกลุ่มนั้น มันจะดีมากถ้าสิ่งนี้สามารถใช้กับบัญชีที่ไม่ใช่ผู้ดูแลระบบปกติได้ (ไม่ใช่สำหรับบัญชีผู้ดูแลระบบที่มีเหตุผลแปลก ๆ บางอย่างที่ถูกปิดกั้นจาก sudo)
ใช่.
ระบบการชงปรากฏ bootstrappable
#!/bin/bash
set -ex
export HOMEBREW_PREFIX=~/homebrew
# export HOMEBREW_NO_ANALYTICS=1
mkdir -p "${HOMEBREW_PREFIX}"
curl -fsSLk https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C "${HOMEBREW_PREFIX}"
ls -laR "${HOMEBREW_PREFIX}"
export PATH="${HOMEBREW_PREFIX}/bin:${PATH}"
type -a brew
type -a openssl || :
openssl version -a || :
type -a curl || :
curl -V || :
# Fails to lock a .git/config file.
##brew analytics off
# No "brew update" until installing the proper openssl and a curl that uses it.
# brew update
# brew remove openssl || :
brew install openssl
brew link --force openssl
# brew remove curl || :
brew install --with-openssl curl
brew link --force curl || :
curl -V
ls -la "${HOMEBREW_PREFIX}/opt"
ls -la "${HOMEBREW_PREFIX}/bin"
ls -laLR "${HOMEBREW_PREFIX}/opt/curl/"
การติดตั้งhomebrew โดยไม่ต้อง sudo
git clone https://github.com/mxcl/homebrew.git
echo 'export PATH="/path/to/cloned_folder/homebrew/bin:$PATH"' >> ~/.bash_profile
รีสตาร์ท terminalและเรียกใช้
brew --version
Brew ย้าย repo คอมไพล์ของพวกเขาซึ่งเป็นสาเหตุที่ด้านบนไม่ทำงานอีกต่อไป
git clone git@github.com:Homebrew/brew.git
echo 'export PATH="/path/to/cloned_folder/homebrew/bin:$PATH"' >> ~/.bash_profile