homebrew介绍
对于一个习惯了在 Ubuntu 的终端上通过 apt-get 来安装工具软件的我来说,也希望在Mac上找到类似的工具,能很方便的一条命令就能安装所需的软件,而不用手工的去查找下载编译,或者是折腾安装所需的一些依赖关系。很惊喜发现,Mac上也有类似的工具软件包管理器 --Homebrew。
Homebrew 并不是什么软件包都能装,它只是能装一些系统缺省的软件包,例如:wget、nginx、mysql等等。不过随着 homebrew0.9版 新加了 tap 操作,支持安装第三方数据源的软件包,以后支持安装的软件包会更多、更丰富。
Homebrew安装
安装 Homebrew 很简单,只需在终端上输入一行 Ruby 脚本(所以要先搭建 Ruby 运行环境,Mac 下已经预装了 Ruby)就行:
|
1
|
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" |
Homebrew使用
Homebrew 跟 Ubuntu 的里的 apt-get 一样,update是更新软件包列表,install是安装软件包,uninstall是卸载软件包,用法都差不多,熟悉 apt-get 使用的话是很容易上手。
下面是 Homebrew 的一些常用操作(package替换成你想安装的软件名,例如:nginx、mysql,就能正常安装你想要安装的软件):
显示帮助信息
|
1
|
brew -h |
Homebrew的版本
|
1
|
brew -v |
列出Homebrew的建议或警告信息
|
1
|
brew doctor |
列出已安装的软件包
|
1
|
brew list |
更新Homebrew软件包
|
1
|
brew update(up) |
用浏览器打开package主页(package 为空则打开 Homebrew 主页)
|
1
|
brew home package |
显示软件包内容信息
|
1
|
brew info package |
显示包依赖
|
1
|
brew deps package |
查找有没有想要安装的软件包(支持模糊查找)
|
1
|
brew search package |
查看软件包的信息
|
1
|
brew info package |
软件包的安装选项
|
1
|
brew options package |
安装软件包
|
1
|
brew install package |
如果想查看安装过程中执行的命令或者是编译信息,可以在 "install" 后面加一个 "-v" 参数:
|
1
|
brew install -v package |
卸载软件包
|
1
|
brew uninstall(remove) package |
用 Homebrew 安装第三方工具软件包,例如用 homebrew 安装官方缺省的php
|
1
|
brew tap josegonzalez/php |
如果软件包出了新版本,可以用 upgrade 更新过时的软件包(缺省 package 参数,则为全部更新):
|
1
|
brew upgrade package |
清理之前安装的旧版本数据:
|
1
2
|
brew cleanup --force -srm -rf $(brew --cache) |
更多详细的用法说明可以在终端输入"man brew"查看。
PS:Mac 下类似 Homebrew 的软件管理工具还有 MacPorts、Fink。
Homebrew 的一些配置目录:
- /Library/Caches/Homebrew: 安装所下载文件的存放的位置
homebrew介绍的更多相关文章
- MAC——Homebrew介绍和使用
一.Homebrew是什么 Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装.卸载.更新.查看.搜索等很多实用的功能.简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径 ...
- Homebrew介绍和使用
一.Homebrew是什么 Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装.卸载.更新.查看.搜索等很多实用的功能.简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径 ...
- MAC Homebrew安装和简单使用
前言: 这个周六日在刚刚买的macbookpro(系统版本是:10.13.5)上面安装angular,一开始是按照windows上的顺序安装的,先安装node.js,然后在安装angular的时候报错 ...
- Homebrew 常用命令
Homebrew 常用命令 Homebrew 介绍 Homebrew也称brew,macOS下基于命令行的最强大软件包管理工具,使用Ruby语言开发.类似于CentOS的yum或者Ubuntu的apt ...
- 【转1】Appium 1.6.3 在Xcode 8, iOS 10.2(模拟器)测试环境搭建 经验总结
Appium 1.6.3 在Xcode 8, iOS 10.2(模拟器)测试环境搭建 经验总结 关于 Appium 1.6.3 在Xcode 8, 10.2 的iOS模拟器上的问题很多,本人也差点放弃 ...
- MAC终端如何使用rar和unrar
一.MAC具体安装见下面两个博客分享: Homebrew介绍和使用:https://www.jianshu.com/p/de6f1d2d37bf Mac 压缩 / 解压缩工具解决方案:https:// ...
- iOS工具】rvm、Ruby环境和CocoaPods安装使用及相关报错问题解决
〇.前言 <p>在iOS开发中 CocoaPods作为库依赖管理工具就是一把利器. 有了 CocoaPods则无需再通过拖 第三方库及第三方库所依赖的 framework静态库到项目中等麻 ...
- Mac上的包管理器Homebrew的介绍及安装和使用实践
Homebrew的作用 Homebrew是OS X上强大的包管理器,为系统软件提供了非常方便的安装方式,独特式的解决了包的依赖问题,并不再需要烦人的sudo,一键式编译,无参数困扰. 如何安装Home ...
- Mac 实用工具bash-comletion介绍安装
介绍: 相信用过centos系统的同学都满喜欢它的自动补全功能.在mac系统中自带的bash,但是在我们引用git做一些分支切换等操作时并没有我们需要的那么强大. 现在推荐一款好用的插件bash-co ...
随机推荐
- .net mvc datatables中orderby动态排序
今天在做项目中用datatables的排序来做筛选,不过人比较懒,不想写那么多的关于排序的代码,于是寻思这在度娘上找找,结果不负有心人啊,更感谢贴出此贴的哥们,来源:http://blog.csdn. ...
- ios 中获得应用程序名称和版本号
IOS程序中的应用名称和版本号在 info.plist 文件中存储着,要想在程序中获得需要使用 NSBundle 对象 下面是示例代码: NSBundle *bundle = [NSBundle ma ...
- (转)Android Studio系列教程一下载与安装 背景Android Studio VS Eclipse准备下载创建HelloWorld项目
背景 相信大家对Android Studio已经不陌生了,Android Studio是Google于2013 I/O大会针对Android开发推出的新的开发工具,目前很多开源项目都已经在采用,Goo ...
- 94 Binary Tree Inorder Traversal(二叉树中序遍历Medium)
题目意思:二叉树中序遍历,结果存在vector<int>中 解题思路:迭代 迭代实现: /** * Definition for a binary tree node. * struct ...
- thinkphp 内置函数详解
D() 加载Model类M() 加载Model类 A() 加载Action类L() 获取语言定义C() 获取配置值 用法就是 C("这里填写在配置文件里数组的下标")S( ...
- Ppthon基础学习之Dict
一.什么是字典? 字典是Python语言中唯一的映射类型. 映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表. 字典对象是可变的,它是一个容器 ...
- 简化的nginx多进程模型demo
//version 1:以下代码仅演示nginx多进程模型[test@vm c]$ cat mynginx.c#include <stdio.h> #include <string. ...
- C++explicit关键字
在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换. explicit使用注意事项: * explicit ...
- linux 路由表设置 之 route 指令详解
使用下面的 route 命令可以查看 Linux 内核路由表. # route Destination Gateway Genmask Flags Metric Ref ...
- Installshield更新时,新加dll未拷贝至安装目录问题完美解决【原创】
最近在发现在开发过程中新增的目录或文件(特别是dll\ocx\exe等二进制文件),在升级安装时拷贝失败. 经过一周的研究,完美解决办法: 对于新增的文件或目录,放到一个新的component中,并且 ...