homebrew 安装指定版本gradle(软件)安装源软件版本切换

在 mac OS 中使用 brew install 默认安装的软件都是最新版本的。有的时候我们需要安装指定版本,应该怎么做呢? 下面以 Gradle 为例演示一下安装过程以及版本切换的方法。

安装源

第一步,查看软件的信息

使用命令 brew info gradle 输出内容如下:

gradle: stable 4.9
Build system based on the Groovy language
https://www.gradle.org/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/gradle.rb
==> Requirements
Required: java >= 1.7 ✔
==> Options
--with-all
    Installs Javadoc, examples, and source in addition to the binaries

信息

可以看到,我这里是已经安装了 gradle 4.9 版本,第一行显示了 brew 使用的 bottled 里的 gradle 为 4.9 版本,在第 4 行中有路径。而现在需要安装的版本为 4.1。


第二步,修改安装源信息

查看文件sha256

 openssl dgst -sha256 /Users/admin/Downloads/gradle-4.1-all.zip 

我们将第 5 行显示的 From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/gradle.rb 文件下载到本地,然后编辑文件

class Gradle < Formula
  desc "Build system based on the Groovy language"
  homepage "https://www.gradle.org/"
  url "https://services.gradle.org/distributions/gradle-4.1-all.zip"
  sha256 "5c07b3bac2209fbc98fb1fdf6fd831f72429cdf8c503807404eae03d8c8099e5"

  bottle :unneeded

  option "with-all", "Installs Javadoc, examples, and source in addition to the binaries"

  depends_on :java => "1.7+"

  def install
    rm_f Dir["bin/*.bat"]
    libexec.install %w[bin lib]
    libexec.install %w[docs media samples src] if build.with? "all"
    (bin/"gradle").write_env_script libexec/"bin/gradle", Language::Java.overridable_java_home_env
  end

  test do
    assert_match version.to_s, shell_output("#{bin}/gradle --version")
  end
end

我们修改第4行 url 和第5行 sha256,将这两个关键信息修改,即可安装指定版本。可以从 https://gradle.org/releases/ 网站查询到 gradle v4.1 的相关信息,修改成如上内容并保存

其实这里的 url 可以改成任意地址,只要能下载到指定的 zip 文件即可。比如使用墙内的或本地的 gradle-3.5.1-all.zip 下载地址等等


第三步,使用修改过的安装源安装

然后我们执行安装命令 brew install ~/Downloads/gradle.rb,这里指定的 ruby 文件是我们修改后的文件路径,如果安装提示如下错误:

Error: gradle 4.9 is already installed
To install 4.1, first run `brew unlink gradle`

只需安装提示执行brew unlink gradle,然后再次执行安装命令brew install ~/Downloads/gradle.rb即可。

安装成功后执行命令gradle -v查看当前生效的版本

软件版本切换

查看软件信息

执行命令brew info gradle可以查看已安装的信息

/usr/local/Cellar/gradle/4.1 (169 files, 71.7MB) *
/usr/local/Cellar/gradle/4.9 (377 files, 249.7MB)

切换版本

如果我们需要切换成 4.1 的话,我们就使用

brew switch gradle 4.1 

命令,然后执行gradle -v查看当前生效的版本信息

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏python3

终端循环执行命令

1034
来自专栏PHP在线

Linux 软件的常用安装方法

对于操作系统而言,如果没有软件和一些任务算法 那么这个系统意义是不大的。而我们使用操作系统目的是为了让一些软件和任务能够运行在系统上,从而帮助我们提高工作的效率...

31510
来自专栏菩提树下的杨过

linux学习:CentOS、Mac上SSH的设置以及SceureCRT中的文件上传下载

java项目做好后,最终部署时,通常是通过SecureCRT(或其它终端)连接linux上传war包来进行。学几个基本的linux命令还是必要的。 一、Cent...

2365
来自专栏10km的专栏

maven:sql-maven-plugin插件执行sql脚本

sql-maven-plugin插件提供了sql脚本的执行功能,允许用户执行指定的sql脚本文件或语句。 最近在进行一个项目是基于maven管理的java开发项...

19110
来自专栏小樱的经验随笔

Redis未授权访问漏洞的利用及防护

Redis在默认情况下,会绑定在0.0.0.0:6379。如果没有采取相关的安全策略,比如添加防火墙规则、避免其他非信任来源IP访问等,这样会使Redis服务完...

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

如何在CentOS 7上设置Node.js生产应用程序

Node.js是一个开源的Javascript运行时环境,用于轻松构建服务器端和网络应用程序。该平台在Linux,OS X,FreeBSD和Windows上运行...

900
来自专栏北京马哥教育

Linux系统中三类重要文件的作用与区别

Linux系统中,有三种文件类型出现的非常频繁,那就是profile、bash_profile、bashrc文件。 因为名称的缘故,很多人会把这三类文件的作用记...

3285
来自专栏FreeBuf

Whonow:一款可实时执行DNS重绑定测试的DNS服务器

今天给大家介绍的是一款能够帮助渗透测试人员实时执行DNS重绑定(Rebinding)测试的DNS服务器。

1584
来自专栏IT派

看完这篇文章还能不懂Flask这种Web框架吗?

Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于...

832
来自专栏乐沙弥的世界

基于Linux下 Oracle 备份策略(RMAN)

对于 Oracle 数据库的备份与恢复,尽管存在热备,冷备以及逻辑备份之外,使用最多的莫过于使用RMAN进行备份与恢复。而制定RMAN备份策

802

扫码关注云+社区