然而!

然而!

我犯了一个错误,从 ubuntu 软件包安装了 Jenkins,这导致更新管理压力无穷。我对 Ubuntu 在磁盘上排列文件的方式没有异议。

好奇的话,jenkins 有一个内部包管理器,用于下载插件更新,需要仔细协调主要的 jenkins 安装和插件升级,以避免混乱的情况。因此,当我们不知道插件到底发生了什么时,我们必须小心地通过 apt-get upgrade 阻止 jenkins 升级。

因此,我想要做的是说服 dpkg / apt-get 忘记有一个 jenkins 包,而不让它删除任何现有文件。

顺便说一下,“安装”由一个“.war”文件加上 /etc/init.d 链接组成。

显然,我可以备份我关心的内容,删除包并恢复,但我希望了解到有一个模糊的 dpkg 选项忘记删除文件。

有办法吗?

答案1

实现此目的的“最佳”方法是通过操纵/var/lib/dpkg/status

然而!

该文件具有敏感语法;以错误的方式执行可能会破坏您的包管理。

以下是您需要做的:

找到一个看起来有点像这样的块(实际外观可能取决于您尝试使其“不可见”的包):

Package: xserver-xorg-input-vmmouse
Status: install ok installed
Priority: optional
Section: x11
Installed-Size: 136
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Version: 1:12.7.0-2
Provides: xorg-driver-input
Depends: libc6 (>= 2.7), xorg-input-abi-12, xserver-xorg-core (>= 2:1.10.0-0ubuntu1~), xserver-xorg-input-mouse, udev
Description: X.Org X server -- VMMouse input driver to use with VMWare
 This package provides the driver for the X11 vmmouse input device.
 .
 The VMMouse driver enables support for the special VMMouse protocol
 that is provided by VMware virtual machines to give absolute pointer
 positioning.
 .
 The vmmouse driver is capable of falling back to the standard "mouse"
 driver if a VMware virtual machine is not detected. This allows for
 dual-booting of an operating system from a virtual machine to real hardware
 without having to edit xorg.conf every time.
 .
 More information about X.Org can be found at:
 <URL:http://www.X.org>
 .
 This package is built from the X.org xf86-input-vmmouse driver module.
Original-Maintainer: Debian X Strike Force <[email protected]>

第一个语句Package: <name>是您必须查找的位置,<name>您要删除的包的名称在哪里。

每个块以一行开始Package: <name>,以下Package:一行结束,不要删除下一个Package:语句!

如果您记住这一点,尽管所有文件仍然可用,但该软件包将不再显示安装到 dpkg。

这充其量只是一种糟糕的破解方法,但效果很好,我自己过去也做过几次,当时 Ubuntu 仍在努力解决有时损坏的软件包问题。我不推荐这样做,这是最后的选择。

答案2

即使是黑客攻击,它仍然非常有用。一个额外的建议是同样从 /var/lib/dpkg/available 中删除不需要的包,并从 /var/lib/dpkg/info/ 中删除所有 {package}.* 文件

当我决定从源代码安装某个软件的较新版本时,我会使用这个,该版本之前已作为 Ubuntu 发行版本安装。首先,我下载并构建/安装了我想要的新版本,然后使用此 hack 让 dpkg 忘记较旧的 Ubuntu 发行版本。

相关内容