[TOC] # 一些mac需要的软件 https://blog.skk.moe/post/mac-software/ # brew **仓库** [https://docs.brew.sh/Interesting-Taps-and-Forks.html](https://docs.brew.sh/Interesting-Taps-and-Forks.html) --- https://mp.weixin.qq.com/s/L3IPXZae10FswOhmSDQoLg https://zhuanlan.zhihu.com/p/22598799 --- 关闭自带httpd ~~~ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist ~~~ ## 安装 mac 安装 brew Homebrew brew 全称Homebrew 是Mac OSX上的软件包管理工具 Homebrew 安装和卸载工具 只用一行命令就能完成 brew官网网址:https://brew.sh/index.html 安装 输入: ruby -version 安装命令: ~~~ /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/install)" ~~~ 默认oh-my-zsh是不支持HomeBrew的,所以我们需要这样做: ~~~ brew install zsh-completions ~~~ ## 使用方法 命令行 输入: brew ## 安装工具 举个栗子: wget 这个工具 输入命令: ~~~ brew install wget ~~~ ## 日志 ~~~ /Users/jdxia/Library/Caches/Homebrew/Cask /Users/jdxia/Library/Logs/Homebrew ~~~ ## 降级 ~~~ git clone https://github.com/Homebrew/homebrew-core.git git log ./Formula/thrift.rb 找到0.9.2 commit git checkout 56d8c1eba1e5ac30290dd0c486f4bba37f821e42 brew install ./Formula/thrift.rb ~~~ 原理是,从github上下载homebrew,homebrew中记录了各个时期的软件版本,checkout homebrew的低版本分治,把thrift低版本rb找到,然后安装。 其实,也可以直接使用别人分享的thrift-0.9.2.rb文件直接安装。 ## 卸载 拿上面的栗子: wget 工具 输入命令 ~~~ brew uninstall wget ~~~ 工具安装的目录 Homebrew 会将套件安装到独立目录,并将文件软链接至/usr/local ~~~ $ cd /usr/local $ find Cellar Cellar/wget/1.16.1 Cellar/wget/1.16.1/bin/wget Cellar/wget/1.16.1/share/man/man1/wget.1 $ ls -l bin bin/wget -> ../Cellar/wget/1.16.1/bin/wget ~~~ ## 锁定不想更新的包 如果经常更新的话,brew update 一次更新所有的包是非常方便的。但我们有时候会担心自动升级把一些不希望更新的包更新了。数据库就属于这一类,尤其是 PostgreSQL 跨 minor 版本升级都要迁移数据库的。我们更希望找个时间单独处理它。这时可用 brew pin 去锁定这个包,然后 brew update 就会略过它了。 ~~~ brew pin $FORMULA # 锁定某个包 brew unpin $FORMULA # 取消锁定 ~~~ ## 其他命令 http://blog.csdn.net/crper/article/details/78520575 ~~~ brew list 列出已安装的软件 brew list 软件名 //列出指定安装软件的文件 brew services list :显示安装的服务 brew reinstall vim 重新安装vim,比如升级系统vim无法使用 brew link xx 添加链接过去 brew swift xx 版本号 切换版本 brew update 更新brew brew home 用浏览器打开brew的官方网站 brew doctor检查是否存在冲突 brew info 显示软件信息 brew uninstall wget # 卸载软件,很爽,一键静默卸载 brew search git # 模糊搜索brew 支持的软件。如果不加软件名,就会列出所有它支持的软件。多的很。 brew deps 显示包依赖 brew outdated # 看一下哪些软件可以升级 brew upgrade <xxx> # 如果不是所有的都要升级,那就这样升级指定的 brew --cache 下载之后的文件夹 brew upgrade; brew cleanup # 如果都要升级,直接升级完然后清理干净 brew services restart php71 #重启php71 会安装到这个文件下 /usr/local/Cellar 会同步一份到 /usr/local/opt 任何的增删改都会保持这2个目录的同步。并且已经软链好各种命令到/usr/local/bin下。 /usr/local/etc/ 这里也有 brew edit nginx 更改编译参数,在 args 段最后加上,--with-,brew install nginx --build-from-source从源码开始安装 nginx , 默认情况下会采用 bottle 方式安装,bottle 方式就是安装已编译好的二进制包 ~~~ homebrew本身就是一个git仓库。使用homebrew安装软件包时,会自动先下载软件包,然后解压安装,但有时候下载会卡住,或者很慢,这个时候你可以通过其他工具先将所需的软件包下载 下来,注意版本一定要对应,homebrew放置软件包源码的路径为/Library/Caches/Homebrew/,只要你将所需要的软件包下载正 确的版本,放置在此目录下,那么再使用brew install xxx的时候,brew就能直接安装了,有时候brew install xxx卡在下载界面,这招很管用 ~~~ Making a formula is easy. Just brew create URL and then brew install $FORMULA (perhaps with --debug --verbose). Basically, a formula is a Ruby file. You can place it anywhere you want (local or remote) and install it by pointing to the file or URL. formula文件位置:/usr/local/Library/Formula/foo.rb 存放安装工具的rb文件 Packages are installed according to their formulae, which live in $(brew --repository)/Library/Formula. Check some out. You can view any formula at anytime; e.g. brew edit wget. ~~~ ## 注意 数据存放目录为/usr/local/var 如果一些软件升级,可能要把这个目录下对应程序的文件夹删除,重新创建才可以 比如mongo3升级到4 日志存放位置/usr/local/var/log,出问题可以到这边看 # LaunchRocket https://github.com/jimbojsb/launchrocket 这是用来管理brew安装的软件的图形界面 ## 注意 在Mac OS X 10.11系统以后,/usr/local/等系统目录下的文件读写是需要系统root权限的,以往的Homebrew安装如果没有指定安装路径,会默认安装在这些需要系统root用户读写权限的目录下,导致有些指令需要添加sudo前缀来执行,比如升级Homebrew需要: ~~~ $ sudo brew update ~~~ 如果你不想每次都使用sudo指令,你有两种方法可以选择: 1. 对/usr/local 目录下的文件读写进行root用户授权 ~~~ $ sudo chown -R $USER /usr/local 示例: $ sudo chown -R wentianen /usr/local ~~~ 2. 安装Homebrew时对安装路径进行指定,直接安装在不需要系统root用户授权就可以自由读写的目录下 ~~~ <install path> -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ~~~ # tap 可以关注的Taps ~~~ homebrew/php:和php关联的formulae denji/nginx: nginx modules 的tap InstantClientTap/instantclient: Oracle客户端实例的tap petere/postgresql: 允许同时安装多个PostgreSQL版本的tap dunn/emacs: Emacs package的tap sidaf/pentest: 渗透测试工具的tap osrf/simulation: 机器仿真的tap ~~~ # brew更换源 ~~~ https://lug.ustc.edu.cn/wiki/mirrors/help/brew.git ~~~ # brew cask ## 简介 brew cask 是在brew 的基础上一个增强的工具,用来安装Mac上的Gui程序应用包(.dmg/.pkg), 比如qq、chrome、xun lei等。它先下载解压到统一的目录中(/opt/homebrew-cask/Caskroom),省掉了自己去下载、解压、拖拽(安装)等蛋疼步骤,同样,卸载相当容易与干净。然后再软链到~/Applications/ 目录下, 一气呵成。非常方便,而且还包含很多在 AppStore 里没有的常用软件 好,我们来来下一个iTerm来看看: ## 安装 ~~~ brew cask install iTerm ~~~ 简单的2条命令就可以了,非常之快,它会讲软件安装到/opt/homebrew-cask/Caskroom目录下,并且软链到~/Applications了,这样就能在应用程序里找到它。就能方便的使用。 ## 常用软件 [https://www.jianshu.com/p/f8444a7658a3](https://www.jianshu.com/p/f8444a7658a3) ## 常用命令 下面说一些常用到的各种命令。 ~~~ brew cask install qq # 下载安装软件 brew cask uninstall qq # 卸载软件 brew cask search qq # 模糊搜索软件,如果不加软件名,就列出所有它支持的软件 brew cask info qq # 显示这个软件的详细信息,如果已经用cask安装了,也会显示其安装目录信息等 brew cask list # 列出本机按照过的软件列表 brew cask cleanup # 清除下载的缓存以及各种链接信息 brew update && brew upgrade brew-cask # 更新cask自身 ~~~ 或许你已经注意到了,好像并没有提供更新用cask安装软件命令啊。的确是没有。是的。目前 homebrew-cask 并没有命令直接更新所有已安装的软件,软件更新主要是通过软件自身的更新流程,不过也可以通过以下所示命令先删除 APP,再重新安装。 ~~~ brew cask uninstall APP && brew cask install APP ~~~ 软件同样也会安装到/opt/homebrew-cask/Caskroom目录下。 对过时的升级 ~~~ https://github.com/buo/homebrew-cask-upgrade ~~~ 大多数通过 Cask 安装的软件都自带更新选项,如果没有该选项,用户依旧可以通过终端进行更新,在终端中输入brew tap buo/cask-upgrade,然后再输入下段命令即可更新全部应用: ~~~ brew cu ~~~ ## LaunchRocket 安装LaunchRocket就要用到我刚刚提的brew cask,用如下命令即可: ~~~ brew tap jimbojsb/launchrocket brew cask install launchrocket ~~~ 之后LauchRocket设置页面找到(如下图所示),它的启动项同时也保存在/opt/homebrew-cask/Caskroom/launchrocket目录中。 ![](https://box.kancloud.cn/4559e993fd1318d0753541132cd791e5_1200x1190.jpg) # 需要github的token 去这个网站 https://github.com/settings/tokens/new?scopes=gist,public_repo&description=Homebrew 把勾勾全部勾上,然后生成 然后终端 export HOMEBREW_GITHUB_API_TOKEN=你copy的token字符串 就好了 # 安装php 新版本 https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions ~~~ // 更新brew $ brew update // 添加三方仓库 $ brew tap homebrew/dupes $ brew tap homebrew/versions $ brew tap homebrew/homebrew-php //卸载仓库 brew untap homebrew/nginx // 如果没有该目录,则创建 $ sudo mkdir /usr/local/var $ sudo chmod 777 /usr/local/var $ sudo mkdir /usr/local/sbin/ $ sudo chown -R <username>:<group> /usr/local/sbin/ // 安装php7前,先关闭老版本的PHP55,并解除/usr/local/bin/php软链接 $ brew unlink php55 // 我们可以通过brew options命令来查看安装选项 $ brew options php70 // 开始安装PHP7 $ brew install php70 (--with-apache 假如需要生成apache的libphp7.so,则添加该安装选项) // 查看php版本 $ php -v PHP 7.0.13 (cli) (built: Dec 5 2016 14:49:24) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies ~~~ https://laravel-china.org/topics/3373/mac-install-lnmp-environment ## php多版本管理 看这个就行了phpbrew http://rmingwang.com/php-version-management-phpenv.html # mac上nginx nginx设置开机启动 ~~~ ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents launchctl load ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist ~~~ nginx默认监听80端口,而mac系统,只有root用户才可以打开<1024的监听端口,所以,这里得设置额外的权限: ~~~ sudo chown root:wheel /usr/local/Cellar/nginx/1.6.0_1/bin/nginx // 这里的版本号换成你自己的 sudo chmod u+s /usr/local/Cellar/nginx/1.6.0_1/bin/nginx // 这里的版本号换成你自己的 ~~~ 如果你遇到了这样的问题 ~~~ 2018/02/21 11:45:55 [emerg] 5931#0: open() "/usr/local/var/run/nginx.pid" failed (13: Permission denied) ~~~ 那么就要按照上面说的做了 ~~~ sudo cp -v /usr/local/opt/nginx/*.plist /Library/LaunchDaemons/ sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.nginx.plist ~~~ ~~~ sudo chown :staff /var/www sudo chmod 775 /var/www ~~~ # 一键脚本安装 这个是mac的 https://php-osx.liip.ch 题外话 php72被替换成php 以前启动命令是 ~~~ /usr/local/opt/php72/sbin/php-fpm --nodaemonize --fpm-config /usr/local/etc/php/7.2/php-fpm.conf ~~~ 变成了 ~~~ /usr/local/opt/php/sbin/php-fpm --nodaemonize ~~~ # linux安装brew ~~~ git clone https://github.com/Linuxbrew/brew.git ~/.linuxbrew ~~~ 还得把homebrew-core克隆下来,里面有一些核心的软件安装formula,比如gcc。 ~~~ git clone https://github.com/Linuxbrew/homebrew-core ~/.linuxbrew/Library/Taps/homebrew ~~~ 配置一下bash_profile文件 ~~~ export PATH="$HOME/.linuxbrew/bin:$PATH" export MANPATH="$HOME/.linuxbrew/share/man:$MANPATH" export INFOPATH="$HOME/.linuxbrew/share/info:$INFOPATH" ~~~ 然后source一下就可以用了。 装软件 装一个oracle的jdk ~~~ brew install jdk ~~~ 我还找到一个仓库里面有很多开发工具,比如smartgit, idea等等软件https://github.com/athrunsun/homebrew-linuxbinary ~~~ brew tap athrunsun/linuxbinary ~~~ 把要装的都给装了一个遍 ~~~ brew install smartgit brew install intellij-idea-ce brew install lantern brew install proxychains-ng brew install skype brew install telegram brew install android-studio brew install pycharm-ce brew install sublime-text brew install telegram brew install unetbootin brew install shadowsocks-go-local brew install smart-synchronize ~~~ 可惜没有看到leanote、atom、firefox等软件。 linuxbrew相关的网址 https://github.com/Linuxbrew/brew https://linuxbrew.sh/ https://github.com/Linuxbrew/brew/tree/master/docs#readme https://www.digitalocean.com/community/tutorials/how-to-install-and-use-linuxbrew-on-a-linux-vps # homebrew-bundle 1. Mac 上非常常用的包管理器 Homebrew, 我们经常用它来安装其他的软件包 2. 还有 Homebrew-cask, 可以用来安装图形界面的 App 3. homebrew-bundle 类似 node 中的 package.json 或者 Cocoapods 中的 Podfile 4. 我们将需要的包和 App, 声明在一个 Brewfile 中, 然后执行 brew bundle 即可安装所有包 备份列表包含: 1. brew tap中的软件库 2. brew 安装的命令行工具 3. brew cask 安装的 App 4. Mac App Store 安装的 App ~~~ # 执行brew bundle dump备份命令 brew bundle dump --describe --force --file="~/Desktop/Brewfile" # 参数说明 --describe:为列表中的命令行工具加上说明性文字。 --force:直接覆盖之前生成的Brewfile文件。如果没有该参数,则询问你是否覆盖。 --file="~/Desktop/Brewfile":在指定位置生成文件。如果没有该参数,则在当前目录生成 Brewfile 文件。 # 该命令会在桌面上生成Brewfile文件,双击打开查看,其内容类似于 ## 该部分是 brew 中的 tap,相当于一个个软件库 tap "homebrew/bundle" tap "homebrew/cask" ## 该部分是 brew 安装的命令行工具 # Mac App Store command-line interface brew "mas" # UNIX shell (command interpreter) brew "zsh" # Fish shell like syntax highlighting for zsh brew "zsh-syntax-highlighting" ## 该部分是 brew cask 安装的 app cask "mounty" cask "dteoh/sqa/slowquitapps" ## 该部分是 Mac App Store 安装的 app mas "ting_en", id: 734383760 mas "Xcode", id: 497799835 ~~~ **homebrew-bundle 如何恢复** > 通过备份的软件列表文件批量安装软件 ~~~ # 安装 Homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" # 安装 mas brew install mas # 批量安装软件 brew bundle --file="~/Desktop/Brewfile" # 这里分享一份自己的真实备份文件 wangao@wangao-MAC ~/Desktop # cat Brewfile tap "buo/cask-upgrade" tap "dteoh/sqa" tap "homebrew/bundle" tap "homebrew/cask" tap "homebrew/core" tap "homebrew/services" # GNU compiler collection brew "gcc" # Distributed revision control system brew "git", link: false # Improved top (interactive process viewer) brew "htop" # Mac App Store command-line interface brew "mas" # MySQL database connector for C applications brew "mysql-connector-c" # Platform built on V8 to build network applications brew "node" # Perl compatible regular expressions library brew "pcre" # Password generator brew "pwgen" # Interpreted, interactive, object-oriented programming language brew "python" # Interpreted, interactive, object-oriented programming language brew "python@2" brew "sshpass" # User interface to the TELNET protocol (built from macOS Sierra sources) brew "telnet" # Display directories as trees (with optional color/HTML output) brew "tree" # Internet file retriever brew "wget" # UNIX shell (command interpreter) brew "zsh" # Fish shell like syntax highlighting for zsh brew "zsh-syntax-highlighting" cask "java" cask "mounty" cask "xquartz" cask "dteoh/sqa/slowquitapps" mas "GarageBand", id: 682658836 mas "iMovie", id: 408981434 mas "Keynote", id: 409183694 mas "Microsoft Remote Desktop", id: 1295203466 mas "Numbers", id: 409203825 mas "Pages", id: 409201541 mas "ting_en", id: 734383760 mas "Xcode", id: 497799835 ~~~ # brew安装指定版本es **查看软件包安装来源** ~~~ $ brew info ffmpeg ~~~ 执行上述命令您会得到如下信息: ~~~ $ From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/ffmpeg.rb ~~~ 你看到了什么?github(版本控制) 还有 \*.rb(安装文件) **Github中查看rb文件历史提价(版本)信息** 复制链接到地址栏:[https://github.com/Homebrew/h...](https://github.com/Homebrew/homebrew-core/blob/master/Formula/ffmpeg.rb) 可以看到如下信息: ~~~ url "https://ffmpeg.org/releases/ffmpeg-4.0.1.tar.xz" sha256 "605f5c01c60db35d3b617a79cabb2c7032412be243554602eeed1b628125c0ee" ~~~ 可以看到当前版本就是: ffmpeg-4.0.1 **接着,在Github上查看历史提交信息,按照如下操作依次点击(熟悉github的同学应该已经看透了秘密):** 1. **点击 History**: 查看历史提交列表 2. **查找 FFmpeg: 3.4.2,并点击**: 找到我们需要的版本 3. **点击 View**:查看当前版本下的ffmpeg.rb完整文件 4. **点击 Raw**: 查看ffmpeg.rb源文件,复制地址栏网址(这一步是不是不需要了,3中的网址应该也可以?我没有尝试) **安装 ffmpeg-3.4.2 版本软件包** > ffmpeg:3.4.2 对应的ffmpeg.rb文件网址:[https://raw.githubusercontent...](https://raw.githubusercontent.com/Homebrew/homebrew-core/18b47ee7e250f4e0447dc6454d9189d1fae0c6a5/Formula/ffmpeg.rb) **执行安装** ~~~ $ brew install https://.../ffmpeg.rb(上面复制的网址) ~~~