`
lxneng
  • 浏览: 190119 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

homebrew — Mac OS X 下新的软件包管理工具

阅读更多
虽然 Mac OS X 自带了不少 Unix 下的开源软件,比如 vim, ruby, python, perl 等等,也自带了许多常用的库,包括 iconv, zlib 等等,但我们仍然有时会需要自己动手安装一些这样的软件或者库,要自动化这样的安装,现有最常见的选择是 MacPorts 和 Fink,其中 MacPorts 是基于源代码的包管理,并不在自己的库里储存软件的实际内容,只有一个定义如何编译代码的 Portfile 和一些专门针对这个平台的 patch;而 Fink 则是 Apt 包管理系统在 Mac OS X 下的一个克隆,采用二进制分发,用户直接从 Fink 的仓库中下载安装软件。

这两种方式各自有各自的优点和缺陷:

MacPorts 基于源代码的管理优点是非常灵活,更新很快 (很多时候更新只需要修改一下 Portfile 里的版本号和压缩包校验码就可以),用户要订制安装也可以简单的通过修改 Portfile 实现,而且很多开源软件的安装配置会有多种模式 (典型的大都通过 configure 步骤配置),在 MacPorts 中可以方便地通过 variants 参数指定,而不必像二进制分发那样,在远程服务器上编译的时候就定死了。而 MacPorts 的问题是,它希望自己安装的每套软件,所有的依赖都在它自己这个系统内 (一般就是你的 /opt/local) 解决,就算 Mac OS X 系统原生自带了满足依赖的库,它也坚决不用,这样就给你的系统增加了许多冗余,也客观增加了管理上的难度,典型的情况是:你的系统里装了两套 Python,该怎么管理外部安装的 Python 模块?比如通过 easy_install 或 setup.py 安装的,往往很难记住到底装到哪里了。

而 Fink 虽然不会这么自作主张地添加依赖,最大的问题是更新不够及时,这也是缺乏维护人手导致的。二进制安装的缺点在上面也提到了:不便定制。

所以 Homebrew 的出现,也许不是很及时,但在现在仍然是很必要的,它有这么一些优点:

尽可能的利用你的系统里自带的库,包括 zlib, OpenSSL, Python 等等,只要 Mac OS X 自带了,它就不会另装一份。

定制简单,通过用 Ruby 写的 Homebrew formula 来定制,甚至可以灵活的跟踪直接来自版本管理库的最新软件

用 Git 管理和同步自身

直接装在 /usr/local 下,这样可以少定义很多各种 PATH 环境变量

其中第一点尤为重要。好的,下面简单介绍一下 Homebrew 的安装,以及它是如何工作的。

安装

首先,Homebrew 的原则是“No sudo”,也就是说,既然 Mac OS X (client 版本) 绝大部分情况下都是归你这个有管理员权限的用户,为什么在自己的 /usr/local 下安装程序还需要 sudo 呢?所以,首先:

sudo chown -R `whoami` /usr/local
然后可以正式开始安装,我推荐的安装方式是先用 git-osx-installer 装上 git,然后用 git 安装:

cd /usr/local
git init
git remote add origin git://github.com/mxcl/homebrew.git
git pull origin master
这么做的实际作用是把你的 /usr/local 目录变成了一个本地 git 仓库,只不过这个仓库只跟踪跟 Homebrew 相关的更新,并不影响任何其他软件的安装。

这样安装会在 /usr/local 下创建 Library 这个目录,然后在 /usr/local/bin 中加入 brew 这个 ruby 脚本。

使用

安装完毕,下面就可以试试了:

brew search
这个命令用来搜索所有可以通过 homebrew 安装的软件,不带任何参数的时候就是列出所有的。可以看到数量已经不少了。

下面就是选择安装,比如我想安装 unrar:

$ brew search rar
gnu-scientific-library     unrar

$ brew install unrar
Warning: It appears you have Macports or Fink installed
Although, unlikely, this can break builds or cause obscure runtime issues.
If you experience problems try uninstalling these tools.
/usr/local/Library/Formula/unrar.rb:3: warning: already initialized constant ALL_CPP
==> Downloading http://www.rarlab.com/rar/unrarsrc-3.9.4.tar.gz
######################################################################## 100.0%
==> g++ -O4 -march=core2 -mmmx -msse3 -w -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE all.cpp -o unrar
/usr/local/Cellar/unrar/3.9.4: 3 files, 320K, built in 13 seconds
可以看到,unrar 被安装到了 /usr/local/Cellar/unrar/3.9.4 这个目录下,但这样我们访问起来显然很不方便,所以 Homebrew 会在 /usr/local/bin 下面创建到 unrar 程序的符号链接,如果安装的是库之类的,也会对应在 /usr/local/lib 这样的目录下创建符号链接。所以这是一套类似 GoboLinux 的软件管理方式。

安装后就可以用 list 命令列出:

$ brew list
pkg-config  unrar
更新

如果用了一段时间,需要更新同步上游的 Formula,可以简单地:

$ brew update
From git://github.com/mxcl/homebrew
* branch            master     -> FETCH_HEAD
Updated Homebrew from 60600885 to 60600885.
No formulae were updated.
Homebrew 会通过 git 完成同步。

总结起来,Homebrew 是一套很有新意的软件包管理工具,虽然它的更新及时程度还有待考验,但至少在目前还是比较令我满意的解决方案。

转自:http://blog.jjgod.org/2009/12/21/homebrew-package-management/
分享到:
评论

相关推荐

    Homebrew Mac OS X 的包管理器 v3.6.20.zip

    Homebrew 是Mac OS X系统上广泛使用的开源包管理器,它允许用户轻松地安装、管理和升级各种命令行工具,包括编程语言、系统库、实用工具等。标题中的"v3.6.20"指的是Homebrew的一个特定版本,这个版本可能包含了性能...

    Homebrew Mac OS X 的包管理器 v4.2.10.zip

    Homebrew 是Mac OS X系统中的一个非常重要的包管理器,它允许用户轻松地安装、管理和升级各种开源软件。这个压缩包“Homebrew Mac OS X 的包管理器 v4.2.10.zip”包含了Homebrew的特定版本4.2.10的源代码和其他相关...

    在Mac OS X系统上打包Python程序.docx

    Homebrew 是一个非常流行的包管理工具,可以轻松地安装各种软件包。在终端中运行 ruby 命令,即可安装 Homebrew。Xcode 是一个非常重要的开发工具,可以提供多种开发功能,包括编译、调试和优化。Qt 是一个非常...

    Homebrew:OS X缺少的包管理器-开源

    Homebrew是针对Mac OS X(现称为macOS)操作系统的一款开源包管理器,它被誉为“OS X缺少的包管理器”。这个工具使得用户能够轻松地安装、管理和升级那些Apple官方并未默认提供的软件包。Homebrew的出现极大地简化了...

    homebrew-paparazzi:自制软件包管理器的狗仔队特定软件包

    "homebrew-paparazzi" 是一个针对 Mac OS X 操作系统的自制软件包管理器,专门用于管理和安装与 Paparazzi UAV(无人驾驶飞行器)框架相关的软件包。"狗仔队"在这里可能是一种幽默的比喻,暗示这个工具能够快速、...

    Mac os 安装wget

    对于Mac OS X用户来说,虽然系统自带了一些基本的命令行工具,但`wget`并不在默认的软件包列表中,因此需要手动安装。 安装`wget`在Mac OS X上并不复杂,以下是一个详细的步骤指南: 1. **下载源码包**: 首先,...

    BrewServicePanel一个用于管理homebrew服务的控制面板

    Homebrew是Mac OS X系统下广泛使用的软件包管理器,它允许用户方便地安装、管理和更新命令行工具和服务。BrewServicePanel是一个专为Homebrew设计的图形界面工具,它的主要功能是帮助用户更加直观、便捷地控制通过...

    homebrew-riscv:用于RISC-V工具链的homebrew(macOS)软件包

    RISC-V工具链 这提供了使用在OS X上安装工具链的软件包。安装首先,安装自制软件: $ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"获取此水龙头: $ brew tap riscv/riscv构建工具...

    starting_brew (in english)

    Homebrew,通常被称为“brew”,是Mac OS X操作系统上的一个软件包管理器,它使得安装命令行工具变得极其简单。这个“starting_brew”资源显然是为那些刚开始接触Homebrew的新手准备的。下面,我们将深入探讨...

    convert-mov-to-gif:在Mac OS X上将MOV文件转换为GIF

    是Mac OS x的软件包管理器。 您将需要使用它来稍后下载一些开源库。 安装FFmpeg 使用homebew,您将需要安装ffmpeg 。 这是将压缩现有.mov文件的工具。 brew install ffmpeg 安装石英 使用下一个软件包Gifsicle时...

    brewbar:使用位栏显示由Homebrew安装的过时软件包

    Homebrew是Mac OS X系统上广泛使用的包管理器,它使得安装、管理和更新开源软件变得极其简单。"brewbar"是一个独特的工具,专门设计用来在位栏(BitBar)上显示由Homebrew安装的软件包的过时情况,帮助用户及时了解...

    homebrew-mpv

    【标题】"homebrew-mpv" 是一个针对Mac OS X系统的开源软件包管理工具Homebrew的一个自定义配方,用于安装MPV媒体播放器的最新开发版本(HEAD-only)。MPV是一款强大的、轻量级的视频播放器,以其高度可配置性和广泛...

    brew1.1中文api

    Homebrew是Mac OS X系统下的一个包管理器,它允许用户轻松安装、更新和管理各种开源软件包。"brew1.1中文API"显然是一份关于Homebrew的中文文档,对于那些想要在Mac环境中进行软件管理和开发的用户来说非常有用。这...

    homebrew-gepetto:HomeBrew程序包管理器的公式集合

    HomeBrew是Mac OS X系统下广泛使用的开源包管理器,它使得用户可以简单地通过命令行来安装、更新和卸载各种软件包。HomeBrew Ruby则是HomeBrew的一部分,它基于Ruby语言,用于编写和维护各种软件的安装配方,也就是...

    brew-ebook.rar_brew_brew BUIW_brew ebook_buiw

    Homebrew是Mac OS X系统下的一个开源包管理器,它允许用户方便地安装、管理和更新命令行工具,包括各种编程语言、数据库、实用工具等。BUIW(可能为"Build Utility for iOS and Web"的缩写)可能是与iOS和Web开发...

    解决Mac OS X 自带PHP环境gd库扩展缺少freetype的问题

    Homebrew是Mac OS X上的一个包管理器,可以方便地安装和管理命令行工具。如果你还没有安装,可以通过在终端运行以下命令来安装: ```bash /bin/bash -c "$(curl -fsSL ...

    brew 3.15 api 中英文当 chm

    Homebrew是Mac OS X系统下的一个包管理器,它允许用户方便地安装、管理和更新开源软件。`brew API`指的是Homebrew的开发者接口,通过这个接口,开发者可以编写脚本或者程序来与Homebrew交互,实现自动化安装、升级...

    pdf_brew培训课程.rar

    Homebrew是Mac OS X系统中广泛使用的开源包管理器,它允许用户方便地安装、更新和管理各种软件包,极大地简化了在苹果操作系统上的开发和日常软件使用。 通过这份PDF教程,读者将学习到以下关键知识点: 1. **...

    ros-osx:(不建议使用)用于在Mac OS X上运行ROS的修补程序和信息的存储库(Wiki)

    Homebrew是Mac OS X上的一个包管理器,它使得用户可以方便地安装和管理命令行工具,包括ROS。与之相比,macports是另一个类似的工具,但可能由于某些原因(如兼容性、更新速度或社区支持)在这个场景下并不被推荐。 ...

    brew基础教程适合初学者

    Homebrew,通常被称为“Linux的apt-get”,是Mac OS X系统上的一个包管理器,它使得在苹果操作系统上安装和管理软件变得异常简单。这个基础教程专为初学者设计,旨在帮助你们快速理解和掌握Homebrew的基本操作和用途...

Global site tag (gtag.js) - Google Analytics