如何使用ansible安装特定版本的brew cask公式?

如何使用ansible安装特定版本的brew cask公式?,ansible,versioning,homebrew-cask,Ansible,Versioning,Homebrew Cask,如何使用ansible安装自制桶配方的特定版本?例如,vagrant 2.2.6,而最新版本是2.2.7。我找到了这个解决方案: --- - hosts: all tasks: - name: Task 1 - Check vagrant 2.2.6 is installed stat: path=/usr/local/Caskroom/vagrant/2.2.6 register: vagrant_installed - name: Task 2 - Install

如何使用ansible安装自制桶配方的特定版本?例如,vagrant 2.2.6,而最新版本是2.2.7。

我找到了这个解决方案:

---
- hosts: all
  tasks:
  - name: Task 1 - Check vagrant 2.2.6 is installed
    stat: path=/usr/local/Caskroom/vagrant/2.2.6
    register: vagrant_installed
  - name: Task 2 - Install vagrant 2.2.6 if not yet installed
    block:
      - name: Create temporary directory to download vagrant formula
        tempfile:
          state: directory
        register: tempdir_vagrant_rb
      - name: Download formula vagrant.rb version 2.2.6
        get_url:
          url: https://raw.githubusercontent.com/Homebrew/homebrew-cask/ae2a540ffee555491ccbb2cefa4296c76355ef9f/Casks/vagrant.rb
          dest: "{{ tempdir_vagrant_rb.path }}/vagrant.rb"
      - name: Install vagrant 2.2.6
        command: brew cask install {{ tempdir_vagrant_rb.path }}/vagrant.rb
第一个任务通过转到默认cask目录检查vagrant 2.2.6是否已经安装。需要保持playbook幂等

第二个任务使用公式版本2.2.6的直接原始URL安装vagrant 2.2.6。为了找到URL,我使用了文档

$ brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask/<git-hash>/Casks/<cask-ruby-file>.rb
因此,我们需要用
git散列
cast ruby文件
来填补空白:

brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask/be76032ad4fd5b03036ebe3628a6294354017906/Casks/chefdk.rb

这并不有趣,但这是唯一的方法…

对于较新版本的自制软件,
cask
命令已被删除,并导致错误
错误:未知命令:cask

我可以通过以下步骤在
Homebrew 3.1.12
上安装特定版本:

  • 按照中的步骤查找包的
    .rb
    文件

  • 使用:
    curl-O-L本地下载该文件https://raw.githubusercontent.com/Homebrew/homebrew-cask//Casks/.rb
    (注意:YMMV取决于
    curl
    版本)

    例:
    curl-O-Lhttps://raw.githubusercontent.com/Homebrew/homebrew-cask/d81815ea27a778a312fa0e2bbef0d78f9767f45b/Casks/vagrant.rb

  • brew安装--cask.rb

    示例:
    brew安装--cask vagrant.rb

  • 在MacOS11.4上,我按照这些步骤将vagrant从2.2.16降级到2.2.15

    brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask/be76032ad4fd5b03036ebe3628a6294354017906/Casks/chefdk.rb