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