Homebrew 是 macOS 命令安装工具,其核心库里的命令行在 github homebrew-core 仓库上维护。

核心库命令大概有 5000 条左右,大部分的命令行工具只保留了最新版本的 .rb 安装脚本。因此,如果想通过 brew 安装指定版本或命令的多个版本,需要借助 git 操作来实现。

接下来以同时安装 tmux 最新版本和 2.4 版本为例进行说明:

1、安装最新版 tmux

brew install tmux
tmux -V

安装完成后运行 tmux -V 查看到当前最新版本为 tmux 2.8

2、查找 tmux 2.4 指定版本的 commit hash

下载 homebrew-core 至本地,查找 tmux.rb 提交历史中 2.4 版本的 commit hash

git clone https://github.com/Homebrew/homebrew-core.git
cd homebrew-core
git log master --grep=2.4 Formula/tmux.rb

版本库比较大,查询一段时间后,命令行输出以下内容:

commit 04c280961f568c8fcd25aa35d58834e016ccbd64
Author: BrewTestBot <brew-test-bot@googlegroups.com>
Date: Thu Apr 20 13:27:39 2017 +0100 tmux: update 2.4 bottle. commit 2d2034afc6e4dfab0a1c48f5edd2c5478576293b
Author: ilovezfs <ilovezfs@icloud.com>
Date: Thu Apr 20 05:22:28 2017 -0700 tmux 2.4 Closes #12673. Signed-off-by: ilovezfs <ilovezfs@icloud.com>
(END)

由此可知,tmux 2.4 版本的 commit hash 为 04c280961f568c8fcd25aa35d58834e016ccbd64

3、切换 git 指定分支使用本地脚本安装 tmux

由于已经安装过最新版 tmux 了,执行以下命令可以临时删除环境变量里的 alias 软链

brew unlink tmux

在本地的 homebrew-core 目录中,切换 git 至指定分支,并使用本地相对路径,安装需要的命令行工具。

git checkout 04c280961f568c8fcd25aa35d58834e016ccbd64
brew install ./Formula/tmux.rb

4、切换至任意版本的 tmux

安装完成后,可以通过 ls 看到同时安装了 2.4 和 2.8 两个版本

ls /usr/local/Cellar/tmux

之后使用 brew switch 命令即可在多个不同版本之间进行切换

brew switch tmux 2.8
brew switch tmux 2.4

brew 安装指定版本命令行工具 tmux 多版本实现的更多相关文章

  1. kratos v2版本命令行工具使用

    使用 下载 go install github.com/go-kratos/kratos/cmd/kratos/v2@latest 查看是否安装成功 kratos -v kratos version ...

  2. Linux中安装传输的命令行工具

    创建lrzsz目录: mkdir /usr/local/lrzsz 进入lrzsz目录: cd /usr/local/lrzsz 下载lrzsz压缩包: wget http://www.ohse.de ...

  3. [Linux] tmux 终端复用命令行工具

    tmux 终端复用命令行工具 tmux 是一款终端复用命令行工具,通常用于 Terminal 的窗口管理.可以在终端软件重启后通过命令行恢复上次的 session. 安装运行 macOS 上使用 Ho ...

  4. windows下的命令行工具babun

    什么是babun babun是windows上的一个第三方shell,在这个shell上面你可以使用几乎所有linux,unix上面的命令,他几乎可以取代windows的shell.用官方的题目说就是 ...

  5. Gitbook 命令行工具

    1.Gitbook 简介 1.1 Gitbook GitBook 是一个基于 Node.js 开发的命令行工具,使用它可以很方便的管理电子书,GitBook 是目前最流行的开源书籍写作方案. 使用 G ...

  6. 利用VS自带的命令行工具查看和生产PublicKeyToken (转)

    使用VS2013(或其他版本)命令行工具,键入:SN -T C:\*****.dll 就会显示出该dll具体的PublicKeyToken数值. 如果该程序集没有强命 名,则不会有PublicKeyT ...

  7. 利用VS自带的命令行工具查看和生产PublicKeyToken

    使用VS2008(或其他版本)命令行工具,键入:SN -T C:\*****.dll 就会显示出该dll具体的PublicKeyToken数值. 如果该程序集没有强命 名,则不会有PublicKeyT ...

  8. 【Mac】Mac OS X 安装GNU命令行工具

    macos的很多用户都是做it相关的人,类unix系统带来了很多方面,尤其是经常和linux打交道的人. 但是作为经常使用linux 命令行的人发现macos中的命令行工具很多都是bsd工具,跟lin ...

  9. Windows2008安装组件命令行工具ServerManagerCmd用法介绍

    转自:http://blog.sina.com.cn/s/blog_537de4b5010128al.html Windows2008 安装组件服务等内容比原来复杂的多,用鼠标点来点去,既繁琐也缓慢, ...

随机推荐

  1. 推荐一个比crontab更好用的东西:crongo

    This is a crontab service that supports hot plug and high performance. In addition, it supports seco ...

  2. elementui左侧菜单栏刷新后还是原来的状态

    <template> <div id="leftMenuList"> <el-row> <el-col :span="24&qu ...

  3. rabbit入门教程

    简介 rabbitmq是一个消息代理系统,为应用提供一个通用得消息发布,接受平台,为应用提供非阻塞的消息系统,方便进行异步处理. 优点 消息的可靠性.持久化消息,消息接受确认,消息重传等可靠机制. 灵 ...

  4. NSQ源码剖析之nsqd

    NSQ简介 NSQ 是实时的分布式消息处理平台,其设计的目的是用来大规模地处理每天数以十亿计级别的消息.NSQ 具有分布式和去中心化拓扑结构,该结构具有无单点故障.故障容错.高可用性以及能够保证消息的 ...

  5. 【Floyd】BZOJ1491: [NOI2007]社交网络

    Description   Solution n<=100自然联想Floyd 设两个数组d[n][n]存最短距离,t[n][n]存最短路径条数 更新d的时候顺便更新t,乘法原理 if(d[i][ ...

  6. 关于CocoaPods的ruby镜像文件问题

    项目遇到第三方库更新问题 时   用到cocoaPods更换淘宝ruby镜像问题的时候  报错 后来 又在别处找了下 发现 用的是 https  如下: 后来细想  可能跟Xcode7 要求HTTPs ...

  7. 关于table表格 td里内容较多换行的处理方法

    最近在用table的时候由于td内容较多默认换行了,很不美观.于是找到处理方法: 在声明table的时候添加一个样式: <table id="tbOffice" data-r ...

  8. Mui Webview下来刷新上拉加载实现

    有些事情经历过之后才会发现,原来再次之前我是如此的啥,因为是第一次做,毫无头绪,有时会想假如有个一demo就好了,那么就不会花费这么多的无用功了.今天使用mui 的webview实现了一个H5页面的上 ...

  9. 大白话5分钟带你走进人工智能-第四节最大似然推导mse损失函数(深度解析最小二乘来源)(2)

    第四节  最大似然推导mse损失函数(深度解析最小二乘来源)(2) 上一节我们说了极大似然的思想以及似然函数的意义,了解了要使模型最好的参数值就要使似然函数最大,同时损失函数(最小二乘)最小,留下了一 ...

  10. Django-ORM增删改查

    ORM对单表进行增删改查 一,增加记录 #第一种方式 b=Book(name="Linux",price=66,author="kelvin",pub_date ...