Làm cách nào để xóa bản ghi của gói đã cài đặt mà không xóa bất kỳ tệp nào?


8

Tôi đã phạm sai lầm khi cài đặt Jenkins từ gói ubfox, điều này gây ra căng thẳng vô tận quanh đây trong việc quản lý cập nhật. Tôi không có tranh cãi với cách Ubuntu sắp xếp các tệp trên đĩa.

Đối với người tò mò, jenkins có trình quản lý gói nội bộ tải xuống các bản cập nhật plugin và cần có sự phối hợp cẩn thận của các bản cài đặt jenkins chính và nâng cấp plugin để tránh các điều kiện hỗn loạn. Vì vậy, chúng tôi cố gắng chặn cẩn thận các nâng cấp của jenkins thông qua, ồ, nâng cấp apt-get khi chúng tôi không biết chính xác những gì đang xảy ra với các plugin.

Vì vậy, điều tôi muốn làm là thuyết phục dpkg / apt-get để quên rằng có một gói jenkins, mà không để nó xóa bất kỳ tệp nào hiện có.

Nhân tiện, 'cài đặt' bao gồm một tệp '.war' cộng với các liên kết /etc/init.d.

Rõ ràng, tôi có thể sao lưu những gì tôi quan tâm, xóa gói và khôi phục, nhưng tôi đã hy vọng biết rằng có một tùy chọn dpkg tối nghĩa mà quên xóa các tệp.

Là có một cách?


Bạn sẽ phải cài đặt nó bên ngoài apt-get, từ nguồn (thực hiện cài đặt) hoặc bằng cách sao lưu tất cả các tệp, xóa gói và khôi phục các tệp từ sao lưu. Tôi nghĩ rằng đây là một giải pháp tệ hại cho vấn đề của bạn, có lẽ nếu bạn mô tả vấn đề tốt hơn, chúng tôi có thể cung cấp cho bạn một giải pháp tốt hơn.
Panther

ông mô tả vấn đề tốt. gói giả có thể giải quyết hầu hết mọi thứ. bạn có thể giải quyết điều này với một giả hành trống rỗng.
RobotHumans

Làm thế nào một giả hành trống sẽ sửa chữa bất cứ điều gì? Anh ta muốn apt-get quên rằng gói đã được cài đặt để nó không nâng cấp.
tgm4883

Câu trả lời:


9

Cách 'tốt nhất' để làm điều này là bằng cách thao tác /var/lib/dpkg/status.

TUY NHIÊN!

Tập tin đó có một cú pháp nhạy cảm; Làm điều đó sai cách có thể phá vỡ quản lý gói của bạn.

Đây là những gì bạn phải làm:

Tìm một khối trông giống như thế này (Giao diện thực tế có thể phụ thuộc vào gói bạn đang cố gắng tạo 'vô hình'):

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>

Câu lệnh đầu tiên Package: <name>là nơi bạn phải tìm, đâu <name>là tên của gói bạn muốn xóa.

Mỗi khối bắt đầu bằng một Package: <name>dòng và kết thúc bằng Package:dòng tiếp theo , NHƯNG không xóa Package:câu lệnh tiếp theo !

Nếu bạn ghi nhớ điều đó, gói sẽ không còn được cài đặt thành dpkg nữa; mặc dù tất cả các tập tin vẫn có sẵn.

Đây là một vụ hack khủng khiếp ở mức tốt nhất, nhưng hoạt động rất tốt, tôi đã từng thực hiện nó một vài lần trong quá khứ, trong một thời gian khi Ubuntu vẫn đang vật lộn với các gói bị hỏng đôi khi. Tôi không khuyên bạn, đó là một lựa chọn cuối cùng.


RẤT đẹp (hack) để có trong hộp công cụ! ... Tôi đã tiết kiệm cho tôi hàng giờ chiến đấu với gói nhà cung cấp (zoom + libxcb-xtest0 deps) <thở dài>
Tweek

3

Vẫn rất hữu ích ngay cả khi hack. Một đề xuất được thêm vào là loại bỏ tương tự gói không mong muốn khỏi / var / lib / dpkg / có sẵn và xóa tất cả các tệp {gói}. * Khỏi / var / lib / dpkg / thông tin /

Tôi đã sử dụng điều này khi tôi quyết định cài đặt phiên bản mới hơn của một phần mềm từ nguồn, trước đây đã được cài đặt là phiên bản do Ubuntu phát hành. Đầu tiên tôi tải xuống và xây dựng / cài đặt phiên bản mới mà tôi muốn, sau đó sử dụng bản hack này để khiến dpkg quên đi phiên bản cũ hơn do Ubuntu phát hành.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.