Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I made the mistake of installing Jenkins from the ubuntu package, which causes endless stress around here in update management. I have no quarrel with how Ubuntu arranged the files on disk.

For the curious, jenkins has an internal package manager that downloads plugin updates, and careful coordination of main jenkins installs and plugin upgrades is required to avoid chaotic conditions. So we haver to carefully block jenkins upgrades via, oh, apt-get upgrade when we don't know exactly what's going on with the plugins.

So, what I'd like to do is persuade dpkg / apt-get to forget that there is a jenkins package, without letting it delete any existing files.

By the way, the 'install' consists of one '.war' file plus the /etc/init.d links.

Obviously, I can backup up what I care about, remove the package, and restore, but I was hoping to learn that there was an obscure dpkg option that forgot to delete files.

Is there a way?

share|improve this question
    
You would have to install it outside of apt-get, from source (make install) or by backing up all the files, removing the package, and restoring the files from back up. I think this is a lousy solution to your problem, perhaps if you described the problem better we can give you a better solution. –  bodhi.zazen Dec 6 '11 at 23:09
    
he described the problem fine. pseudo-packages can solve almost anything. you could solve this with an empty pseudopackage. –  hbdgaf Dec 7 '11 at 0:07
    
How would an empty pseudopackage fix anything? He wants apt-get to forget that package is installed so it won't upgrade. –  tgm4883 Dec 7 '11 at 0:20

1 Answer 1

up vote 1 down vote accepted

The 'best' way to do this, is by manipulating /var/lib/dpkg/status.

HOWEVER!

That file has a sensitive syntax; Doing it the wrong way may break your package management.

Here is what you have to do:

Find a block that looks a little like this (The actual look may depend on the package you're trying to make 'invisible'):

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>

The first statement Package: <name> is where you have to look for, where <name> is the name of the package you want to remove.

Each block begins with a Package: <name> line, and ends with the next Package: line, BUT do not remove the next Package: statement!

If you keep that in mind, the package will no longer appear to be installed to dpkg; despite all the files still being available.

This is a terrible hack at best, but works just fine, I've done it a few times in the past myself, in a time when Ubuntu was still struggling with broken packages sometimes. I do not recommend it, it's a last resort option.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.