Skip to content

Latest commit

 

History

History
121 lines (79 loc) · 6.85 KB

4.2.1.0 Homebrew.md

File metadata and controls

121 lines (79 loc) · 6.85 KB

Homebrew

Homebrew — утилита командной строки в macOS и Linux, устанавливает нужные вам пакеты, не предоставляемые Apple.

До Homebrew было несколько различных попыток создать эффективные пакетные менеджеры для OS X. Наиболее популярные: Fink и Macports. У каждой из них есть свои проблемы. В обоих создание своих пакетов или портов является черезчур сложным.

Homebrew основан на двух вещах: Git и Ruby (brew --prefix ruby)

Дефолтное расположение brew:

  1. /opt/homebrew для Apple Silicon на arm архитектур;
  2. /usr/local for macOS для Intel чипов на x86 архитектуре;
Термин Описание Пример
Formula (Формула) Определение пакета (скрипт Ruby), включающее инструкции по установке, зависимости и конфигурации пакета /usr/local/Library/Formula/foo.rb
Keg (Бочонок) Директория, в которую устанавливается конкретная версия пакета (Formula) /usr/local/Cellar/foo/0.1 или /opt/homebrew/Cellar/foo/0.1
opt prefix (префикс) Символическая ссылка (симлинк) на активную версию пакета для упрощения доступа /usr/local/opt/foo
Cellar (Погреб) Основной каталог, где хранятся установленные версии всех пакетов /usr/local/Cellar
Tap (Кран) Дополнительный репозиторий, в котором хранятся уже собственные формулы /usr/local/Library/Taps/homebrew/homebrew-versions
Bottle (Бутылка) Предварительно собранная и упакованная версия пакета (Keg), готовая для установки. Благодаря Bottle(бутылкам) не нужно компилировать программы и Homebrew достаточно скачать готовые пакеты под целевую систему. qt-4.8.4.mavericks.bottle.tar.gz

Установка homebrew без sudo

Может возникнуть потребность установки brew в отличную от дефолтной директории:

1) mkdir ~/homebrew 
2) скачать оттуда https://github.com/Homebrew/brew/tarball/master
3) (echo; echo 'eval "$(~/homebrew/bin/brew shellenv)"') >> ~/.zprofile 
4) eval "$(~/homebrew/bin/brew shellenv)"
5) ~/homebrew/bin/brew update --force --quiet 
6) chmod -R go-w "$(brew --prefix)" 

Профит, дальше можно устанавливать любые пакеты: brew install cocoapods

Команды

1) Диагностика системы:

brew doctor

2) Обновление самого brew:

brew update - происходит git pull репозитория brew

3) Обновление пакетов:

brew upgrade or brew upgrade <package>

4) Устаревшие пакеты

brew outdated

5) После установки новых версий старые версии пакетов (formula) остаются на диске

Автоматически очищает устаревший кэш Homebrew и версии пакетов, включая файлы в ~/Library/Caches/Homebrew, которые больше не нужны:

brew cleanup

Без флага --prune=all с более щадящими настройками:

Функция brew cleanup brew cleanup --prune=all
Удаление старых версий пакетов Да, но только сильно устаревших Удаляет все старые версии пакетов
Удаление временных файлов Да, но только устаревших Удаляет все временные файлы
Ограничение по времени Есть (обычно файлы старше 30 дней) Нет, удаляются все устаревшие файлы

Чтобы увидеть, что будет удалено, фактически ничего не удаляя:

brew cleanup --prune=all --dry-run

6) Удаление "осиротевших" зависимостей

Удаляет ненужные зависимости, которые: были установлены автоматически как зависимости для других пакетов и больше не требуются ни одним установленным пакетом.

brew autoremove

5/6) brew cleanup vs brew autoremove

Функция brew autoremove brew cleanup
Удаление ненужных зависимостей ✅ Да ❌ Нет
Удаление старых версий пакетов ❌ Нет ✅ Да
Очистка временных файлов ❌ Нет ✅ Да
Очистка кэша ❌ Нет ✅ Да

7) Для просмотра всех пакетов в вашей локальной среде:

brew list --version

Или диаграмма:

brew deps --graph --installed/brew deps --tree --installed

8) Извлечение старых версий пакетор

Если brew search cocoapods не выдает список версий через "@version", то можно извлечь предыдущую версию следующим способом:

Общий пример:

TAP=...     # <org>/<repo>, for example "my-org/homebrew-old"
MODULE=...  # name of module you want to install, e.g. "hugo"
VERS=...    # version of $MODULE you want to install, e.g., "0.80.0"
brew tap-new $TAP
brew extract --version $VERS $MODULE $TAP
brew install $TAP/$MODULE@$VERS

Мой пример:

brew tap-new eldaroid/[email protected]
brew extract --version=1.15.1 cocoapods eldaroid/[email protected]
brew install eldaroid/[email protected]/[email protected]

4.2.1 Building Theme Folder | Back To iOSWiki Contents | 4.2.1.1 Simulator Theme