Homebrew- MAC上的包管理利器

2013-07-01 16:25 by 黄博文, 76 阅读, 0 评论, 收藏编辑

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

作者:黄博文@无敌北瓜 
出处:http://www.cnblogs.com/huang0925
黄博文的地盘
本文版权归本人和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
 
分类: 编程开发

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

  1. Homebrew- MAC上的包管理利器

    包管理器是神马东西?让我们看看wikipedia上的介绍. In software, a package management system, also called package manager, ...

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

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

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

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

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

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

  5. MacOS上的包管理工具

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

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

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

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

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

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

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

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

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

随机推荐

  1. php中ssl开发的若干问题

    最近利用php开发ssl的相关功能,由于第一次做相关的事情,遇到了很多问题,庆幸的是最终都顺利解决了.不过相关的资料很少,都是综合了国内外的相关信息才解决的.现在整理一下,方便后来者遇到问题时解决. ...

  2. 【POJ3037】Skiing 最短路

    题意: 有个n*m的滑雪场,bessie要从(1,1)滑到(n,m),问最小时间. 起始有一个速度v,然后每从一个点A到一个点B(仅仅能上下左右走,每次一格),速度就会乘上2^(权值A-权值B). 然 ...

  3. ASP.NET 5应用是如何运行的(3)

    ASP.NET 5应用是如何运行的(3) 设置自定义的入口程序体现应用本身与应用托管之间的分离,它使我们可以创建独立于托管环境的应用,并根据需要寄宿于任何一个我们希望的宿主程序下,对于Web应用来说这 ...

  4. MVC+Jqgrid

    基于MVC+Jqgrid的列表页面 2014-12-08 12:01 by 刘尼玛, 1583 阅读, 20 评论, 收藏, 编辑 一.前言 “尼玛哥,上周你教我改了下OA系统UI,黄总看了很满意呀. ...

  5. Tomcat7.0更改默认的路径来访问自己的项目

    如何使自己的项目没有输入:localhost:8080/项目名称/index.html 能够访问. 步骤,如下面的 : 找到tomcat ---  config----server.xml 选中右键编 ...

  6. 布尔逻辑运算,goto语句

    布尔逻辑 bool类型可以有两个值:true或者false. 布尔比较需要使用布尔比较运算符(关系运算符),下图:var1为布尔类型的变量,var2,var3则可以是不同类型.

  7. 【Android开发日记】妙用 RelativeLayout 实现3 段布局

    在设计过程中,我们经常会遇到这样的需求: 把一条线3控制,左对齐左控制,右侧控制右对齐,中间控制,以填补剩余空间. 或者一列内放3个控件,上面的与顶部对齐,以下的沉在最底部,中间控件是弹性的.充满剩余 ...

  8. james+javamail入门

    James+Javamail构建邮件服务(一) 本文描述如何使用James搭建具备一定邮件过滤.邮件操作功能的邮件服务器,以及使用Javamail实现对James服务器邮件的收发功能. 1关于Jame ...

  9. 自动生成api文档

    vs2010代码注释自动生成api文档 最近做了一些接口,提供其他人调用,要写个api文档,可是我想代码注释已经写了说明,能不能直接把代码注释生成api?于是找到以下方法 环境:vs2010 先下载安 ...

  10. (莱昂氏unix源代码分析导读-49) 字符缓冲区

    by cszhao1980 同块设备一样,对字符设备的输入输出也是通过缓冲区来进行的.使用缓冲区有个额外 的好处,即以缓冲区为界,函数可分为高低两个层次.低层函数负责与实际设备交互, 而高层函数只与缓 ...