Mac上Homebrew的使用——Homebrew 使 OS X 更完整

0 Homebrew是啥?

“Homebrew installs the stuff you need that Apple didn’t.——Homebrew 使 OS X 更完整”。

Homebrew的官网[1](多语言版本)简单明了地介绍了如何安装和使用这个工具,并提供了自己的Wiki。

1 安装Homebrew

brew的安装很简单,使用一条ruby命令即可,Mac系统上已经默认安装了ruby。

gerryyang@mba :bin$ruby --version
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]

关于安装brew的详细说明可以参考其github上的wiki说明[2]

"
Installation

The suggested and easiest way to install Homebrew is on the homepage. We don’t duplicate it here because it is asecurity risk to list it on a user-editable wiki.

The standard script installs Homebrew to/usr/localso that you don’t need sudo when youbrew install. It is acareful script, it can be run even if you have stuff installed to/usr/localalready. It tells you exactly what it will do before itdoes it too. And you have to confirm everything it will do before itstarts.

There are other ways to install Homebrew which provide you with moreflexibility. They are listed below the requirements.

"

  1. gerryyang@mba :~$ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
  2. It appears Homebrew is already installed. If your intent is to reinstall you
  3. should do the following before running this installer again:
  4. rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup

由于我的系统上已经安装过brew,因此再次执行安装命令会提示我brew已经存在。

2 Homebrew的用法

查看brew的具体用法:

  1. gerryyang@mba :~$brew
  2. Example usage:
  3. brew [info | home | options ] [FORMULA...]
  4. brew install FORMULA...
  5. brew uninstall FORMULA...
  6. brew search [foo]
  7. brew list [FORMULA...]
  8. brew update
  9. brew upgrade [FORMULA...]
  10. brew pin/unpin [FORMULA...]
  11. Troubleshooting:
  12. brew doctor
  13. brew install -vd FORMULA
  14. brew [--env | --config]
  15. Brewing:
  16. brew create [URL [--no-fetch]]
  17. brew edit [FORMULA...]
  18. open https://github.com/Homebrew/homebrew/wiki/Formula-Cookbook
  19. Further help:
  20. man brew
  21. brew home
  22. gerryyang@mba :~$

3 Homebrew的有趣问题

下面关于Homebrew的一些常见问题[3]

(1) 在OS X中找不到想要的软件,可以使用brew安装;

  1. gerryyang@mba :~$brew install wget
  2. ==> Downloading http://ftpmirror.gnu.org/wget/wget-1.14.tar.gz
  3. ######################################################################## 100.0%
  4. ==> ./configure --prefix=/usr/local/Cellar/wget/1.14 --sysconfdir=/usr/local/etc
  5. ==> make install
  6. Warning: Could not link wget. Unlinking...
  7. Error: The `brew link` step did not complete successfully
  8. The formula built, but is not symlinked into /usr/local
  9. You can try again using `brew link wget‘
  10. Possible conflicting files are:
  11. /usr/local/bin/wget
  12. /usr/local/share/man/man1/wget.1
  13. ==> Summary
  14. <span style="font: 13.0px Monaco">/usr/local/Cellar/wget/1.14: 8 files, 688K, built in 2.3 minutes</span>

由于之前使用源码方式安装过wget,因此再用brew安装时会提示冲突的错误,因为/usr/locat/bin/wget已经存在。实际上,Homebrew 将软件包分装到单独的目录(/usr/local/Cellar),然后 symlink 到 /usr/local 中。

(2) 如何更新本地已安装的package呢?

第一步:先更新brew:

brew update

  1. [email protected]:bin$brew update
  2. Already up-to-date.

第二步:更新所有package: 
brew upgarde

  1. [email protected]:bin$brew upgrade
  2. ==> Upgrading 1 outdated package, with result:
  3. wget 1.15
  4. ==> Upgrading wget
  5. ==> Installing wget dependency: openssl
  6. ==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/openssl-1.0
  7. ######################################################################## 100.0%
  8. ==> Pouring openssl-1.0.1f.mavericks.bottle.tar.gz
  9. ==> Caveats
  10. This formula is keg-only, so it was not symlinked into /usr/local.
  11. Mac OS X already provides this software and installing another version in
  12. parallel can cause all kinds of trouble.
  13. The OpenSSL provided by OS X is too old for some software.
  14. Generally there are no consequences of this for you. If you build your
  15. own software and it requires this formula, you‘ll need to add to your
  16. build variables:
  17. LDFLAGS:  -L/usr/local/opt/openssl/lib
  18. CPPFLAGS: -I/usr/local/opt/openssl/include
  19. ==> security find-certificate -a -p /Library/Keychains/System.keychain > ‘/usr/l
  20. ==> security find-certificate -a -p /System/Library/Keychains/SystemRootCertific
  21. ==> mv -f /usr/local/etc/openssl/osx_cert.pem.tmp /usr/local/etc/openssl/osx_cer
  22. ==> Summary
  23. /usr/local/Cellar/openssl/1.0.1f: 429 files, 15M
  24. ==> Installing wget
  25. ==> Downloading http://ftpmirror.gnu.org/wget/wget-1.15.tar.gz
  26. ######################################################################## 100.0%
  27. ==> ./configure --prefix=/usr/local/Cellar/wget/1.15 --sysconfdir=/usr/local/etc --with-ssl=openssl --with-libssl-prefix=/usr/local/opt/openssl --disable-iri
  28. ==> make install
  29. Warning: Could not link wget. Unlinking...
  30. Error: The `brew link` step did not complete successfully
  31. The formula built, but is not symlinked into /usr/local
  32. You can try again using `brew link wget‘
  33. Possible conflicting files are:
  34. /usr/local/bin/wget
  35. /usr/local/share/man/man1/wget.1
  36. ==> Summary
  37. /usr/local/Cellar/wget/1.15: 8 files, 700K, built in 73 seconds
  38. [email protected]:bin$

(3) 如何删除Homebrew?

If you installed to/usr/localthen you can use the script in thisgist to uninstall — it will onlyremove Homebrew and the stuff Homebrew installed leaving anything elsein/usr/localalone.

Provided you haven’t put anything else in Homebrew’s prefix(brew --prefix), you can generally justrm -rfthat directory. Thisis because Homebrew won’t touch files outside its prefix.

(4) Homebrew下载的package存放的路径在哪里?

  1. [email protected]:bin$brew --cache
  2. /Library/Caches/Homebrew
  3. [email protected]:bin$ls /Library/Caches/Homebrew/
  4. Formula/                                wget-1.14.tar.gz
  5. coreutils-8.22.tar.xz                  wget-1.15.tar.gz
  6. openssl-1.0.1f.mavericks.bottle.tar.gz  xz-5.0.5.mavericks.bottle.2.tar.gz
  7. [email protected]:bin$ls /Library/Caches/Homebrew/Formula/
  8. coreutils.brewing  openssl.brewing  wget.brewing  xz.brewing
  9. [email protected]:bin$

(5) 我可以安装自己的stuff在/usr/local吗?

Yes, brew is designed to not get in your way so you can use it how youlike.

Install your own stuff, but be aware that if you install commonlibraries, like libexpat yourself, it may cause trouble when trying tobuild certain Homebrew formula. As a resultbrew doctorwill warn youabout this.

Thus it’s probably better to install your own stuff to the Cellar andthenbrew linkit. Like so:

$ cd foo-0.1 $ brew diy
./configure —prefix=/usr/local/Cellar/foo/0.1 $ ./configure —prefix=/usr/local/Cellar/foo/0.1 [snip] $ make && make install $ brew link foo
Linking /usr/local/Cellar/foo/0.1… 17 symlinks created

在我的环境上检测是这样的:

  1. [email protected]:bin$brew doctor
  2. Warning: Unbrewed dylibs were found in /usr/local/lib.
  3. If you didn‘t put them there on purpose they could cause problems when
  4. building Homebrew formulae, and may need to be deleted.
  5. Unexpected dylibs:
  6. /usr/local/lib/libboost_atomic.dylib
  7. /usr/local/lib/libboost_chrono.dylib
  8. /usr/local/lib/libboost_context.dylib
  9. /usr/local/lib/libboost_date_time.dylib
  10. /usr/local/lib/libboost_filesystem.dylib
  11. /usr/local/lib/libboost_graph.dylib
  12. /usr/local/lib/libboost_iostreams.dylib
  13. /usr/local/lib/libboost_locale.dylib
  14. /usr/local/lib/libboost_log.dylib
  15. /usr/local/lib/libboost_math_c99.dylib
  16. /usr/local/lib/libboost_math_c99f.dylib
  17. /usr/local/lib/libboost_math_c99l.dylib
  18. /usr/local/lib/libboost_math_tr1.dylib
  19. /usr/local/lib/libboost_math_tr1f.dylib
  20. /usr/local/lib/libboost_math_tr1l.dylib
  21. /usr/local/lib/libboost_prg_exec_monitor.dylib
  22. /usr/local/lib/libboost_program_options.dylib
  23. /usr/local/lib/libboost_python.dylib
  24. /usr/local/lib/libboost_random.dylib
  25. /usr/local/lib/libboost_regex.dylib
  26. /usr/local/lib/libboost_serialization.dylib
  27. /usr/local/lib/libboost_signals.dylib
  28. /usr/local/lib/libboost_system.dylib
  29. /usr/local/lib/libboost_thread.dylib
  30. /usr/local/lib/libboost_timer.dylib
  31. /usr/local/lib/libboost_unit_test_framework.dylib
  32. /usr/local/lib/libboost_wave.dylib
  33. /usr/local/lib/libboost_wserialization.dylib
  34. Warning: Unbrewed static libraries were found in /usr/local/lib.
  35. If you didn‘t put them there on purpose they could cause problems when
  36. building Homebrew formulae, and may need to be deleted.
  37. Unexpected static libraries:
  38. /usr/local/lib/libboost_atomic.a
  39. /usr/local/lib/libboost_chrono.a
  40. /usr/local/lib/libboost_context.a
  41. /usr/local/lib/libboost_coroutine.a
  42. /usr/local/lib/libboost_date_time.a
  43. /usr/local/lib/libboost_exception.a
  44. /usr/local/lib/libboost_filesystem.a
  45. /usr/local/lib/libboost_graph.a
  46. /usr/local/lib/libboost_iostreams.a
  47. /usr/local/lib/libboost_locale.a
  48. /usr/local/lib/libboost_log.a
  49. /usr/local/lib/libboost_math_c99.a
  50. /usr/local/lib/libboost_math_c99f.a
  51. /usr/local/lib/libboost_math_c99l.a
  52. /usr/local/lib/libboost_math_tr1.a
  53. /usr/local/lib/libboost_math_tr1f.a
  54. /usr/local/lib/libboost_math_tr1l.a
  55. /usr/local/lib/libboost_prg_exec_monitor.a
  56. /usr/local/lib/libboost_program_options.a
  57. /usr/local/lib/libboost_python.a
  58. /usr/local/lib/libboost_random.a
  59. /usr/local/lib/libboost_regex.a
  60. /usr/local/lib/libboost_serialization.a
  61. /usr/local/lib/libboost_signals.a
  62. /usr/local/lib/libboost_system.a
  63. /usr/local/lib/libboost_test_exec_monitor.a
  64. /usr/local/lib/libboost_thread.a
  65. /usr/local/lib/libboost_timer.a
  66. /usr/local/lib/libboost_unit_test_framework.a
  67. /usr/local/lib/libboost_wave.a
  68. /usr/local/lib/libboost_wserialization.a
  69. Warning: You have unlinked kegs in your Cellar
  70. Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
  71. those kegs to fail to run properly once built. Run `brew link` on these:
  72. wget
  73. [email protected]:bin$

(6) 为什么选择Homebrew这个名字?
mxcl was too concerned with the beer theme and didn’t consider that the project may actually prove popular. By the time he realized it was too late. However, today, the first google hit for “homebrew” is not beer related ;-)

(7) 关于更多地QA可以参考Homebrew的Wiki[4]

(8) 一些常用安装推荐

  1. [email protected]:bin$brew list
  2. coreutils  openssl  wget  xz

Introduction to Coreutils

The GNU Core Utilities are the basic file, shell and text manipulationutilities of the GNU operating system.
These are the core utilitieswhich are expected to exist on every operating system.

http://www.gnu.org/software/coreutils/

4 参考

[1] http://brew.sh/index_zh-cn.html

[2] https://github.com/Homebrew/homebrew/wiki/Installation

[3] https://github.com/Homebrew/homebrew/wiki/FAQ

[4] https://github.com/Homebrew/homebrew/wiki

时间: 2024-08-13 14:11:00

Mac上Homebrew的使用——Homebrew 使 OS X 更完整的相关文章

Mac上Homebrew的使用 (Homebrew 使 OS X 更完整)

0 Homebrew是啥? “Homebrew installs the stuff you need that Apple didn’t.——Homebrew 使 OS X 更完整”. Homebrew的官网[1](多语言版本)简单明了地介绍了如何安装和使用这个工具,并提供了自己的Wiki. 1 安装Homebrew brew的安装很简单,使用一条ruby命令即可,Mac系统上已经默认安装了ruby. [email protected]:bin$ruby --versionruby 2.0.0

mac上安装homebrew

1:关于homebrew下载地址 homebrew下载地址网上版本很多:我用了几个都是显示 404 bad request 如图:均无法现在 有一个网址会给出最新的 安装地址: the URL is:   http://brew.sh/index_zh-cn.html 在网站的最下面给出了通过terminal下载 homebrew的最新的下载地址: 我下载的最新的路径是: ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew

mac上homebrew重装手记

今天因为种种原因,把mac上的homebrew玩坏了,需要重装的时候,即发现遇到一堆问题,记录于此: 1. (官网)卸载方法 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)" 运行时,却发现出错:curl: (7) Failed to connect to raw.githubusercontent.com port 443: Conn

Mac下软件包管理器-homebrew

类似于redhat系统的yum,ubuntu的apt-get,mac系统下也有相应的包管理容器:homebrew.用法与apt-get.yum大同小异,都是对安装软件做一些安装删除类的命令行操作,以下实例演示通过命令安装homebrew,见到"Installation successful!"则说明安装成功. tdcqma:awesome-python3-webapp $ ruby -e "$(curl --insecure -fsSL https://raw.githubu

Mac上VMWare Fusion配置多台cent os

一.创建虚拟机(准备工作) 1.使用VMWare Fusion 创建第一台虚拟机 2.选择操作系统(本次使用的是使用cent os 6.5 64bit 系统) 3.选择磁盘大小(楼主mac上的磁盘大小很是金贵的256GB,选择推荐的20GB) (3)更改在VMWare中虚拟机的名称和安装位置 (4)选择CD/DVD去指定我们的镜像位置 (5)选择完毕 2.安装Cent OS 6.5 (1)配置此虚拟机的名称 此处选择自定义方案 (1)配置boot分区用以引导系统启动 (2)配置swap分区用于保

剖析并利用Visual Studio Code在Mac上编译、调试c#程序

0x00 前言 一周多以前的微软的Build大会上,微软发布了一个让很多人眼前一亮的工具,也是本文的主角——Visual Studio Code.很多使用Windows的朋友都很高兴,认为又多了一个很不错的文档编辑器.不过匹夫更关心的是它的跨平台能力,这不,匹夫偷得半日闲,写篇小文来聊聊在Mac上如何使用Visual Studio Code编译和调试C#代码,最后匹夫也会尝试把Visual Studio Code嵌入Unity3D中,作为一个准“IDE”使用. 0x01 Visual Studi

mac上的命令行工具

转自爱米家的博客,原文:<Eight Terminal Utilities Every OS X Command Line User Should Know> OS X  的Terminal 终端开辟了强大的UNIX实用工具和脚本的世界.如果你是从Linux转移过来的用户,你会在OS X 终端上发现很多熟悉的命令.但是即使是高级用户也经常会忽略掉其实OS X终端也会有一系列在其他的操作系统中没有的终端工具.当你学习了以下这些只适用于Mac的课程会让你更高效的使用Mac命令行同时消除UNIX系统

剖析并利用Visual Studio Code在Mac上编译、调试c#程序【转】

0x00 前言 一周多以前的微软的Build大会上,微软发布了一个让很多人眼前一亮的工具,也是本文的主角——Visual Studio Code.很多使用Windows的朋友都很高兴,认为又多了一个很不错的文档编辑器.不过匹夫更关心的是它的跨平台能力,这不,匹夫偷得半日闲,写篇小文来聊聊在Mac上如何使用Visual Studio Code编译和调试C#代码,最后匹夫也会尝试把Visual Studio Code嵌入Unity3D中,作为一个准“IDE”使用. 0x01 Visual Studi

Mac上安装brew

用过ubuntu系统的都知道,上面有一个命令apt-get 很方便可以快速的安装很多软件 特别lamp环境 都是一键安装. 在mac上也有类似的命令 brew brew用法可以访问官网地址  http://brew.sh/ 但是在mac上安装 brew 的命令如下 curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C /usr/local --strip 1 但是按照上面的方式安装,都没成功,也没有