Jak mogę usunąć zapis zainstalowanego pakietu bez usuwania plików?


8

Popełniłem błąd, instalując Jenkinsa z pakietu ubuntu, co powoduje niekończący się stres w zarządzaniu aktualizacjami. Nie mam kłótni z tym, jak Ubuntu ustawił pliki na dysku.

Dla ciekawskich, jenkins ma wewnętrznego menedżera pakietów, który pobiera aktualizacje wtyczek, a ostrożna koordynacja instalacji głównych jenkins i aktualizacji wtyczek jest wymagana, aby uniknąć chaotycznych warunków. Musimy więc ostrożnie blokować aktualizacje Jenkins poprzez, och, apt-get upgrade, gdy nie wiemy dokładnie, co się dzieje z wtyczkami.

Tak więc chciałbym przekonać dpkg / apt-get, aby zapomniał, że istnieje pakiet Jenkinsa, nie pozwalając mu usuwać żadnych istniejących plików.

Nawiasem mówiąc, „instalacja” składa się z jednego pliku „.war” oraz linków /etc/init.d.

Oczywiście mogę wykonać kopię zapasową tego, co mnie obchodzi, usunąć pakiet i przywrócić, ale miałem nadzieję dowiedzieć się, że istnieje niejasna opcja dpkg, która zapomniała usunąć pliki.

Czy jest jakiś sposób?


Będziesz musiał zainstalować go poza apt-get, ze źródła (wykonaj instalację) lub przez wykonanie kopii zapasowej wszystkich plików, usunięcie pakietu i przywrócenie plików z kopii zapasowej. Myślę, że to kiepskie rozwiązanie twojego problemu, być może, jeśli lepiej opisałeś problem, możemy dać ci lepsze rozwiązanie.
Panther

dobrze opisał problem. pseudopakiety mogą rozwiązać prawie wszystko. możesz to rozwiązać za pomocą pustego pseudopaku.
RobotHumans,

W jaki sposób pusty pseudopakiet mógłby coś naprawić? Chce, aby apt-get zapomniał, że pakiet jest zainstalowany, więc nie można go zaktualizować.
tgm4883,

Odpowiedzi:


9

„Najlepszym” sposobem na to jest manipulacja /var/lib/dpkg/status.

JEDNAK!

Ten plik ma delikatną składnię; Zrobienie tego w niewłaściwy sposób może zepsuć zarządzanie pakietami.

Oto, co musisz zrobić:

Znajdź blok, który wygląda trochę tak (Rzeczywisty wygląd może zależeć od pakietu, który próbujesz uczynić „niewidocznym”):

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>

Pierwsza instrukcja Package: <name>to miejsce, w którym musisz szukać, gdzie <name>jest nazwa pakietu, który chcesz usunąć.

Każdy blok zaczyna się od Package: <name>linii, a kończy na następnej Package:linii, ALE nie usuwaj następnej Package:instrukcji!

Jeśli będziesz o tym pamiętać, pakiet nie będzie już wyglądał na zainstalowany w dpkg; pomimo tego, że wszystkie pliki są nadal dostępne.

Jest to w najlepszym razie okropny hack, ale działa dobrze, robiłem to już kilka razy w przeszłości, w czasach, gdy Ubuntu wciąż walczyło z uszkodzonymi pakietami. Nie polecam, jest to opcja ostateczna.


BARDZO miło (włamać się) do przybornika! ... Zaoszczędziłem godziny walki z pakietem dostawcy (zoom + libxcb-xtest0 deps) <westchnienie>
Tweeks

3

Nadal bardzo pomocne, nawet jeśli hack. Dodatkową sugestią jest podobne usunięcie niechcianego pakietu z / var / lib / dpkg / available i usunięcie wszystkich plików {package}. * Z / var / lib / dpkg / info /

Użyłem tego, kiedy zdecydowałem się zainstalować nowszą wersję oprogramowania ze źródła, które wcześniej było instalowane jako wersja wydana przez Ubuntu. Najpierw pobrałem i zbudowałem / zainstalowałem nową wersję, którą chciałem, a następnie wykorzystałem ten hack, aby dpkg zapomniał o starszej wersji wydanej przez Ubuntu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.