ПРИМЕЧАНИЕ. В этом ответе предполагается, что пользователь macOS настроен как администратор.
ВАЖНО: не используйте sudo
крайней необходимости, как описано ниже. Конечным результатом должна стать установка Homebrew, которая больше не нуждается в использовании sudo
.
Сначала создайте временный каталог в /usr/local
используя sudo
(введите пароль, если требуется):
sudo mkdir /usr/local/brewtmp1
Проверьте результаты ls -l /usr/local
:
total 0
drwxr-xr-x 2 root wheel 64 Jul 2 16:16 brewtmp1
Исправьте владение пользователя и группы временным каталогом:
sudo chown $USER:admin brewtmp1
Проверьте результаты ls -l /usr/local
раз:
total 0
drwxr-xr-x 2 brodybits admin 64 Jul 2 16:16 brewtmp1
Затем во временный каталог загрузите и распакуйте содержимое master
ветки Homebrew/brew на GitHub без использования sudo
:
cd /usr/local/brewtmp1
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz
Проверьте результаты ls -l
в /usr/local/brewtmp1
:
total 0
drwxr-xr-x 16 brodybits admin 512 Jul 2 14:46 Homebrew-brew-cbc3184
Проверьте результаты ls -l Homebrew-brew-*
:
total 48
-rw-r--r-- 1 brodybits admin 98 Jul 2 14:46 CHANGELOG.md
-rw-r--r-- 1 brodybits admin 3161 Jul 2 14:46 CODE_OF_CONDUCT.md
-rw-r--r-- 1 brodybits admin 720 Jul 2 14:46 CONTRIBUTING.md
-rw-r--r-- 1 brodybits admin 1334 Jul 2 14:46 LICENSE.txt
drwxr-xr-x 7 brodybits admin 224 Jul 2 14:46 Library
-rw-r--r-- 1 brodybits admin 7374 Jul 2 14:46 README.md
drwxr-xr-x 3 brodybits admin 96 Jul 2 14:46 bin
drwxr-xr-x 5 brodybits admin 160 Jul 2 14:46 completions
drwxr-xr-x 48 brodybits admin 1536 Jul 2 14:46 docs
drwxr-xr-x 5 brodybits admin 160 Jul 2 14:46 manpages
Это должно показать содержимое Homebrew с правильными пользователем и группой.
Переименовать Homebrew-brew-???????
на homebrew
(без использования sudo
) (должно быть нормально использовать другое имя с адаптацией к другим шагам ниже):
mv Homebrew-brew-??????? homebrew
и еще раз проверьте результаты ls -l
:
total 0
drwxr-xr-x 16 brodybits admin 512 Jul 2 14:46 homebrew
Переместите новый каталог homebrew
в нужное место, используя sudo
:
sudo mv /usr/local/brewtmp1/homebrew /usr/local
Дважды проверьте результаты ls -l /usr/local
:
total 0
drwxr-xr-x 2 brodybits admin 64 Jul 2 16:20 brewtmp1
drwxr-xr-x 16 brodybits admin 512 Jul 2 14:46 homebrew
Добавьте следующую строку в файл профиля (.profile
или .bash_profile
в зависимости от ситуации) (как указано в этом ответе на другой вопрос):
export PATH=/usr/local/homebrew/bin:$PATH
Перезапустите оболочку, запустите новую оболочку или загрузите файл профиля. Проверьте, which brew
показывает /usr/local/homebrew/bin/brew
. Убедитесь, что brew --version
работает (но без установленного homebrew-core
), например:
Homebrew >=1.4.0 (shallow or no git repository)
Homebrew/homebrew-core N/A
На этом этапе рекомендуется сделать brew doctor
, который будет включать homebrew-core
и проверить правильность установки. Может выводиться предупреждение о нестандартном префиксе Homebrew, но это должно быть проблемой для большинства пакетов. Тогда brew --version
должен показать homebrew-core
:
Homebrew >=1.4.0 (shallow or no git repository)
Homebrew/homebrew-core (git revision 2f937; last commit 2018-07-02)
Попробуйте установить простую формулу, такую как autoconf
:
brew install autoconf
autoconf --version
теперь должен показывать, что он установлен.
Чтобы отключить аналитику (благодаря этой статье необходимо сделать это после установки пакета):
brew analytics off
ls -l /usr/local/homebrew
теперь должен выглядеть так:
total 48
-rw-r--r-- 1 brodybits admin 98 Jul 2 16:43 CHANGELOG.md
-rw-r--r-- 1 brodybits admin 3161 Jul 2 16:43 CODE_OF_CONDUCT.md
-rw-r--r-- 1 brodybits admin 720 Jul 2 16:43 CONTRIBUTING.md
drwxr-xr-x 3 brodybits admin 96 Jul 2 16:43 Cellar
-rw-r--r-- 1 brodybits admin 1334 Jul 2 16:43 LICENSE.txt
drwxr-xr-x 8 brodybits admin 256 Jul 2 16:43 Library
-rw-r--r-- 1 brodybits admin 7374 Jul 2 16:43 README.md
drwxr-xr-x 10 brodybits admin 320 Jul 2 16:43 bin
drwxr-xr-x 5 brodybits admin 160 Jul 2 16:43 completions
drwxr-xr-x 48 brodybits admin 1536 Jul 2 16:43 docs
drwxr-xr-x 3 brodybits admin 96 Jul 2 16:43 etc
drwxr-xr-x 5 brodybits admin 160 Jul 2 16:43 manpages
drwxr-xr-x 4 brodybits admin 128 Jul 2 16:43 opt
drwxr-xr-x 8 brodybits admin 256 Jul 2 16:43 share
drwxr-xr-x 3 brodybits admin 96 Jul 2 16:42 var
Теперь рекомендуется добавить некоторые, возможно, недостающие каталоги и исправить некоторые разрешения на каталоги в соответствии с результатами сценария установки Homebrew (я бы хотел, чтобы brew doctor
проверил и предложил позаботиться об этой части):
cd /usr/local/homebrew
mkdir -p include Caskroom Cellar lib opt share var
chmod g+w include Caskroom Cellar lib opt share var
И, наконец, очистите /usr/local/brewtmp1
(используя sudo
):
sudo rm -rf /usr/local/brewtmp1
Дополнительное чтение и другие ресурсы: