Командная строка – вариант общения с компьютерной системой без графического интерфейса. Вместо кликов по кнопкам в окнах здесь пользователь вводит текстовые команды, в том же виде к нему поступает обратная связь. Несмотря на преобладание графических интерфейсов, работа с командной строкой продолжает поддерживаться всеми операционными системами. Используется преимущественно разработчиками программного обеспечения и системными администраторами.
Такое утверждение справедливо и для macOS, где хоть и нет таких удобных инструментов, как в том же Linux, зато есть возможность установки дополнительных модулей. Например, менеджера пакетов, представляющих собой способ автоматизации инсталляции, обновления и настройки ПО. Такие программы поддерживают популярные форматы файлов и хранят установленные программы в централизованном хранилище.
Рассмотрим менеджер пакетов для macOS под названием Homebrew (для Windows и Linux его нет). Его часто используют для работы с Python, Ruby, Node.js и другим программным обеспечением с открытым исходным кодом. В этой статье расскажем, как инсталлировать утилиту и про основные команды для управления пакетами.
В качестве рабочей машины подойдет любой персональный компьютер или ноутбук с macOS, где установлена версия High Sierra или выше. Работает brew и на macOS с M1. Обязательно требуется доступ к учетной записи с правами администратора и подключение к интернету.
Перед началом работы с менеджером пакетом macOS рекомендуется изучить документацию по операционной системе. Проще всего разобраться в терминале тем, кто уже имеет опыт общения с командной строкой Linux. На Mac доступ к ней осуществляется через приложение Terminal, установленное в операционной системе по умолчанию.
Приложение доступно через поиск или в папке Utilities, расположенной в Applications. Запуск ПО происходит по двойному клику на ярлык. Третий вариант запуска – через Spotlight, в нем достаточно нажать пробел+Command и в появившемся окне ввести слово Terminal. Все, терминал запущен, и можно изучать инструмент Homebrew для macOS X.
Интегрированная среда разработки (IDE) Xcode популярна среди разработчиков ПО на платформе macOS. Сама по себе она не нужна для функционирования Homebrew, но часть компонентов вполне пригодится. Поэтому заранее установим пакет командой:
xcode-select –install
В процессе установки будет предложено принять лицензию, после подтверждения которой он будет продолжен – система автоматически загрузит необходимые файлы и установит их. Теперь можно приступать к работе с Homebrew.
Предварительно нужно загрузить и выполнить сценарий. Выполняется это командой:
curl -fsSL -o install.sh https://raw.githubusercontent.com/Homebrew/install/master/install.sh
В ней используются флаги:
Перед запуском сценария есть возможность просмотреть его содержимое:
less install.sh
Если никаких вопросов не возникло, можно запускать его:
/bin/bash install.sh
Сценарий будет «давать комментарии» о том, что делает, и запрашивать подтверждения на каждое из предлагаемых действий (подтвердить можно нажатием клавиши Y). Такой подход позволяет убедиться, что действительно все необходимые модули были установлены.
Также в процессе система предложит ввести пароль – во время набора на экране не будут отображаться введенные символы. Это своеобразная мера безопасности. Но нажатия клавиш система реагирует, поэтому нужно быть внимательным. После завершения папку, где будут размещаться исполняемые файлы, следует разместить в переменную среды PATH. Директория будет разной: на ARM-системах установка выполняется в /opt/homebrew, на Intel — в /usr/local/Homebrew.
Название редактируемого файла зависит от оболочки. Возьмем в качестве примера Bash:
nano ~/.bash_profile
Если используется ZSH, команда редактирования примет вид:
nano ~/.zshrc
После открытия файла в терминале добавим в него следующие строки (после перехода в конец):
# Add Homebrew's executable directory to the front of the PATH
export PATH=/usr/local/bin:$PATH
Первая строка – комментарий, который впоследствии напомнит, для чего нужна вторая. Для ARM, соответственно, необходимо указать директорию /opt/homebrew.
Сохранение изменений осуществляется комбинацией клавиш <Ctrl + O>, понадобится подтвердить действие кликом на Return. Чтобы выйти из редактора, нажимаем <Ctrl + X> – это вернет пользователя в терминал. Все изменения вступят в силу только после закрытия и повторного открытия его окна.
Также можно воспользоваться командой «принудительного» применения. В случае с Bash она будет выглядеть так:
source ~/.bash_profile
Для ZSH:
source ~/.zshrc
Третий вариант активации изменений – перезапуск операционной системы и приложения Terminal. Переменная PATH считывается автоматически при их старте. Но все равно желательно убедиться в корректности установки Homebrew:
brew doctor
При штатной работе пользователь увидит сообщение:
Your system is ready to brew
После того как мы убедились в установке менеджера Homebrew, можно загрузить, например, пакет tree для просмотра графического дерева каталогов. Выполняется это командой:
brew install tree
Приложение автоматически обновит перечень пакетов и инсталлирует tree. На экране пользователь увидит сообщение:
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/tree-1.8.0.catalina.bottle.tar.gz
######################################################################## 100.0%
==> Pouring tree-1.8.0.catalina.bottle.tar.gz
/usr/local/Cellar/tree/1.8.0: 8 files, 117.2KB
Путь установки по умолчанию расположен в каталоге /usr/local. Там файлы не мешают ставить обновления операционной системы. Убедиться в наличии пакета tree на компьютере можно при помощи команды:
which tree
Система показывает используемый каталог:
/usr/local/bin/tree
Версию установленного приложения можно посмотреть командой:
tree –version
Вывод на экран будет выглядеть следующим образом:
tree v1.8.0 (c) 1996 - 2018 by Steve Baker, Thomas Moore, Francesc Rocher, Florian Sesser, Kyosuke Tokoro
Если версия устаревшая, пакет лучше обновить:
brew upgrade tree
Важно учитывать, что менеджер пакетов сохраняет старые версии файлов, которые занимают место на накопителе. Чтобы удалить ненужные копии, используется команда очистки:
brew cleanup
Если пакет tree больше не нужен, его можно деинсталлировать с компьютера:
brew uninstall tree
Подтвердит удаление сообщение:
Uninstalling /usr/local/Cellar/tree/1.8.0... (8 files, 117.2KB)
Менеджер пакетов Homebrew Cask также умеет устанавливать и настольные приложения. Такой функционал сразу встроен в утилиту, поэтому ничего дополнительно инсталлировать не требуется. В качестве примера выберем Visual Studio Code, о котором мы недавно писали в блоге timeweb.cloud.
brew install visual-studio-code
Подтвердит процесс сообщение, выводимое на экран:
==> Downloading https://update.code.visualstudio.com/1.58.2/darwin/stable
==> Downloading from https://az764295.vo.msecnd.net/stable/a0479759d6e9ea56afa657e454193f72aef85bd0/VSC
######################################################################## 100.0%
==> Verifying SHA-256 checksum for Cask 'visual-studio-code'.
==> Installing Cask visual-studio-code
==> Moving App 'Visual Studio Code.app' to '/Applications/Visual Studio Code.app'.
==> Linking Binary 'code' to '/usr/local/bin/code'.
visual-studio-code was successfully installed!
По завершении процедуры приложение появится в каталоге Application, как будто оно установлено вручную. Чтобы удалить переставшее быть нужным ПО, применим команду:
brew uninstall visual-studio-code
Система подтвердит ее выполнение сообщением:
==> Backing App 'Visual Studio Code.app' up to '/usr/local/Caskroom/visual-studio-code/1.58.2/Visual Studio Code.app'
==> Removing App '/Applications/Visual Studio Code.app'
==> Unlinking Binary '/usr/local/bin/code'
==> Purging files for version 1.58.2 of Cask visual-studio-code
Перед удалением система создает резервную копию файлов, чтобы было легко откатиться в случае сбоя деинсталляции. Но после успешного подтверждения процедуры архивная копия удаляется автоматически.
Если менеджер пакетов Homebrew перестал быть нужным, его удаляют запуском специального сценария. Сначала загрузим его по аналогии с процедурой установки:
curl -fsSL -o uninstall.sh https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh
Также можно просмотреть содержимое, чтобы убедиться в его корректности:
less uninstall.sh
Если вас интересует, какие команды поддерживаются, используем флаг -help:
bash uninstall.sh –help
Команда выведет следующее сообщение:
Homebrew Uninstaller
Usage: uninstall.sh [options] -p, --path=PATH Sets Homebrew prefix. Defaults to /usr/local.
--skip-cache-and-logs
Skips removal of HOMEBREW_CACHE and HOMEBREW_LOGS.
-f, --force Uninstall without prompting.
-q, --quiet Suppress all output.
-d, --dry-run Simulate uninstall but don't remove anything.
-h, --help Display this message.
Нас больше интересует флаг -d, отображающий действия сценария:
bash uninstall.sh –d
На экране пользователь увидит перечень удаляемых скриптом файлов:
Warning: This script would remove:
/Users/brianhogan/Library/Caches/Homebrew/
/Users/brianhogan/Library/Logs/Homebrew/
/usr/local/Caskroom/
/usr/local/Cellar/
/usr/local/bin/brew -> /usr/local/bin/brew
==> Removing Homebrew installation...
Would delete:
....
Если пользователь уверен в своих действиях, можно выполнить скрипт без флагов:
bash uninstall.sh
Команда деинсталлирует как менеджер пакетов Homebrew, так и остальные приложения, которые были установлены через него.
Мы рассмотрели, как установить Homebrew на macOS, использовать менеджер пакетов для инсталляции других приложений и удалять лишнее. Преимущественно такие операции нужны разработчикам, но пригодятся и обычным пользователям.