RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

User Tools

Site Tools


Sidebar


Навигация

Линкшэринг

ALARM!

Добавить новую страницу

You are not allowed to add pages
apple:osx:homebrew

Homebrew

TL;DR: homebrew это пакетный менеджер для Mac OS X аналогичный yum (CentOS) или apt-get/aptitude (Debian).

Если в Linux мы ставим ПО следующим образом:

CentOS - yum install htop
Debian - apt-get install htop

То с brew будет возможность ставить ПО через терминал:

brew install htop

Почему именно homebrew, а не Macports или Fink? Потому-что стильно-модно-молодежно.

Brew vs Fink vs Macports

P.S. brew это самогон.

Бонус - http://rudix.org, готовые пакеты для Mac.

Как установить Homebrew?

Command Line Tools

Как два байта переслать.

Вначале необходимо установить т.н. инструменты командной строки для разработчиков (Command Line Tools).

Для этого ставим Xcode из Mac App Store или скачиваем с сайта developer.apple.com

4,4 GiB Xcode vs 160 MiB Command Line Tools, выбор очевиден.

Либо ничего не скачиваем, а просто в terminal выполняем

$ xcode-select --install

Смотрим версию

$ xcode-select -v
xcode-select version 2343.

Установка homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Теперь можно расслабиться и откинуться на спинку кресла Нельзя, т.к. это Мак и здесь не надо ждать целый час пока что-то произойдет.

Для удаления

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

Рекламный блок

Съешь еще этих сочных берез, да выпей самогона! *brew разные нужны, *brew разные важны.

Памятка для себя по основным командам

Команда Описание
brew update Обновить brew
brew list Список установленного ПО через brew
brew uninstall htop Удалить программу
brew outdated Проверить обновление для программ установленных через brew
brew upgrade Обновить все программы
brew pin htop Если нужно обновить всё кроме определенной программы
brew upgrade htop Обновить только программу htop
brew remove –force $(brew list)
brew remove –force $(brew list) –ignore-dependencies
Удалить все установленные пакеты
brew cleanup После при желании можно удалить скаченные архивы

Tap и Cask

У Homebrew довольно непривычная пивоваренная терминология. Я видел в разных блогах команды tap и cask, но не было необходимости их использовать. https://docs.brew.sh/Formula-Cookbook

Formula / Формула
Инструкция/опредение для установки пакетов (бутылок?)

Taps / Кран

  • brew tap - список добавленных кранов/репозиториев
  • brew tap <tapname> - добавить tap/кран
  • brew untap <tapname> - удалить tap/кран
% brew tap
homebrew/core

3rd-party/сторонний репозиторий с набором формул.

Подробнее в документации к tap

Проверить

brew cask добавит caskroom/cask репозиторий. brew tap caskroom/cask сделает тоже самое

Casks / Бочки

FIXME

https://formulae.brew.sh/cask/

https://github.com/Homebrew/homebrew-cask/find/master

https://github.com/Homebrew/homebrew-core/tree/master/Formula

https://stackoverflow.com/questions/34408147/what-does-brew-tap-mean/37973017#37973017

https://gist.github.com/jbelke/4496b2b1d7900d7971802332234bd781

https://docs.brew.sh/Taps

Keg / Кеги или бочонки

Cellar / Погреб

Все пакеты попадают в погреб
wget например находится в /usr/local/Cellar/wget/1.20.3_2/bin/wget

Ошибки, баги, глюки, howto

Отключить сбор информации

Кто следит и что собирают

Отключить

export HOMEBREW_NO_ANALYTICS=1
brew analytics off

Управление сервисами в homebrew

via http://paul.elms.pro/blog/2015/09/28/brew-services/

brew tap homebrew/services
brew update

# справка по использованию
brew services
# запускаем сервис (будет загружаться после логина пользователя)
brew service start redis
# останавливаем сервис
brew service stop redis
# запускаем сервис через sudo (будет запускаться без логина пользователя и с правами root)
sudo brew service start openvpn

Как собрать программу из исходников

Установить nmap из исходных кодов

$ brew install --build-from-source nmap

Переустановить/собрать все программы установленные через brew

$ brew list | xargs brew reinstall --build-from-source

Error: /usr/local must be writable!

При запуске brew doctor появляется сообщение Error: /usr/local must be writable!

Чиним

sudo chown -R $(whoami) /usr/local

%command% not found

dx-mac:~ dx$ mtr
-bash: mtr: command not found
dx-mac:~ dx$ sudo mtr
sudo: mtr: command not found

При этом если указывать полный путь к бинарнику, то успешно запускается

sudo /usr/local/sbin/mtr

поэтому делаем

echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile

и чтобы не перелогиниваться применяем сразу изменения

source $HOME/.bash_profile

Бонус. Избавляемся от ошибки mtr: unable to get raw sockets.

chmod 4755 /usr/local/sbin/mtr
sudo chown root /usr/local/sbin/mtr

UPD Не работает в Sierra.

после обновления до Sierra не работает brew

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

Что делать

xcode-select --install

Программы из brew

Must have программы по отзывам маководов

FIXME добавить список

Мой brew список

  • archey
  • cowsay
  • ffmpeg
  • htop
  • iperf
  • mtr
  • ncdu
  • tcping
  • wget
  • youtube-dl

youtube-dl

Примеры использования

Скачать видео без опций

$ youtube-dl [url]

Смотрим доступные форматы и качество

$ youtube-dl -F https://www.youtube.com/watch?v=JAB3OJMLb4I
[youtube] JAB3OJMLb4I: Downloading webpage
[youtube] JAB3OJMLb4I: Downloading video info webpage
[youtube] JAB3OJMLb4I: Extracting video information
[youtube] JAB3OJMLb4I: Downloading MPD manifest
[info] Available formats for JAB3OJMLb4I:
format code  extension  resolution note
140          m4a        audio only DASH audio  128k , m4a_dash container, mp4a.40.2@128k (44100Hz), 8.74MiB
171          webm       audio only DASH audio  143k , vorbis@128k (44100Hz), 9.18MiB
278          webm       256x144    DASH video  111k , webm container, vp9, 1fps, video only, 6.54MiB
160          mp4        256x144    DASH video  112k , avc1.4d400c, 12fps, video only, 7.44MiB
133          mp4        426x240    DASH video  248k , avc1.4d4015, 25fps, video only, 16.72MiB
242          webm       426x240    DASH video  275k , vp9, 1fps, video only, 13.28MiB
243          webm       640x360    DASH video  487k , vp9, 1fps, video only, 25.66MiB
134          mp4        640x360    DASH video  631k , avc1.4d401e, 25fps, video only, 41.28MiB
244          webm       854x480    DASH video  856k , vp9, 1fps, video only, 49.89MiB
135          mp4        854x480    DASH video 1153k , avc1.4d401e, 25fps, video only, 75.69MiB
247          webm       1280x720   DASH video 1858k , vp9, 1fps, video only, 101.86MiB
136          mp4        1280x720   DASH video 2293k , avc1.4d401f, 25fps, video only, 150.02MiB
248          webm       1920x1080  DASH video 3008k , vp9, 1fps, video only, 155.80MiB
137          mp4        1920x1080  DASH video 4239k , avc1.640028, 25fps, video only, 278.46MiB
17           3gp        176x144    small , mp4v.20.3,  mp4a.40.2@ 24k
36           3gp        320x180    small , mp4v.20.3,  mp4a.40.2
43           webm       640x360    medium , vp8.0,  vorbis@128k
18           mp4        640x360    medium , avc1.42001E,  mp4a.40.2@ 96k
22           mp4        1280x720   hd720 , avc1.64001F,  mp4a.40.2@192k (best)

Чтобы скачать видео 1280x720 hd720 под номером 22 используем ключ -f

$ youtube-dl -f 22 https://www.youtube.com/watch?v=JAB3OJMLb4I

Чтобы скачать плейлист достаточно просто указать ссылку

$ youtube-dl https://www.youtube.com/playlist?list=PLKP0pmm7wiTcmo5MPbFSZRnZYGGgj60M7

Скачиваем плейлист с дополнительными опциями

$ youtube-dl -Acfit 22 https://www.youtube.com/playlist?list=PLKP0pmm7wiTcmo5MPbFSZRnZYGGgj60M7

где

  • A, –auto-number. deprecated. Use -o "%(autonumber)s-%(title)s.%(ext)s" instead.
  • c, –continue - продолжить загрузку в случае обрыва связи
  • f, –format - код формата видео
  • i, –ignore-errors - игнорировать ошибки и продолжить загрузку
  • t, –title - заголовок в имени файла. deprecated. теперь по-умолчанию

Deprecated! Make sure you are not using -o with any of these options -t, –title, –id, -A or –auto-number set in command line or in a configuration file. Remove the latter if any.

Если появится ошибка

WARNING: You have requested multiple formats but ffmpeg or avconv are not installed. The formats won't be merged.WARNING: Requested formats are incompatible for merge and will be merged into mkv.

То ставим пакет ffmpeg

brew install ffmpeg

upd dec 2019 | Если появится ошибка

zsh: no matches found: {video URL}

добавить скобки

youtube-dl 'URL'

актуально для macOS 10.15.2/zsh 5.7.1

Discussion

Enter your comment. Wiki syntax is allowed:
 
apple/osx/homebrew.txt · Last modified: 2020/02/25 14:56 by dx