Homebrew độc đáo cho phép cài đặt gói mà không có đặc quyền sudo, nhưng có vẻ như tôi cần quyền quản trị để cài đặt Homebrew.
Tôi muốn cài đặt Homebrew trong môi trường Mac nơi tôi không có quyền sudo hoặc quản trị viên. Điều này có thể không?
Homebrew độc đáo cho phép cài đặt gói mà không có đặc quyền sudo, nhưng có vẻ như tôi cần quyền quản trị để cài đặt Homebrew.
Tôi muốn cài đặt Homebrew trong môi trường Mac nơi tôi không có quyền sudo hoặc quản trị viên. Điều này có thể không?
Câu trả lời:
Không .. Trừ khi bạn làm phẫu thuật quan trọng.
Lý do là Homebrew khăng khăng đòi cài đặt các gói vào /usr/local
. Trong thực tế, ngay cả khi bạn buộc nó phải cài đặt ở một nơi khác, bạn có khả năng phá vỡ các phụ thuộc khi bạn sử dụng brew install
để cài đặt các gói. Hầu hết nếu không phải tất cả các gói này đều được biên dịch trước và liên kết với mong muốn được sống /usr/local
.
Lý do cho sự nhấn mạnh này /usr/local
là chính xác nơi POSIX khuyến nghị những thứ như thế này được cài đặt. Để tạo /usr/local
Homebrew, cần có thông tin quản trị tạm thời để tạo thư mục và gán quyền sở hữu.
Đến lượt nó, đây là thứ cho phép bạn cài đặt bất cứ thứ gì khác mà không cần nâng cao thông tin đăng nhập.
brew
với một tiền tố được đặt vào thư mục nhà của tôi trong 5 năm và tôi đã gặp 1 hoặc 2 gói bị hỏng trong thời gian đó.
Vâng.
Tôi đã sửa đổi tập lệnh cài đặt để không sử dụng sudo
và sử dụng một thư mục bạn chọn. https://gist.github.com/skyl/36563a5be809e54dc139
Tải về, đặt YOUR_HOME
trong tập lệnh đến đường dẫn tuyệt đối. chmod +x
kịch bản. Tạo YOUR_HOME/usr/local
thư mục. Sau đó, thực hiện kịch bản.
./install.rb
Trong .bash_profile
, tôi đặt (Tôi không tích cực, điều này rất quan trọng, khá chắc chắn):
export HOMEBREW_PREFIX=/The/path/to/YOUR_HOME/usr/local
Bây giờ tôi có thể:
brew install wget
Hãy chắc chắn rằng bin
thư mục, YOUR_HOME
+ /usr/local/bin
là trên của bạn $PATH
.
which wget
#{YOUR_HOME}
tiền tố vào HOMEBREW_CACHE
biến. Điều đó và bởi vì quản trị viên hệ thống đã cài đặt homebrew, tôi cũng phải thêm export PATH=/path/to/home/usr/local/bin:$PATH
vào .bash_profile
. Nhưng với tất cả điều đó, nó dường như làm việc tuyệt vời.
usr
thư mục trong thư mục nhà của bạn trước khi tập lệnh sẽ chạy. Ngoài ra, khi bạn thêm #{YOUR_HOME}
vào HOMEBREW_CACHE
biến, có vẻ như bạn cần thay đổi dấu ngoặc đơn thành dấu ngoặc kép để nó hoạt động. Vì vậy, có một vài bước, nhưng nó chắc chắn xứng đáng để có được sức mạnh của Homebrew.
chgrp admin /usr/local
và tài khoản không phải quản trị viên không phải là thành viên của nhóm quản trị viên, vì vậy nó có thể ' t thay đổi bất cứ điều gì cho nhóm đó. Sẽ thật tuyệt nếu điều này có thể được thực hiện để hoạt động cho một tài khoản không phải quản trị viên bình thường (không chỉ đối với các tài khoản quản trị mà vì một lý do lạ nào đó đã bị khóa khỏi sudo).
Vâng.
Hệ thống sản xuất bia xuất hiện 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/"
Để cài đặt homebrew mà không cần sudo .
git clone https://github.com/mxcl/homebrew.git
echo 'export PATH="/path/to/cloned_folder/homebrew/bin:$PATH"' >> ~/.bash_profile
Khởi động lại thiết bị đầu cuối và chạy
brew --version
Brew đã chuyển repo git của họ, đó là lý do tại sao những thứ trên không còn hoạt động nữa.
git clone git@github.com:Homebrew/brew.git
echo 'export PATH="/path/to/cloned_folder/homebrew/bin:$PATH"' >> ~/.bash_profile