Golang最新稳定版本的URL

时间:2018-08-20 15:06:30

标签: go

是否有一个永久的URL指向golang的最新Linux二进制版本?

我正在编写一个ansible脚本,该脚本应下载最新的golang版本并进行安装。在golang下载网站“ https://golang.org/dl/”中,我只能看到特定于发行版的下载链接。

我想知道是否有诸如“ https://dl.google.com/go/latest.linux-amd64.tar.gz”之类的链接?

如果对如何编写脚本以获取最新的golang版本并进行安装没有任何建议?

4 个答案:

答案 0 :(得分:1)

您可以一口气下载最新的稳定版GO:)

wget "https://dl.google.com/go/$(curl https://golang.org/VERSION?m=text).linux-amd64.tar.gz"

答案 1 :(得分:0)

我建议您使用jlund/ansible-go之类的东西,或者复制您需要的角色的一部分。

答案 2 :(得分:0)

Google有一个Linux安装程序可以在Linux上安装go: https://storage.googleapis.com/golang/getgo/installer_linux

这将获取“ go”的最新版本并进行安装。到目前为止,似乎这是在Linux上安装最新的go版本的最简单方法。

答案 3 :(得分:0)

您可以使用生成最新的网址:

https://dl.google.com/go{{ version }}.{{ os }}-{{ arch }}.tar.gz

os:linux,darwin,windows,freebsd arch:amd64、386,armv6l,arm64,s390,ppc64le

对于最新的稳定版本,您可以使用curl或其他方法从url中获取值:

https://golang.org/VERSION?m=text

以下是一个有趣的剧本:

---
- hosts: server
  gather_facts: no

  vars:
    version : "latest"
    arch: arm64
    os: linux

    latest_version_url: https://golang.org/VERSION?m=text
    archive_name: "{{ filename_prefix }}.{{ os }}-{{ arch }}.tar.gz"
    download_url: https://dl.google.com/go/{{ archive_name }}
    bin_path: /usr/local/go/bin

  tasks:
    - name: Get filename prefix with latest version
      set_fact:
        filename_prefix: "{{ lookup('url', latest_version_url, split_lines=False) }}"
      when: version == "latest"

    - name: Get filename prefix with fixed version
      set_fact:
        filename_prefix: go{{ version }}
      when: version != "latest"

    - name: Try to get current go version installed
      command: go version
      register: result
      changed_when: false

    - name: Set current_version var to the current
      set_fact:
        current_version: "{{ result.stdout.split(' ')[2] }}"
      when: result.failed == false

    - name: Set current_version var to none
      set_fact:
        current_version: "none"
      when: result.failed == true

    - debug:
        var: current_version

    - name: Download and extract the archive {{ archive_name }}
      become: true
      unarchive:
          src: "{{ download_url }}"
          dest: /usr/local
          remote_src: yes
      when: current_version != filename_prefix