Tôi có thể cài đặt Homebrew mà không có đặc quyền sudo không?


26

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:


12

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/locallà chính xác nơi POSIX khuyến nghị những thứ như thế này được cài đặt. Để tạo /usr/localHomebrew, 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.


Cảm ơn, nhưng tôi nghĩ bạn đã bỏ lỡ câu hỏi của tôi. Tôi biết cách & nơi nó cài đặt các gói, nhưng tôi muốn cài đặt Homebrew mà không cần quản trị viên hoặc sudo.
BenjaminGolder

Tôi đã không bỏ lỡ câu hỏi của bạn. Câu trả lời là "Không" .. Tôi chỉ vô tình nói "Có". Bạn không thể dễ dàng làm những gì bạn yêu cầu và ngay cả khi bạn buộc nó bằng cách chỉnh sửa trình cài đặt Homebrew để đưa mọi thứ vào một nhánh trong thư mục chính của bạn, nhiều khả năng rất nhiều nhà sản xuất bia sẽ thất bại sau khi cài đặt.
David Hoelzer

được rồi, cảm ơn. Tôi đã bối rối bởi "Có" trước đó.
BenjaminGolder

3
Điều này là sai, hoặc ít nhất bạn định nghĩa "phẫu thuật quan trọng" là rất khác nhau sau đó của tôi. Tôi đã chạy brewvớ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 đó.
James McMahon

Tuy nhiên, cũng có điều này, rất khó để khắc phục: Lỗi: Bạn chưa đồng ý với giấy phép Xcode. Vui lòng giải quyết vấn đề này bằng cách chạy: sudo xcodebuild -license accept
Albert

17

Vâng.

Tôi đã sửa đổi tập lệnh cài đặt để không sử dụng sudovà sử dụng một thư mục bạn chọn. https://gist.github.com/skyl/36563a5be809e54dc139

Tải về, đặt YOUR_HOMEtrong tập lệnh đến đường dẫn tuyệt đối. chmod +xkịch bản. Tạo YOUR_HOME/usr/localthư 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 binthư mục, YOUR_HOME+ /usr/local/binlà trên của bạn $PATH.

which wget

1
Trong kịch bản cài đặt, tôi cũng phải thêm #{YOUR_HOME}tiền tố vào HOMEBREW_CACHEbiế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:$PATHvào .bash_profile. Nhưng với tất cả điều đó, nó dường như làm việc tuyệt vời.
golmschenk

3
Chỉ cần trải qua quá trình một lần nữa, và tôi chỉ muốn đề cập đến bạn cũng phải tạo một usrthư 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_CACHEbiế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.
golmschenk

@golmschenk dấu ngoặc kép được yêu cầu cho định dạng chuỗi ruby ​​để khởi động, tôi tin.
Skylar Saveland 24/07/2015

1
Đó là một điều chỉnh tốt đẹp. Bạn thực sự phải gửi một yêu cầu kéo cho dự án nhà máy bia.
David Hoelzer

1
Tôi đã thử điều này từ tài khoản không phải quản trị viên trên macOS Sierra (10.12.3) và nó không hoạt động vì cần phải làm chgrp admin /usr/localvà 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).
Spiff

0

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/"

0

Để 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

0

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

1
"Ở trên", ý bạn là câu trả lời của Astik Anand ? Nó sẽ không luôn luôn là "trên" câu trả lời của bạn. Nếu một cái gì đó trong câu trả lời của họ nên được thay đổi, hãy tự chỉnh sửa nó.
nekomatic
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.