如何使用ansible安装特定版本的brew cask公式?
如何使用ansible安装自制桶配方的特定版本?例如,vagrant 2.2.6,而最新版本是2.2.7。我找到了这个解决方案:如何使用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
---
- 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
brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask/be76032ad4fd5b03036ebe3628a6294354017906/Casks/chefdk.rb