Total Pageviews

Saturday, 12 September 2015

在mac中,安装brew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
--------------
粘贴上面的命令在mac的终端运行即可。中途如果提示要安装什么,点击出现的“安装”按钮。
from http://brew.sh
参考 https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Installation.md#installation
相关帖子:
http://briteming.blogspot.lt/2013/02/homebrew-osx-macports.html
http://briteming.blogspot.lt/2015/09/homebrew.html 

(给homebrew加上代理)

--------------

Homebrew的安装与使用

Mac OS X是基于Unix的操作系统,可以安装大部分为Unix/Linux开发的软件。然而,如果只是以使用为目的,对每个软件都进行手工编译不是很方便,也不利于管理已安装的软件,于是出现了类似于Linux中APT、Yum等类似的软件包管理系统,其中最著名的有MacPorts、Fink、Homebrew等。

我曾经是MacPorts的使用者,但了解Homebrew之后,立即“弃暗投明”了。其实MacPorts也是一个很不错的解决方案,除了一个实在让我头疼的特性。MacPorts有个原则,对于软件包之间的依赖,都在MacPorts内部解决(/opt/local),无论系统本身是否包含了需要的库,都不会加以利用。这使得MacPorts过分的庞大臃肿,导致系统出现大量软件包的冗余,占用不小的磁盘空间,同时稍大型一点的软件编译时间都会难以忍受。

而Homebrew的原则恰恰相反,它尽可能地利用系统自带的各种库,使得软件包的编译时间大为缩短;同时由于几乎不会造成冗余
软件包的管理也清晰、灵活了许多。Homebrew的另一个特点是使用Ruby定义软件包安装配置(叫做formula),定制非常简单。

至于Fink,由于并未安装使用过,不加讨论。(从互联网上的消息看,Fink由于维护人手的问题,软件包的更新不是很及时。)于我而言,Homebrew已经足够完善,除非发现重大的问题或者出现新的具有突破性的竞争对手,否则我没兴趣折腾别的软件包管理系统了。

下面说说Homebrew的安装与使用。

Homebrew的安装

首先确保你的系统满足如下要求:

基于Intel CPU
操作系统为Mac OS X 10.5 Leopard或更高版本
已安装版本管理工具Git(Mac OS X 10.7 Lion已经预安装)
已安装Xcode开发工具1
已安装Java Developer Update2
注1:Xcode 4.3中,命令行编译工具是可选安装,需要在Preferences > Downloads中激活。
注2:可选,Homebrew本身不依赖于Java,只有部分软件包的安装需要Java支持。

Homebrew的安装非常简单,在终端程序中输入以下命令即可。

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

由于Homebrew的安装地址可能变化,请到官方网站-http://mxcl.github.io/homebrew/index_zh-cn.html查看最新的安装方法。

安装过程需要输入root口令。

Homebrew的使用

Homebrew的可执行命令是brew,其基本使用方法如下(以wget为例)。

查找软件包
brew search xyz


安装软件包
brew install wget

列出已安装的软件包
brew list


删除软件包
brew remove wget

查看软件包信息
brew info wget

列出软件包的依赖关系
brew deps wget

更新brew:
brew update

列出过时的软件包(已安装但不是最新版本)
brew outdated

更新过时的软件包(全部或指定)
brew upgrade 或 brew upgrade wget

定制自己的软件包

如果自己需要的软件包并不能在Homebrew中找到,怎么办呢,毕竟Homebrew是一个新生项目,不可能满足所有人的需求。当然,我们可以自行编译安装,但手工安装的软件包游离于Homebrew之外,管理起来不是很方便。

前文说过,Homebrew使用Ruby实现的软件包配置非常方便,下面简单谈一谈软件包的定制(假定软件包名称是bar,来自foo站点)。

首先找到待安装软件的源码下载地址
http://foo.com/bar-1.0.tgz

建立自己的formula
brew create http://foo.com/bar-1.0.tgz

编辑formula,上一步建立成功后,Homebrew会自动打开新建的formula进行编辑,也可用如下命令打开formula进行编辑。
brew edit bar
Homebrew自动建立的formula已经包含了基本的configure和make install命令,对于大部分软件,不需要进行修改,退出编辑即可。

输入以下命令安装自定义的软件包
brew install bar

关于Homebrew的其它功能,比如将自定义软件包提交到官方发布等,请参考Homebrew项目的主页及其Man Page。你将发现Homebrew不仅是“家酿”,更是“佳酿”。

from http://linfan.info/blog/2012/02/25/homebrew-installation-and-usage/

 comments:

1)它会把/usr/local从root所有权更换为admin,这点你怎么看?

我认为很好,这样以普通用户权限就能安装各种应用程序。与Linux不同,很少有程序会安装到这个目录中,所以相当于brew独占的,而brew不替换系统文件,仅仅通过设置环境变量使自身安装的程序生效,还是很安全的。 

2)我用了这个安装指令:
/usr/bin/ruby -e "$(/usr/bin/curl -fsSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)"

-----------------------------------------
The missing package manager for OS X 

Homebrew

Features, usage and installation instructions are summarised on the homepage.

What Packages Are Available?

  1. Type brew search for a list.
  2. Or visit braumeister.org to browse packages online.
  3. Or use brew search --desc <keyword> to browse packages from the command line.

More Documentation

brew helpman brew or check our documentation.

Troubleshooting

First, please run brew update and brew doctor.
Second, read the Troubleshooting Checklist.
If you don't read these it will take us far longer to help you with your problem.

Security

Please report security issues to security@brew.sh.
This is our PGP key which is valid until May 24, 2017.

Who Are You?

Former maintainers with significant contributions include Jack NagelAdam Vandenberg and Homebrew's creator: Max Howell.
from https://github.com/Homebrew/brew
-------------
Please note: Homebrew is not 1.0 yet. Generally it works well, but when it doesn’t we’d hope you report the bug.

Troubleshooting

First, please run brew update (twice) and brew doctor.
Second, please read the Troubleshooting Checklist.
If you don’t follow these steps it will take us far longer to help you with your problem.
However! Fixing build issues is easier than you think: try brew edit $FORMULA and see how you fare.

Contributing

Community Forums

from https://github.com/Homebrew/brew/tree/master/share/doc/homebrew#readme
---------

http://www.brewformulas.org/ 
--------------------------------------

Homebrew 的安装与使用

OS X 下还有款包管理工具为 Homebrew,安装方法也很简单。

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

好了,安装完毕,Homebrew 的使用方法也很简单。

基本用法

  • brew search package-name # 搜索软件包
  • brew install package-name # 安装软件包
  • brew remove package-name # 移除软件包
  • brew cleanup package-name # 清除旧包
  • brew list # 列出已安装的软件包
  • brew update # 更新 Homebrew
  • brew upgrade # 升级软件包
  • brew home package-name # 用浏览器打开
  • brew info package-name # 显示软件内容信息
  • brew deps package-name # 显示包的依赖
  • brew server # 启动 web 服务器,可以通过浏览器访问 http://localhost:4567 通过网页来管理包
  • brew -h # 帮助
  • brew versions package-name # 列出软件包的版本

具体的用法可以 man brew

brew search package-name

这里主要说下,brew search package-name 时,有时会出现

Error: GitHub API rate limit exceeded for ip. See http://developer.github.com/v3/#rate-limiting for details. You may want to create an API token: http://github.com/settings/applications and then set HOMEBREW_GITHUB_API_TOKEN.

提示已经很明确了,按照说明照做,注册个 github 账号,打开页面 http://github.com/settings/applications. 点击 Create new token,填入 Token descrption 后,点击 Create Token:


在家目录的 ~/.bash_profile 中添加如下你申请到的 token

if [ -f /usr/local/bin/brew ]; then
    export HOMEBREW_GITHUB_API_TOKEN=xxxxxxxxxx
fi

最后再 . ~/.bash_profile 更新下你的环境变量。

多版本共存

另外一个,安装不同版本的 package-name的技巧,比方要安装不同版本的 htop

$ brew versions htop                        # 显示 htop 的历史版本
Warning: brew-versions is unsupported and may be removed soon.
Please use the homebrew-versions tap instead:
  https://github.com/Homebrew/homebrew-versions
  0.8.2.2  git checkout 43b7f5b Library/Formula/htop-osx.rb
  0.8.2.1  git checkout 8e24412 Library/Formula/htop-osx.rb
  2012-0   git checkout 174acd6 Library/Formula/htop-osx.rb
  0.8.2.1-2012-04-18 git checkout 258c649 Library/Formula/htop-osx.rb

$ cd /usr/local
$ git checkout -b htop0.8.2.1 8e24412       # checkout 出历史版本
Switched to a new branch 'htop0.8.2.1'
^_^ /usr/local $ git branch
* htop0.8.2.1
  master
$ brew unlink htop
Unlinking /usr/local/Cellar/htop-osx/0.8.2.2... 4 links removed

^_^ /usr/local $ brew install htop          # 安装旧版本
==> Installing htop-osx
==> Downloading https://github.com/max-horvath/htop-osx/archive/0.8.2.1-2013-03-31.tar.gz

^_^ /usr/local $ ls /usr/local/Cellar/htop-osx/
0.8.2.1 0.8.2

^_^ /usr/local $ htop --version
htop 0.8.2.1 - (C) 2004-2008 Hisham Muhammad.
Released under the GNU GPL.

^_^ /usr/local $ brew switch htop 0.8.2.2   # 切换 htop 版本
Cleaning /usr/local/Cellar/htop-osx/0.8.2.1
Cleaning /usr/local/Cellar/htop-osx/0.8.2.2
4 links created for /usr/local/Cellar/htop-osx/0.8.2.2
^_^ /usr/local $ htop --version
htop 0.8.2.2 - (C) 2004-2008 Hisham Muhammad.
Released under the GNU GPL.

^_^ /usr/local $ brew switch htop 0.8.2.1   # 删除某版本的话,先版本切换,再删除,最后版本切换回来
Cleaning /usr/local/Cellar/htop-osx/0.8.2.1
4 links created for /usr/local/Cellar/htop-osx/0.8.2.1
^_^ /usr/local $ brew remove htop
Uninstalling /usr/local/Cellar/htop-osx/0.8.2.1...

其实就是 Homebrew 对 git 分支的灵活应用。

删除package-name时,删除依赖

$ brew remove package-name
$ brew rm $(join <(brew leaves) <(brew deps package-name))

Homebrew Cask

通过 homebrew cask 来安装 app,首先是安装

$ brew tap caskroom/cask && brew install brew-cask

默认 homebrew cask 安装 app 至 /opt/homebrew-cask/Caskroom 下,并链接到 ~/Applications 目录。

配置下,让 app 链接至 ~/My Applications/

$ mkdir ~/My\ Applications
$ touch ~/My\ Applications/.localized
$ echo 'export HOMEBREW_CASK_OPTS="--appdir=~/My\ Applications"' >> ~/.bash_profile
$ source ~/.bash_profile

然后随便安装了

$ brew cask search firefox
$ brew cask install firefox