====== Homebrew ====== {{ :apple:osx:homebrew_logo.png?nolink|}} 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, а не [[https://www.macports.org|Macports]] или [[http://www.finkproject.org|Fink]]? Потому-что стильно-модно-молодежно. Brew vs Fink vs Macports * http://deephill.com/macports-vs-homebrew/ * http://arstechnica.com/civis/viewtopic.php?f=19&t=1207907 * http://johnlaudun.org/20121230-macports-the-key-to-python-happiness/ * http://apple.stackexchange.com/questions/32724/what-are-pros-and-cons-for-macports-fink-and-homebrew * http://stackoverflow.com/questions/21374366/what-is-the-difference-usage-of-homebrew-macports-or-other-package-installation P.S. brew это самогон. Бонус - http://rudix.org, готовые пакеты для Mac. ===== Обновить все пакеты ===== Как обновить сразу всё [[https://blog.snapdragon.cc/2017/05/22/keep-all-macos-software-up-to-date-with-a-single-command/|via]] 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 необходимы * [[https://github.com/buo/homebrew-cask-upgrade|homebrew-cask-upgrade]] * [[https://github.com/mas-cli/mas|mas]] (Mac App Store cli) ===== Как установить Homebrew? ===== ==== Command Line Tools ==== {{ :apple:osx:homebrew_xcode.png?nolink&128|}} Как два байта переслать. Вначале необходимо установить т.н. инструменты командной строки для разработчиков (Command Line Tools). Для этого ставим [[https://itunes.apple.com/ru/app/xcode/id497799835|Xcode]] из Mac App Store или скачиваем с сайта [[https://developer.apple.com/downloads/|developer.apple.com]] 4,4 GiB Xcode vs 160 MiB Command Line Tools, выбор очевиден. Либо ничего не скачиваем, а просто в terminal выполняем $ xcode-select --install Смотрим версию $ xcode-select -v xcode-select version 2343. {{:apple:osx:homebrew_command_line_tools_1.png?nolink&500|}} {{:apple:osx:homebrew_command_line_tools_2.png?nolink&500|}} ==== Установка homebrew ==== /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" Теперь можно расслабиться и откинуться на спинку кресла.\\ FIXED Нельзя, т.к. это Мак и здесь не надо ждать целый час пока что-то произойдет. {{:apple:osx:homebrew_install.png?nolink&500|}} Для удаления ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)" [[https://github.com/Homebrew/install|Новый вариант]] /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)" ==== Рекламный блок ==== Съешь еще этих сочных берез, да выпей самогона! *brew разные нужны, *brew разные важны. * Perl - http://perlbrew.pl * PHP - https://github.com/phpbrew/phpbrew ==== Памятка для себя по основным командам ==== {{:apple:osx:homebrew_help.png?nolink&500|}} ^ Команда ^ Описание ^ | 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 | xargs brew uninstall --force \\ brew remove --force $(brew list) \\ brew remove --force $(brew list) --ignore-dependencies | Удалить все установленные пакеты | | brew cleanup | После при желании можно удалить скаченные архивы | ==== Tap и Cask ==== {{:apple:osx:homebrew_barrels.jpg?nolink&600|}} У Homebrew довольно интересная пивоваренная терминология. FIXME раздел будет обновлен * Formula / Формула * Taps / Кран * Casks / Бочки * Keg / Кеги или бочонки * Cellar / Погреб ===== Ошибки, баги, глюки, howto ===== ==== Отключить сбор информации ==== [[https://docs.brew.sh/Analytics|Кто следит и что собирают]] Отключить 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. * https://github.com/Homebrew/homebrew/issues/27729 * http://superuser.com/questions/925240/brew-installed-linked-but-not-found ==== после обновления до 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 ==== * http://askubuntu.com/questions/486297/how-to-select-video-quality-from-youtube-dl * https://github.com/rg3/youtube-dl/blob/master/docs/supportedsites.md **Примеры использования** Скачать видео без опций $ 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 {{tag>apple mac macos osx homebrew}}