1 Homebrew 概述

  brew 又叫Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,类似ubuntu系统下的apt-get的功能.
  homebrew本身就是一个git仓库。使用homebrew安装软件包时,会自动先下载软件包,然后解压安装,但有时候下载会卡住,或者很慢,这个时候你可以通过其他工具先将所需的软件包下载 下来,注意版本一定要对应,homebrew放置软件包源码的路径/Library/Caches/Homebrew/,只要你将所需要的软件包下载正确的版本,放置在此目录下,那么再使用brew install xxx的时候,brew就能直接安装了,有时候brew install xxx卡在下载界面,这招很管用。

1.1 名词概念

brew(意为酿酒)的命名很有意思,全部都使用了酿酒过程中采用的材料/器具,名词对应以下的概念:
Tap (水龙头)程序包的源
Bottle (瓶子)编译打包好的程序包
Formula(配方) 程序包定义,本质上是一个rb文件.代指软件包名,如git(实际操作: brew install git)
Keg (桶)程序包的安装路径
Cellar (地窖)所有程序包(桶)的根目录
最终编译安装完毕的程序就是一桶酿造好的酒。更详细的信息参考Homebrew的官方Cookbook

2 Homebrew安装

  brew是一个mac下的由ruby开发的包管理系统,其官网是http://brew.sh。你只要在你的终端中执行
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
便可将其安装完成。

启动web服务器,可以通过浏览器访问http://localhost:4567/ 来同网页来管理包 brew server
软件安装目录 /usr/local/Cellar/

# 安装完之后输入命令
brew update # 即可获得更新并切换到速度最快的源上,相当于更新Git仓库

2.2 Homebrew常见的流程是:

增加一个程序源(新增一个水龙头) brew tap homebrew/php
更新程序源 brew update
安装程序包(按照配方酿酒)
查看配置 brew config 可以看到程序包默认安装在/usr/local/Cellar下 (酒桶放在地窖内)

3 常用命令

brew help |  brew -h         # 查看brew的帮助
brew home    php55                  #访问php5.5官方网站
brew tap                        # 查看安装源列表
brew list                       # 显示已经安装软件列表
brew tap josegonzalez/php   # 增加一个程序源
brew untap homebrew/php         # 去掉程序源

安装前准备

brew options php55                   #查看php5.5安装选项
brew deps                   # 显示包依赖
brew search git             # 搜索

安装

brew install git             # 安装软件
brew remove/uninstall git       # 卸载软件

## 查看软件安装信息

brew info mysql      # 主要看具体的信息,比如目前的版本,依赖,安装后注意事项等

更新

brew update              # 更新Git库/Formula(软件包),对已经安装并有更新的软件用*标明 - 这会更新 Homebrew 自己,并且使得接下来的两个操作有意义
brew outdated           # 看一下可以升级的软件
brew upgrade;       # 升级所有软件
brew upgrade git    # 如果不是所有的都要升级,那就这样升级指定的

删除
brew cleanup git # 单个软件删除
brew cleanup # 直接升级完然后清理干净/清理不需要的版本极其安装包缓存
服务

brew services list                   #查看系统通过 brew 安装的服务
brew services cleanup               #清除已卸载无用的启动配置文件
brew services restart php55         #重启php-fpm

3.1 brew安装目录说明

Homebrew 将软件包分装到单独的目录(/usr/local/Cellar),然后 symlink 到 /usr/local 中。
/usr/local/Cellar # 用户安装目录
/usr/local/opt # 用户安装目录程序软链到此目录

4 更换Homebrew的更新源 csdn

4.1 更新源的机制

Homebrew的更新源由三部分组成:本体(brew.git)、核心(homebrew-core.git)以及二进制预编译包(homebrew-bottles)。
  在很多教程中,只会提及到更换本体,而未涉及到核心与二进制预编译包的更换。这样实际上效果是不完全的(尽管这样也无法做到完全,毕竟有一些软件包的地址是不被收录的,只能从它们提供的链接处下载)。
  从.git的后缀名可以看出,Homebrew的更新源是以Git仓库的形式存在的,这便是为什么需要用到Git的原因。也正是如此,使得可以对其进行克隆,成为新源。

4.2 更新源的选择

默认官方的更新源都是存放在GitHub上的,这也是中国大陆用户访问缓慢的原因,一般来说我们会更倾向选择国内提供的更新源,在此推荐中国科大以及清华大学提供的更新源,因为它们能够完整以上源组成的三个部分。并且在此感谢他们为大家提供的服务。

4.3 替换更新源

# 替换brew.git:
$ cd “$(brew --repo)”
# 中国科大:
$ git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
# 清华大学:
$ git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git

# 替换homebrew-core.git:
$ cd “$(brew --repo)/Library/Taps/homebrew/homebrew-core”
# 中国科大:
$ git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
# 清华大学:
$ git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git

# 替换homebrew-bottles:
# 中国科大:

$ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile
$ source ~/.bash_profile

# 清华大学:

$ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.bash_profile
$ source ~/.bash_profile

# 应用生效:

$ brew update

以上在中国科大和清华大学任选其一即可,在使用其他源的时候,最好先尝试访问其链接看看是否健在,并且因为历史原因,最初的brew.git是叫homebrew.git的,而现在部分更新源早已随官方更名,所以切记要验证。
  并且没有严格规定必须三个组成部分必须是来自同一提供,可随性发挥。
  且Homebrew在早期版本中更新源的是在/usr/local目录下的,而现在是在/usr/local/Homebrew,不过应该都是可以使用"$(brew --repo)"来自动指向目录的,所以无需理会。
  如果你之前折腾过不少导致你的Homebrew有点问题,那么可以尝试使用如下方案:
# 诊断Homebrew的问题:
$ brew doctor

# 重置brew.git设置:
$ cd “$(brew --repo)”
$ git fetch
$ git reset --hard origin/master

# homebrew-core.git同理:
$ cd “$(brew --repo)/Library/Taps/homebrew/homebrew-core”
$ git fetch
$ git reset --hard origin/master

# 应用生效:
$ brew update

4.4 重置更新源
  所谓有进则有退,在某些时候也有换回官方源的需求。
# 重置brew.git:
$ cd “$(brew --repo)”
$ git remote set-url origin https://github.com/Homebrew/brew.git

# 重置homebrew-core.git:
$ cd “$(brew --repo)/Library/Taps/homebrew/homebrew-core”
$ git remote set-url origin https://github.com/Homebrew/homebrew-core.git
  至于homebrew-bottles,本质上作为一个环境变量的存在,之前的命令也只是将其写入到/usr/.bash_profile中,并且只是在文件尾部添加一行。所以之前的命令不推荐重复执行,在未掌握相关命令技巧的前提下,我推荐直接去修改.bash_profile文件:

当然这里的主题是重置更新源,所以我们直接选择删除环境变量HOMEBREW_BOTTLE_DOMAIN,使其成为默认值即可。
  当然,最后不要忘记$ brew update进行应用。

4.5 后记

在完成更新源的更换后,我们可以使用$ brew upgrade将现有的软件进行更新至最新版本,这样便能很直接的看出速度上的变化了。最后不要忘记$ brew cleanup将旧有的软件安装包进行清理。
--------------------- 本文来自 無雙草泥馬 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u010275932/article/details/76080833?utm_source=copy

5 Launchctl

Launchctl :控制OS X系统里的启动进程(launch)

5.1 执行定时脚本|设置开机启动步骤

(1)编写执行脚本
通常brew在安装软件时brew为我们自动生成。
(2)去对应的目录下建立plist文件
(3)加载服务

5.2 plist指定目录介绍

~/Library/LaunchAgents 由用户自己定义的任务项
/Library/LaunchAgents 由管理员为用户定义的任务项

~/Library/LaunchDaemons 由管理员定义的守护进程任务项
~/System/Library/LaunchAgents 由Mac OS X为用户定义的任务项
说明:Agents文件夹下的plist是需要用户登录后,才会加载的,而Daemons文件夹下得plist是只要开机,可以不用登录就会被加载

5.3 加载/卸载服务

cd 进入指定 plist 文件 目录
launchctl load ***.plist #加载
launchctl unload ***.plist #取消
launchctl list #查看服务

launchctl load -w **.pist #设置开机启动并立即启动改服务
launchctl load **.pist #设置开机启动但不立即启动服务

5.4 对服务设置别名方便操作

vim ~/.bash_profile   #编辑添加如下脚本
alias nginx.start='launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist'
alias nginx.stop='launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist'
alias nginx.restart='nginx.stop && nginx.start'
alias php-fpm.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist"
alias php-fpm.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist"
alias php-fpm.restart='php-fpm.stop && php-fpm.start'
alias mysql.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist"
alias mysql.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist"
alias mysql.restart='mysql.stop && mysql.start'
alias redis.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist"
alias redis.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist"
alias redis.restart='redis.stop && redis.start'
alias memcached.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist"
alias memcached.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist"
alias memcached.restart='memcached.stop && memcached.start'

homebrew介绍相关推荐

  1. mac 查看环境变量_Mac开工利器Homebrew介绍

    前言 最近好多测试小伙伴悄然换上了MAC,下面介绍一款攻城狮们macOS下都在用的神器-Homebrew. 一.Homebrew简介 Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装 ...

  2. 【Homebrew】Homebrew 介绍与安装

    目录 一. 介绍 1.1 啥是 Homebrew 呢? 1.2 Homebrew 能干啥 ? 1.3 Homebrew 简单命令 二. 安装 2.1 WSL 安装 2.2 切换源 2.3 配置环境变量 ...

  3. Homebrew介绍和使用

    文章目录 前言 一.Homebrew是什么? 二.HomeBrew安装 三.安装Git 四.HomeBrew换源 中科大(建议使用) 阿里云 清华 腾讯 初始默认镜像(国外源) 五.HomeBrew基 ...

  4. [note] Homebrew的介绍、安装方法与常用命令整理

    Homebrew介绍: Homebrew是Mac下一款软件包管理器(软件包管理系统:在计算机中自动安装.配置.卸载和升级软件包的工具组合),可以简化macOS上软件的安装管理过程.Homebrew C ...

  5. MacOS安装Homebrew与Oh-My-Zsh

    写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...

  6. Homebrew是什么?以及使用

    一.Homebrew是什么?Homebrew的安装和使用 Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装.卸载.更新.查看.搜索等很多实用的功能.简单的一条指令,就可以实现包管理, ...

  7. Homebrew安装与配置

    文章目录 一. Homebrew介绍 二. 安装Homebrew 三. 更换镜像 四. Brew命令 一. Homebrew介绍 Homebrew是一款macOS(或 Linux)软件包的管理工具.主 ...

  8. 【iOS工具】rvm、Ruby环境和CocoaPods安装使用及相关报错问题解决(2016 12 15 更新)...

    〇.前言 在iOS开发中 [CocoaPods](https://github.com/CocoaPods/CocoaPods) 作为库依赖管理工具就是一把利器. 有了 CocoaPods 则无需再通 ...

  9. mac下安装nginx和php

    From: http://www.jb51.net/article/42715.htm mac下使用homebrew安装安装.配置nginx.mysql.php-fpm的方法. 一.前话: 1.1.环 ...

最新文章

  1. HDU 4609 3-idiots FFT
  2. php调用另一个页面内容,php怎么实现调用另一个页面
  3. FPGA较传统CPU强在哪里?
  4. Spring Security 实战干货:路径Uri中的 Ant 风格
  5. 在 Scale Up 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(145)
  6. mysql制作html静态网页6_将数据库中的所有内容生成html静态页面的代码
  7. HTML5地区自转代码
  8. 计算机如何输入ip地址,电脑如何切换ip地址_怎么让电脑切换ip地址-win7之家
  9. 前端基础牢记的一些操作-Github仓库管理
  10. putty连接ubuntu虚拟机缓慢问题的解决
  11. php 通过ip获取省份,通过IP获取用户地理位置省份城市的接口使用
  12. 自动点击android按钮,Android实现自动点击无障碍服务功能的实例代码
  13. 工作那些事(十)谈谈技术主管(总监)
  14. 王德明——全球旅行达人,走遍世界阅尽繁华,为何他独爱于此?
  15. sinx泰勒展开_函数极限的最强解法——泰勒公式!!!
  16. windows下Typhon程序使用Hudson完成自动编译
  17. html5 canvas详解 pdf,html5 canvas教程 pdf
  18. Matplotlib学习笔记(第一章)
  19. 【ES6闯关】Promise堪比原生的自定义封装then、catch、resolve、reject...
  20. php视频播放链提取,从PHP获取Vimeo的直接链接视频

热门文章

  1. anger fury indignation resentment rage outrage等表示愤怒的词
  2. 为知笔记linux版输入中文
  3. KVC\KVO 简介
  4. vue-json-excel
  5. 在openjdk中加入宋体
  6. opencv+Recorder︱OpenCV 中的 Canny 边界检测+轮廓、拉普拉斯变换
  7. js实现html标签、文本的隐藏、显示、删除,添加
  8. Android 友盟分享图片太大打开微信慢
  9. 神经影像信号处理总成(EEG、SEEG、MRI、CT)
  10. 如何获取bssid_如何获得所有wifi接入点的BSSID?