包管理器是神马东西?让我们看看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接收这些软件也是有一定条件的,可以看这个文档。

Homebrew- MAC上的包管理利器的更多相关文章

  1. MAC上的包管理利器

    Homebrew- MAC上的包管理利器 2013-07-01 16:25 by 黄博文, 76 阅读, 0 评论, 收藏, 编辑 包管理器是神马东西?让我们看看wikipedia上的介绍. In s ...

  2. Mac上的包管理器Homebrew的介绍及安装和使用实践

    Homebrew的作用 Homebrew是OS X上强大的包管理器,为系统软件提供了非常方便的安装方式,独特式的解决了包的依赖问题,并不再需要烦人的sudo,一键式编译,无参数困扰. 如何安装Home ...

  3. [转]Ubuntu上的包管理:dpkg,apt和aptitude

    一直以来对于ubuntu的包管理的概念就是apt-get,偶尔手动装个包就是dpkg -i,现在觉得是要系统地了解一下这几个包管理的命令. 原文转自: http://zhouliang.pro/201 ...

  4. MacOS上的包管理工具

    众所周知,Linux世界中存在着如apt-get.yum等强大而简单的包管理工具,而在Macos中同样存在类似的东西. 当前比较流行的主要有如下两种: 1.Homebrew(推荐):其官网地址brew ...

  5. mac上的mysql管理工具sequel pro

    https://blog.csdn.net/wan_zaiyunduan/article/details/54909389 以前用过Plsql.Navicat.Workbench,现在换到mac上,用 ...

  6. Homebrew 1.0.0 发布,MacOS 上的包管理器,比如安装qt5keychain

    神器,没有它不知道怎么用macos https://www.oschina.net/news/77367/homebrew-1-0-0 Mac OS X用户,qt5keychain可以使用homebr ...

  7. Homebrew 1.0.0 发布,MacOS 上的包管理器

    神器,没有它不知道怎么用macos https://www.oschina.net/news/77367/homebrew-1-0-0

  8. Python - poetry(1)包管理利器的入门介绍

    Python 虚拟环境详解 https://www.cnblogs.com/poloyy/p/15266382.html poetry 官方介绍 github:https://github.com/p ...

  9. windows上安装 包管理工具choco及scoop

    1.安装 choco: 1.1.使用管理员方式打开 PowerShell 1.2.输入 Set-ExecutionPolicy RemoteSigned,输入 Y 1.3.安装 choco输入:iwr ...

随机推荐

  1. C++中四种转换类型的区别

    一.四种转换类型比较: 类型转换有c风格的,当然还有c++风格的.c风格的转换的格式很简单(TYPE)EXPRESSION,但是c风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可 ...

  2. Java NIO教程 文件系统

    在NIO.2的文件系统中,Path是一切操作的基础.Path准确来说,代表着文件系统中的位置.可以代表一个目录(也就是通常所说的文件夹),也可以代表一个文件. 在新文件系统中,还有一个不得不说的就是F ...

  3. java.net.URL 模拟用户登录网页并维持session

    java.net.URL 模拟用户登录网页并维持session 半成品,并非完全有用 import java.io.BufferedReader; import java.io.InputStream ...

  4. ProtoType(原型)-对象创建型模式

    1.意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 2.动机 通过拷贝或者“克隆”一个类的实例来创建新的实例. 3.适用性 当一个系统应该独立于它的产品创建.构成和表示时,要使 ...

  5. Pig Latin

    function translate(str) { //return str; var list = ['a','e','i','o','u']; if(list.indexOf(str[0]) &g ...

  6. Unity(三)依赖注入

    Unity具体实现依赖注入包含.属性注入.方法注入. 构造函数注入 public void ConStructorCodeTest1() { //默认注册(无命名),如果后面还有默认注册会覆盖前面的 ...

  7. npoi实现 从固定的行读取数据作为表头并返回datable

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  8. iOS.AppThinning-iOS9-new-feature-for-app-thinning-bitcode-odr-slicing

    Bitcode 0. Introduction to Bitcode 1. Build static library or framework via Xcode 7, while user buil ...

  9. mysql innodb存储引擎介绍

    innodb存储引擎1.存储:数据目录.有配置参数为“ innodb_data_home_dir ” .“ innodb_data_file_path ” 和 “innodb_log_group_ho ...

  10. Asp.net mvc生成验证码

    1.生成验证码类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...