当前位置:   article > 正文

homebrew介绍

homebrew

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 		# 去掉程序源
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

安装前准备

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

安装

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

## 查看软件安装信息

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

更新

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

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

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

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
  • 1
  • 2

# 清华大学:

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

# 应用生效:

$ brew update
  • 1

以上在中国科大和清华大学任选其一即可,在使用其他源的时候,最好先尝试访问其链接看看是否健在,并且因为历史原因,最初的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'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/414546
推荐阅读
相关标签
  

闽ICP备14008679号