首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自动保存未显示的APT包

自动保存未显示的APT包
EN

Server Fault用户
提问于 2021-05-14 08:51:09
回答 1查看 700关注 0票数 0

我不能列出系统本身保存的apt包。A有几个系统,我知道那里有保存包。apt-get upgrade -s显示:

代码语言:javascript
运行
复制
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  linux-image-amd64 openjdk-11-jre-headless
The following packages will be upgraded:
  ...

但是,当我运行apt-mark showholddpkg --get-selections | grep hold时,不会返回任何内容。

有没有任何方法(除了使用apt-get upgrade)来列出这些包?

当使用apt-mark hold <package>echo "<package> hold" | sudo dpkg --set-selections手动保存包时,包就会显示出来。

这对我来说是个问题,因为Ansible使用的python模块似乎并不尊重这些“自动”保存的包。

我的Ubuntu18.04.5LTS生产系统和Debian10.9实验室系统都有这个问题。智能没有安装(而且从来没有安装过),而且所有系统都是无头服务器,所以没有可怕的GUI魔法发生。

有人熟悉这个问题吗?

EN

回答 1

Server Fault用户

发布于 2021-05-17 09:25:01

问:"apt模块.不识别保存包,并且无论如何安装它们。dpkg_selections使用dpkg -get-set和-set-set命令(根据文档),这些命令在这种情况下也不起作用。“

答:我无法在Ubuntu20.04和Ansible 2.9.6中重现这个问题。当我选择一个要存放的包裹时。

代码语言:javascript
运行
复制
    - dpkg_selections:
        name: tmux
        selection: hold
      tags: selection

该命令按预期工作。

代码语言:javascript
运行
复制
shell> dpkg --get-selections | grep tmux
tmux                        hold

shell> tmux -V
tmux 3.0a

当我试图升级这个软件包的时候。

代码语言:javascript
运行
复制
    - apt:
        name: tmux
        state: latest

任务失败

致命:本地主机:失败!=> changed=false cache_update_time: 1621240502 cache_updated: false cache_updated:false- '/usr/bin/apt-get -y -o“Dpkg:选项:=-force-confdef”-o“Dpkg::选项:=-force-confdef confdef‘tmux’FAILED : E:持有的包被更改,-y在没有-允许更改-持有-包的情况下使用。rc: 100个stderr: change:持有的包被更改了,-y被使用时没有--允许更改--持有的包。stderr_lines: stdout:{##**$$}.建立依赖树..。正在读取状态信息...以下保存的软件包将被更改: tmux将升级以下软件包: tmux 1升级,0新安装,0删除,68未升级。stdout_lines:

将所选内容设置为安装时

代码语言:javascript
运行
复制
    - dpkg_selections:
        name: tmux
        selection: install

该命令也按预期工作。

代码语言:javascript
运行
复制
shell> dpkg --get-selections | grep tmux
tmux                        install

并且包可以升级。

代码语言:javascript
运行
复制
    - apt:
        name: tmux
        state: latest
      register: result
    - debug:
        var: result

给出

代码语言:javascript
运行
复制
ok: [localhost] => 
  result:
    cache_update_time: 1621240502
    cache_updated: false
    changed: true
    diff: {}
    failed: false
    stderr: ''
    stderr_lines: []
    stdout: |-
      Reading package lists...
      Building dependency tree...
      Reading state information...
      The following packages will be upgraded:
        tmux
      1 upgraded, 0 newly installed, 0 to remove and 68 not upgraded.

      ...

    - Preparing to unpack .../tmux_3.0a-2ubuntu0.3_amd64.deb ...
    - Unpacking tmux (3.0a-2ubuntu0.3) over (3.0a-2ubuntu0.2) ...
    - Setting up tmux (3.0a-2ubuntu0.3) ...
    - Processing triggers for man-db (2.9.1-1) ...
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1063517

复制
相关文章

相似问题

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