首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >快速幂等抗apt url

快速幂等抗apt url
EN

Stack Overflow用户
提问于 2022-03-10 12:55:25
回答 1查看 364关注 0票数 1

看起来,即使已经安装了包,每次调用命令apt install https://github.com/jgraph/drawio-desktop/releases/download/v12.9.3/draw.io-amd64-12.9.3.deb也要花费很长的时间。它实际上是下载包的每一次。

是的,使用ansible是幂等的,状态改变了: no。

代码语言:javascript
复制
- name: Install a drawio-desktop .deb package
  apt:
    deb: https://github.com/jgraph/drawio-desktop/releases/download/v12.9.3/draw.io-amd64-12.9.3.deb
  when: ansible_facts['lsb']['id'] == "Ubuntu"
  tags:
    - debug
    - not-macos

如果安装了软件包,有什么简单的方法可以跳过下载?

理想的情况是在name中说,如果不是从deb: url安装,请考虑安装draw.io

代码语言:javascript
复制
- name: Install a drawio-desktop .deb package
  apt:
    name: draw.io
    deb: https://github.com/jgraph/drawio-desktop/releases/download/v12.9.3/draw.io-amd64-12.9.3.deb

但不是那样工作的

代码语言:javascript
复制
TASK [desktop : Install a drawio-desktop .deb package] *********
fatal: [tuxedo]: FAILED! => {"changed": false, "msg": "parameters are mutually exclusive: deb|package|upgrade"}

有什么更简单的解决办法来加速这项工作吗?

EN

回答 1

Stack Overflow用户

发布于 2022-03-10 14:46:18

根据参数deb,行为似乎是有意的。

Ansible将尝试在安装之前下载deb。

以及apt.py的当前来源。

因此,您可以查看一下模块package_facts

代码语言:javascript
复制
- name: Gather Package Facts
  package_facts:
    manager: apt # default ["auto"]

以及一个条件示例

代码语言:javascript
复制
  when: "ansible_facts['lsb']['id'] == 'Ubuntu' and 'draw.io' not in ansible_facts.packages"

贷给

进一步Q&A

另一种方法可能是让最新版本包始终在内部可用(缓存),并为本机包管理器提供一个.list文件,指向内部存储库URL (文件共享)。

通过这样做,你就可以用

代码语言:javascript
复制
- name: Install a drawio-desktop .deb package
  apt:
    name: draw.io
    state: latest

没有进一步的检查。这将解决所需的更新。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71424494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档