Mac开发环境配置之HomeBrew

如果你使用惯了linux,你会对软件包管理、命令行不能自拔。由于mac的底层是类unix系统,也可以配置向linux一样好用。

安装HomeBrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

上面必须先有ruby以及其他开发环境支持,建议安装xcode后使用以上命令安装。

HomeBrew使用

安装成功以后,使用man brew查看命令帮助学习使用。man brew的内容很多,我下面展示brew --help

(data)  youdi@liangchangyoudeMacBook-Pro  ~  brew --help
Example usage:
  brew search [TEXT|/REGEX/]
  brew (info|home|options) [FORMULA...]
  brew install FORMULA...
  brew update
  brew upgrade [FORMULA...]
  brew uninstall FORMULA...
  brew list [FORMULA...]

Troubleshooting:
  brew config
  brew doctor
  brew install -vd FORMULA

Developers:
  brew create [URL [--no-fetch]]
  brew edit [FORMULA...]
  https://docs.brew.sh/Formula-Cookbook.html

Further help:
  man brew
  brew help [COMMAND]
  brew home

下面详细介绍具体的使用

搜索软件包

brew search [TEXT|/REGEX/]这个是进行搜索软件包,参数支持正则表达式,

(data)  youdi@liangchangyoudeMacBook-Pro  ~  brew search nginx
==> Searching local taps...
nginx ✔
==> Searching taps on GitHub...
homebrew/nginx/accesskey-nginx-module               homebrew/nginx/xsltproc-nginx-module                homebrew/nginx/anti-ddos-nginx-module               homebrew/nginx/set-misc-nginx-module
homebrew/nginx/ajp-nginx-module                     homebrew/nginx/geoip2-nginx-module                  homebrew/nginx/array-var-nginx-module               homebrew/nginx/stream-lua-nginx-module
1. brew search, -S:
显示出本地所有可用的包,不加参数,不会去线上去查询,使用`brew search`或`brew -S`
2. brew search [--desc] (text|/text/):
   获取一个软件的短描述

3. brew search (--debian|--fedora|--fink|--macports|--opensuse|--ubuntu) text:
    获取不同平台上软件的文档信息
获取软件包信息

brew (info|home|options) [FORMULA…]

1.brew info brew info formula 显示这个软件的信息,后面可以接的参数有 —github, —json=version等等 2.brew home 通过浏览器打开软件的主页 3.brew options 显示软件包的options信息,安装时的,默认的安装信息

安装软件包

brew install FORMULA...

安装软件使用的命令,也是我们使用最频繁的。看看她的详细参数:

brew install [--debug][--env=(std|super)] [--ignore-dependencies|--only-dependencies][--cc=compiler] [--build-from-source|--force-bottle][--devel|--HEAD] [--keep-tmp][--build-bottle] formula [options …]

先来介绍最简单的使用

安装

brew install elinks

Homebrew 会将软件包安装到独立目录,并将其文件软链接至 /usr/local

$ cd /usr/local/Cellar
$ tree -L 3 elinks
elinks
└── 0.11.7_2
    ├── AUTHORS
    ├── COPYING
    ├── ChangeLog
    ├── INSTALL_RECEIPT.json
    ├── NEWS
    ├── README
    ├── TODO
    ├── bin
    └── share

3 directories, 7 files

$ cd /usr/local/bin
$ ll elinks
lrwxr-xr-x  1 youdi  admin    36B 10 15 15:32 elinks -> ../Cellar/elinks/0.11.7_2/bin/elinks

Homebrew 不会将文件安装到它本身目录之外,所以您可将 Homebrew 安装到任意位置。

你可以使用man brewbrew install --help查看具体一些参数的使用,都很简单。

升级和清理

brew update brew upgrade brew updte

会自动升级软件包和自身

brew outdate

查看过时的软件包,会有升级的版本号

brew upgrade

升级所有可以升级的

brew upgrade <formula>

升级具体的软件包

brew upgrade <formula>

停止一些软件包的更新和升级

brew unpin <formula>

将停止更新的软件包设置为允许

brew cleanup <formula>

将软件包的旧版本记录清理掉 brew cleanup 清理所有

brew cleanup -n

显示清理的内容

brew --cahce

显示缓存位置, 一般是在~/Library/Caches/Homebrew

查看安装软件包

brew list

brew list —help

brew list, ls [--full-name]:
   列出所有的安装的软件包,可以接一些参数,类似ls
    List all installed formulae. If --full-name is passed, print formulae
    with fully-qualified names. If --full-name is not passed, any other
    options (e.g. -t) are passed to ls which produces the actual output.

brew list, ls --unbrewed:
    List all files in the Homebrew prefix not installed by Homebrew.
    # diy方式安装的软件

brew list, ls [--versions [--multiple]] [--pinned] [formulae]:
    List the installed files for formulae. Combined with --verbose, recursively
    list the contents of all subdirectories in each formula's keg.

    If --versions is passed, show the version number for installed formulae,
    or only the specified formulae if formulae are given. With --multiple,
    only show formulae with multiple versions installed.

    If --pinned is passed, show the versions of pinned formulae, or only the
    specified (pinned) formulae if formulae are given.
    See also pin, unpin.

卸载软件包

brew unisntall

这个命令也是使用比较频繁的。 brew uninstall, rm, remove [--force][--ignore-dependencies] rm,remove也是卸载命令 --force 强制卸载, 如果有依赖,也强制卸载 --ignore-dependencies 忽略依赖

管理服务

brew services

brew services [-v|--verbose] [list | run | start | stop | restart | cleanup] [...]

brew services [-v|--verbose] [list | run | start | stop | restart | cleanup] [...]
    Easily start and stop formulae via launchctl.
    With -v or --verbose, print more detail.

    Integrates Homebrew formulae with macOS' launchctl manager. Services can be
    added to either /Library/LaunchDaemons or ~/Library/LaunchAgents.
    Basically, items in /Library/LaunchDaemons are started at boot, while those
    in ~/Library/LaunchAgents are started at login.

    When started with sudo, it operates on /Library/LaunchDaemons; otherwise,
    it operates on ~/Library/LaunchAgents.

    On start the plist file is generated and written to a Tempfile, and then
    copied to the launch path (existing plists are overwritten).

    [sudo] brew services list
    List all running services for the current user (or root)

    [sudo] brew services run formula|--all
    Run the service formula without starting at login (or boot).

    [sudo] brew services start formula|--all
    Start the service formula immediately and register it to launch at login (or boot).

    [sudo] brew services stop formula|--all
    Stop the service formula immediately and unregister it from launching at login (or boot).

    [sudo] brew services restart formula|--all
    Stop (if necessary) and start the service immediately and register it to launch at login (or boot).

    [sudo] brew services cleanup
    Remove all unused services.
用法
1. brew services list
打印出安装的所有服务
2. brew services run service_name
运行某个服务,没有运行,运行,运行的,重启
3. brew services start| stop| restart  formula|--all
开启,关闭,重启

另外,自己定义服务,记住/Library/LaunchDaemons, ~/Library/LaunchAgents, /Library/LaunchDaemons,修改对应文件。

总结

homebrew内容很多,另外,扩展性和灵活性也很强大,如果感兴趣,可以去官网文档 阅读文档学习。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云知识学习

Windows Server 2008 用户管理

”用户”是计算机的使用者在计算机系统中的身份映射,不同的用户身份拥有不同的权限,每个用户包含一个名称和一个密码;

43212
来自专栏北京马哥教育

NFS实现(双httpd + php-fpm + nfs + mysql 搭建discuz论坛)

NFS相关介绍 一、NFS简介 1. NFS(Network File System): NFS是一个文件共享协议, 也是是在类Unix系统中在内核中实现的文件...

3557
来自专栏openshift持续集成

jenkins邮件插件中的内容参数设置

众所周知,Jenkins默认提供了一个邮件通知,能在构建失败、构建不稳定等状态后发送邮件。但是它本身有很多局限性,比如它的邮件通知无法提供详细的邮件内容、无法定...

8878
来自专栏西安-晁州

小程序开发知识点总结

我承认,最近比较懒了,博客也很久没更新了,太对不住自己了,做了一段时间小程序开发,总结了一些知识点,直接上菜。

2391
来自专栏容器云生态

Docker1.12尝试

前言:在docker1.12中默认增加了swarm mode 编排功能,并且官方支持更多的插件来进行docker的网路和外接存储插件,不过目前测试swarm m...

47210
来自专栏白驹过隙

Socket编程回顾,一个最简单服务器程序

2273
来自专栏云计算教程系列

如何在Ubuntu上构建Android ROM

Android是当今世界上最流行的操作系统。数以百计的不同设备制造商选择将其安装在他们的设备上,因为它是免费的开源的,并且围绕它构建了大量的应用程序和服务生态系...

1960
来自专栏数据和云

一个空格引发的血案

系统运维从来就是一个精细化的工作,除了规则与规范的约束之外,运维人员的严谨、谨慎也必不可少,有时候一个简单的错误就会导致一场灾难,小到一个字符,一个空格。 本文...

36211
来自专栏pythonlove

Linux防火墙iptables(二)

上一篇文章我们说了一些iptables/netfilter的基础知识,本文我们来介绍一下iptables的规则编写。Iptables的规则可以概括的分为两个方面...

3292
来自专栏calvin

jira webhook 事件触发并程序代码调用jenkins接口触发构建操作

开发管理工具触发站点构建事件,事件处理中需要调用Jenkins接口开始构建动作。 我的应用场景: 使用jira作为管理工具,在jira中创建自定义的工作流来...

7053

扫码关注云+社区

领取腾讯云代金券