Содержание
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.
Обновить все пакеты
Как обновить сразу всё
function update-all { # update cli homebrew brew update brew upgrade brew prune brew cleanup # Homebrew cask brew cu -a -y --cleanup brew cleanup --force -s && rm -rf $(brew --cache) # Node npm update -g # Apple App store mas upgrade softwareupdate --install --all }
Помимо самого brew необходимы
- mas (Mac App Store cli)
Как установить 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)"
Теперь можно расслабиться и откинуться на спинку кресла.
FIXED Нельзя, т.к. это Мак и здесь не надо ждать целый час пока что-то произойдет.
Для удаления
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"
Рекламный блок
Съешь еще этих сочных берез, да выпей самогона! *brew разные нужны, *brew разные важны.
- Perl - http://perlbrew.pl
Памятка для себя по основным командам
Команда | Описание |
---|---|
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 –formula) UPD brew list | xargs brew uninstall –force brew list –cask |
brew remove –force $(brew list)
brew remove –force $(brew list) –ignore-dependencies | Удалить все установленные пакеты |
brew cleanup | После при желании можно удалить скаченные архивы |
Tap и Cask
У Homebrew довольно интересная пивоваренная терминология. раздел будет обновлен
- Formula / Формула
- Taps / Кран
- Casks / Бочки
- Keg / Кеги или бочонки
- Cellar / Погреб
Ошибки, баги, глюки, howto
Отключить сбор информации
Управление сервисами в 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 программы по отзывам маководов
добавить список
Мой 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
Обсуждение