Homebrew- MAC上的包管理利器

黃博文發表於2013-07-01

Homebrew- MAC上的包管理利器

包管理器是神馬東西?讓我們看看wikipedia上的介紹。

In software, a package management system, also called package manager, is a collection of software tools to automate the process of installing, upgrading, configuring, and removing software packages for a computer’s operating system in a consistent manner.

簡單的來說,包管理器就是一個提供對一系列軟體包的安裝、解除安裝、升級的自動化工具。 包管理器大體分為兩種,一種是管理預編譯好的軟體(Binary installation/Precomplied packages),如MAC上的App Store,Windows下的Windows installer。另一種是基於原始碼的安裝包,通過編譯指令碼來安裝軟體(Sourcecode-based installation/installing using compile scripts),如MAC上的Homebrew,Linux上的apt-build。

今天就給大家講解下Homebrew

Homebrew官網上稱自己為:

The missing package manager for OS X

即自己彌補了在OS X上無包管理器的缺陷。

需求環境

  1. OS X 10.5及其以上版本。

  2. 安裝XCode裡的開發者工具。主要是因為開發者工具中有mac下的gcc編譯器,很多軟體需要它。

  3. ruby。Homebrew使用ruby寫的,所以ruby不可或缺。

安裝Homebrew

只需要在terminal下敲這樣一行程式碼就行。

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

brew會被預設安裝到/usr/local資料夾中。從上述命令可以看出homebrew是基於ruby的一款包管理器,並且host在github上。

使用

Homebrew中支援安裝的軟體被稱為Formula。

  • 檢視所有支援的Formual。可以在這裡檢視。如果不能上網的話可以通過brew server來在本地開啟一個server來檢視。

  • brew search [Formula], 搜尋某個Formula是否被支援。

  • brew install [Formula], 安裝某個Formula。

  • brew upgrade [Formula], 升級某個Formula。

  • brew uninstall [Formula], 刪除某個Formula。

  • brew update, 更新brew支援的Formula列表。

所有的軟體都會預設被安裝到/usr/local/Cellar目錄下,然後將部分可執行指令碼檔案通過軟連結連結到/usr/local\bin目錄下,這樣我們就可以在Terminal下使用這些軟體。

Homebrew對於Formula的管理是基於git的。你可以在/usr/local/下發現有一個.git的資料夾。通過檢視.git目錄下的config檔案,可以知道其實目錄是被連結到github上的一個repository。

config
1
2
3
4
5
6
7
8
9
10
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        autocrlf = false
[remote "origin"]
        url = https://github.com/mxcl/homebrew.git
        fetch = +refs/heads/*:refs/remotes/origin/*

你也可以為自己的軟體加入到Homebrew的支援列表中。只需要寫一個ruby指令碼check in到其github中。 下面是一個指令碼示例。

1
2
3
4
5
6
7
8
9
10
11
12
require 'formula'

class Wget < Formula
  homepage 'http://www.gnu.org/wget/'
  url 'http://ftp.gnu.org/wget-1.12.tar.gz'
  md5 '308a5476fc096a8a525d07279a6f6aa3'

  def install
    system "./configure --prefix=#{prefix}"
    system 'make install'
  end
end

當然Homebrew接收這些軟體也是有一定條件的,可以看這個文件

相關文章