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.