如何删除已安装软件包的记录而不删除任何文件?


8

我犯了从ubuntu软件包安装Jenkins的错误,这在更新管理中造成了无尽的压力。我对Ubuntu如何在磁盘上排列文件没有争议。

出于好奇,jenkins有一个内部软件包管理器,可下载插件更新,并且需要仔细协调主要的jenkins安装和插件升级,以避免混乱的情况。因此,当我们不知道插件到底是怎么回事时,我们不得不通过apt-get升级来仔细阻止jenkins升级。

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

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

显然,我可以备份我关心的内容,删除软件包并还原,但是我希望了解到有一个晦涩的dpkg选项忘记了删除文件。

有办法吗?


您将必须从源代码(进行安装)或从所有文件备份,删除软件包并从备份还原文件的方式将其安装在apt-get之外。我认为这是对您的问题的糟糕解决方案,也许如果您对问题的描述更好,我们可以为您提供更好的解决方案。
Panther,

他很好地描述了这个问题。伪包几乎可以解决任何问题。您可以使用空的伪包解决此问题。
RobotHumans 2011年

空的伪包将如何解决任何问题?他希望apt-get忘记安装了该软件包,因此不会升级。
tgm4883 2011年

Answers:


9

做到这一点的“最佳”方法是操纵/var/lib/dpkg/status

然而!

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

这是您要做的:

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

Package: xserver-xorg-input-vmmouse
Status: install ok installed
Priority: optional
Section: x11
Installed-Size: 136
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
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 <debian-x@lists.debian.org>

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

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

如果您牢记这一点,该软件包将不再似乎已安装到dpkg。尽管所有文件仍然可用。

充其量这是一个可怕的骇客,但工作得很好,在我自己过去曾经做过几次的时候,在Ubuntu有时仍在努力使用破损软件包的时候。我不建议这样做,这是不得已的选择。


工具箱中的工具非常好(hack)!...为我节省了与供应商软件包作战的时间(zoom + libxcb-xtest0 deps)<
sigh

3

即使遭到黑客入侵,还是非常有帮助的。另外建议是从/ var / lib / dpkg / available中删除不需要的软件包,并从/ var / lib / dpkg / info /中删除所有{package}。*文件。

当我决定从源代码安装某个软件的较新版本时,就使用了该版本,该软件先前已作为Ubuntu发布的版本进行安装。首先,我下载并构建/安装了所需的新版本,然后使用此技巧使dpkg忘记了Ubuntu发行的旧版本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.