Homebrew чудово дозволяє встановити пакунки без привілеїв sudo, але, здається, мені потрібні права адміністратора, щоб встановити сам Homebrew.
Я хотів би встановити Homebrew в середовищі Mac, де у мене немає привілеїв sudo або admin. Чи можливо це?
Homebrew чудово дозволяє встановити пакунки без привілеїв sudo, але, здається, мені потрібні права адміністратора, щоб встановити сам Homebrew.
Я хотів би встановити Homebrew в середовищі Mac, де у мене немає привілеїв sudo або admin. Чи можливо це?
Відповіді:
Ні. Якщо ви не зробите значну операцію.
Причина в тому, що Homebrew наполегливо наполягає на встановленні пакетів у /usr/local. Насправді, навіть якщо ви змусили його встановити десь в іншому місці, ви, ймовірно, зламаєте залежності, коли використовуєте brew installдля встановлення пакетів. Більшість, якщо не всі ці пакети, попередньо складені та пов’язані, очікуючи проживання /usr/local.
Причина цього наполягання полягає /usr/localсаме в тому, що POSIX рекомендує встановлювати такі речі. Для створення /usr/localHomebrew потрібні тимчасові облікові дані адміністратора для створення каталогу та призначення права власності.
Це, у свою чергу, те, що дозволяє встановлювати що-небудь інше без підняття облікових даних.
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змінної. Це, а також тому , що системний адміністратор вже був саморобний встановлений, я повинен був додати export PATH=/path/to/home/usr/local/bin:$PATHдо .bash_profileа. Але при всьому тому, здається, це чудово працює.
usrкаталог у своєму домашньому каталозі до запуску сценарію. Крім того, коли ви додаєте #{YOUR_HOME}до HOMEBREW_CACHEзмінної, вам здається, що вам потрібно змінити одиничні лапки на подвійні лапки, щоб вона працювала. Отже, є кілька кроків, але, безумовно, варто того, щоб отримати силу Homebrew.
chgrp admin /usr/local, а обліковий запис, який не є адміністратором, не є членом групи адміністратора, тому він може " t змінити що-небудь до цієї групи. Було б чудово, якби це могло зробити так, щоб він працював для звичайного облікового запису, який не є адміністратором (не лише для облікових записів адміністратора, які з якихось дивних причин були закриті з-за судових процесів).
Так.
Система заварювання видається завантажувальною
#!/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/"
Встановити домашню мову без судо .
git clone https://github.com/mxcl/homebrew.git
echo 'export PATH="/path/to/cloned_folder/homebrew/bin:$PATH"' >> ~/.bash_profile
Перезапустіть термінал і запустіть
brew --version
Brew перемістив своє git repo, тому вищезгадане вже не працює.
git clone git@github.com:Homebrew/brew.git
echo 'export PATH="/path/to/cloned_folder/homebrew/bin:$PATH"' >> ~/.bash_profile