APT được ghép bởi phiên bản kernel không khớp


18

Apt dường như không thể làm bất cứ điều gì hữu ích cho tôi, liên tục đưa ra các thông điệp có dạng này:

dpkg: dependency problems prevent configuration of linux-server:
 linux-server depends on linux-image-server (= 3.2.0.37.44); however:
  Version of linux-image-server on system is 3.2.0.37.45.
 linux-server depends on linux-headers-server (= 3.2.0.37.44); however:
  Version of linux-headers-server on system is 3.2.0.37.45.
dpkg: error processing linux-server (--configure):
 dependency problems - leaving unconfigured

Về cơ bản, đây là vấn đề tương tự vì tôi không thể cài đặt bất kỳ gói nào (lỗi phụ thuộc máy chủ linux-máy ảnh, máy chủ linux) đã bị đóng trùng lặp với một câu trả lời hoàn toàn vô dụng cho tình huống này. Không có lời khuyên nào trong câu trả lời rất chung chung về sự phụ thuộc giúp.

Rõ ràng:

sudo apt-get clean
sudo apt-get autoclean
sudo apt-get update

Tất cả đều không có tác dụng. Trong khi

sudo apt-get -f install
sudo dpkg --configure -a
sudo apt-get -u dist-upgrade
sudo apt-get -o Debug::pkgProblemResolver=yes dist-upgrade

tất cả đưa ra một số hình thức của thông báo lỗi ở trên.

Câu trả lời:


20

Bạn đã chạy sudo apt-get update, và vấn đề vẫn xảy ra. Vì vậy, bạn có thể có một phiên bản mới hơn linux-image-serverlinux-headers-serverhơn bất kỳ linux-servergói nào có sẵn từ các nguồn phần mềm được định cấu hình của bạn .

Điều này có thể xảy ra trong một thời gian rất ngắn ngay cả khi bạn đang sử dụng máy chủ trung tâm (hoặc trong thời gian dài hơn nếu có sự cố khi cập nhật nó). Hiểu biết của tôi là nó có thể xảy ra trong thời gian dài hơn nếu bạn sử dụng gương. Điều đó không có nghĩa là bạn không nên sử dụng máy nhân bản - máy chủ trung tâm ( http://archive.ubuntu.com) thường rất chậm và các máy nhân bản quốc gia, khu vực hoặc khác nhanh hơn nhiều.

Một tìm kiếm gói cho thấy phiên bản 3.2.0.37.45 của cả hai linux-image-serverlinux-servertồn tại cho Ubuntu 12.04. Vì vậy, nó có thể liên quan đến gương của bạn.

Đây là một số lựa chọn:

Bỏ mặc nó

Nếu bạn có thể sử dụng trình quản lý gói cho các mục đích khác, ví dụ, để cài đặt các gói khác, thì bạn có thể bỏ qua việc này. Khi gương của bạn được cập nhật, có lẽ bạn sẽ nhận được gói.

Không có vấn đề gì khi không có linux-servergói mới nhất , vì đó là một gói siêu dữ liệu không cung cấp bất kỳ phần mềm thực tế nào. Nó chỉ tồn tại để nó có thể liệt kê ba gói dưới dạng phụ thuộc , đảm bảo chúng vẫn được cài đặt:

Bạn đã có phiên bản mới nhất của linux-headers-serverlinux-image-server. Tôi đoán rằng đây là một hệ thống 64 bit, đó là lý do tại sao không có thông báo nào linux-generic-paeđược hiển thị. Có vẻ như mọi thứ đều ổn.

Tuy nhiên:

  • Nếu sự cố ngăn không cho cập nhật và cài đặt các gói khác hoạt động (trái ngược với việc chỉ hiển thị các thông báo đó bất cứ khi nào bạn làm như vậy nhưng không can thiệp vào nó), thì bạn nên áp dụng một số giải pháp khác.
  • Bạn cũng có thể muốn làm như vậy, nếu bạn không muốn nhìn thấy những tin nhắn này mọi lúc và muốn loại bỏ chúng.
  • Có một điều lạ là bạn không nhận được gói này, ngay cả khi bạn sử dụng máy nhân bản chậm hơn một chút so với máy chủ tải xuống chính, bởi vì gói này cũng được cung cấp bởi http://security.ubuntu.com. Máy chủ đó phải luôn được kích hoạt /etc/apt/sources.list. Vì vậy, tôi khuyên bạn nên kiểm tra để chắc chắn rằng nó được kích hoạt. Bạn có thể muốn sao lưu sources.listtrước khi chỉnh sửa nó ( sudo cp /etc/apt/sources.list /etc/apt/sources.list.old). Vấn đề cũng có thể là hậu quả của một proxy web lưu trữ (nếu bạn sử dụng một) với dữ liệu cũ. (Các giải pháp dưới đây cũng sẽ giải quyết vấn đề đó.)

Thay đổi máy chủ tải xuống khác

Tôi đoán bạn đang chạy một hệ thống Ubuntu Server và có thể không cài đặt GUI. Vậy hãy xem:

Sau khi thay đổi gương của bạn, hãy chạy:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Nếu bạn thích, bạn có thể thay đổi máy chủ của mình trở lại sau khi linux-serverđược cập nhật.

Tải xuống và cài đặt thủ công .debtệp gói

Bạn có thể tải xuống và cài đặt thủ công .debtệp cho phiên bản mới nhất của linux-serversiêu dữ liệu trong Ubuntu 12.04.

cd đến bất cứ nơi nào bạn muốn tải gói.

Nếu đây là hệ thống 64 bit, hãy chạy:

wget https://launchpad.net/ubuntu/+archive/primary/+files/linux-server_3.2.0.23.25_amd64.deb

Nếu đây là hệ thống 32 bit, hãy chạy hệ thống này thay thế:

wget https://launchpad.net/ubuntu/+archive/primary/+files/linux-server_3.2.0.23.25_i386.deb

(Tôi đã nhận được cả hai liên kết trên trang Launchpad cho linux-metagói nguồn trong Ubuntu .)

Bây giờ (đối với cả 64 bit và 32 bit), hãy chạy lệnh này để cài đặt gói:

sudo dpkg -i linux-server_3.2.0.23.25_*.deb

(Hoặc chỉ cần bắt đầu nhập tên của gói và sử dụng Tabđể hoàn thành nó.)

Hủy bỏ gói

Vì đó là phần mềm cung cấp phần mềm mà bạn đã có, bạn có thể xóa gói. Sau đó, bạn sẽ không nhận được lỗi nữa. Bạn có thể cài đặt lại sau nếu muốn (bạn có thể chạy định kỳ apt-get update && apt-cache policy linux-serverđể xem phiên bản mới có khả dụng không).

Có hai bước, nếu bạn muốn loại bỏ nó. Đầu tiên là gỡ cài đặt linux-server. thứ hai là để đảm bảo các gói sẽ không được tự động xóa sau đó.

Các phụ thuộc sẽ không được gỡ bỏ ngay lập tức . Vì vậy, không có vấn đề gì trong những bước này bạn làm đầu tiên.

1. Gỡ cài đặt linux-server.

Để gỡ cài đặt linux-server, chỉ cần chạy:

sudo apt-get remove linux-server

2. Đánh dấu các phụ thuộc của nó là cài đặt thủ công

Để nói với APT (người quản lý gói) về các gói mà bạn dự định đã cài đặt ngay cả khi không có gì còn lại tuyên bố chúng là phụ thuộc, hãy đánh dấu chúng là cài đặt thủ công.

Để làm điều đó, hãy chạy lệnh này, nếu đây là hệ thống 64 bit:

sudo apt-mark manual linux-image-server linux-headers-server

Nếu đó là hệ thống 32 bit, hãy chạy hệ thống này thay thế:

sudo apt-mark manual linux-image-server linux-headers-server linux-generic-pae

(Bạn nên có apt-marknhưng nếu bạn không và bạn không thể cài đặt phần mềm, bạn có thể sử dụng apt-get installthay vì - chỉ định apt-mark manualgói theo cách thủ công để cài đặt khiến nó được đánh dấu là cài đặt thủ công ngay cả khi đã được cài đặt.)

Nguồn: Đánh dấu gói gỡ lỗi là đã sử dụng, do đó, nó không được đề xuất cho autoremoval
(Đặc biệt, câu trả lời của Lekensteyn .)


3
Cảm ơn đã phản ứng chi tiết. Thay đổi gương không thay đổi tình hình. Nhưng cài đặt thủ công phiên bản mới hơn của máy chủ linux ( linux-server_3.2.0.37.45) đã khắc phục được sự cố.
Leopd

2
Trong trường hợp của tôi, tôi không thể sử dụng apt-get cho bất cứ điều gì. Tôi luôn nhận được lỗi phụ thuộc chưa được đáp ứng cho máy chủ linux. Lấy cảm hứng từ lời khuyên của bạn, tôi đã thử cách sau, cách này hiệu quả và đơn giản hơn nhiều:sudo apt-get remove linux-server && sudo apt-get install linux-server
Andrew Oblley

4

Nếu bạn đã cài đặt nâng cấp bảo mật đầy đủ / khởi động và tự động bị hỏng, bạn có thể ở cùng thuyền với tôi.

Tôi không thể có được apt-get để làm bất cứ điều gì để lời khuyên đầy đủ / khởi động truyền thống không hoạt động. Tôi tự xóa dữ liệu kernel cũ. Không xóa kernel đang chạy hiện tại, kiểm tra với 'uname -a'. Tôi đã xóa bằng 'sudo rm / boot / -3.2.0- {23,24,25,26} - .

Sau đó, tôi đã phải chạy 'sudo apt-get remove linux-server' và 'sudo apt-get install linux-server' để sửa lỗi lộn xộn từ vấn đề kernel đã cài đặt 1/2. Sau tất cả những điều đó, cuối cùng tôi cũng có thể 'sudo apt-get Nâng cấp' và khiến mọi thứ chuyển động trở lại.

Để có biện pháp tốt, tôi đã đưa vào 'sudo update-grub' và 'sudo apt-get autoremove' để đảm bảo menu khởi động chính xác và các gói khác đã được dọn sạch.


Tôi đã viết thêm một chút về quá trình này ở đây: Askubfox.com/a/430944/47461 Là một nhà thầu tôi thường xuyên gặp phải vấn đề này.
flickerfly

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.