Regex Ansible:仅当软件包是最新版本时安装

Regex Ansible:仅当软件包是最新版本时安装,regex,ansible,Regex,Ansible,简介:目标是在本地服务器中安装和配置软件包(无需internet连接) 我已经完成了使用.deb文件和安装的任务,并且还使用模块来配置服务以编辑包配置文件 问题:如果服务器已经有旧版本 我可以使用以下命令安装当前版本: dpkg查询-f'${Version}'-W packageName` 我还开发了一个用来比较的数字 但现在我被卡住了=/ 问题: 如何使用正则表达式将当前版本号与要安装的版本号进行比较 我已经读过这本书了,但它没有引起任何反响 我无法发表评论,因为我无法发表评论,因为您只是尝

简介:目标是在本地服务器中安装和配置软件包(无需internet连接)

我已经完成了使用
.deb
文件和安装的任务,并且还使用模块来配置服务以编辑包配置文件

问题:如果服务器已经有旧版本

我可以使用以下命令安装当前版本:

dpkg查询-f'${Version}'-W packageName`
我还开发了一个用来比较的数字

但现在我被卡住了=/

问题: 如何使用正则表达式将当前版本号与要安装的版本号进行比较


我已经读过这本书了,但它没有引起任何反响 我无法发表评论,因为我无法发表评论,因为您只是尝试安装新的.deb包?(处理过程与不存在时完全相同)。它应该从我记忆中的框中取出,如果版本相同,就不要碰任何东西,就像使用名称一样(尽管我可能记性不好……)。同时,关于版本,您已经检查了过滤器,而实际上您想要查找@Zeitounator,它完成了版本比较的任务,谢谢!在旧版本上安装.deb会重新安装并删除所有配置。因此,使用寄存器并在安装更改时应用所有配置,occours工作得很好。安装在同一个版本上,不会改变任何东西!这是一个可行的解决办法。再次感谢!您是否只是尝试安装新的.deb包?(处理过程与不存在时完全相同)。它应该从我记忆中的框中取出,如果版本相同,就不要碰任何东西,就像使用名称一样(尽管我可能记性不好……)。同时,关于版本,您已经检查了过滤器,而实际上您想要查找@Zeitounator,它完成了版本比较的任务,谢谢!在旧版本上安装.deb会重新安装并删除所有配置。因此,使用寄存器并在安装更改时应用所有配置,occours工作得很好。安装在同一个版本上,不会改变任何东西!这是一个可行的解决办法。再次感谢!我花了一点时间回答,我在我的工作环境中做了几项测试。因此,对于我正在处理的情况,使用apt而不使用
仅升级
更容易,因为它只会在未安装软件包或使用@Zeitounator提到的更低版本时更改文件。它涵盖了目前的所有需要。如果需要更稳定的控制,
仅更新
无疑是最佳选择。谢谢我很高兴我的id锻炼出来了,谢谢:)我花了一点时间回答,我在我的工作环境中做了几个测试。因此,对于我正在处理的情况,使用apt而不使用
仅升级
更容易,因为它只会在未安装软件包或使用较低版本(如@Zeitounator所述)的情况下更改文件。它涵盖了目前的所有需要。如果需要更稳定的控制,
仅更新
无疑是最佳选择。谢谢我很高兴我锻炼出来了,谢谢:)
shell: ansible-doc apt
- only_upgrade
        Only upgrade a package if it is already installed.
        [Default: no]
        type: bool
        version_added: 2.1
- name: Attempt upgrade first
   apt: 
     deb: path/to/file.deb
   only_upgrade: True
   register: was_upgraded

- name: Install the package on a server that never had it
  apt:
    deb: path/dto/file.deb
  when: was_upgraded.false