Tự động cài đặt kernel Backports Debian


8

Tôi đã có các bộ ghim sau:

Package: linux-image-amd64
Pin: release a=wheezy-backports
Pin-Priority: 1001

Package: *
Pin: release a=wheezy-backports
Pin-Priority: 499

Tôi nhận được lỗi sau đây:

$ sudo apt-get install linux-image-amd64
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 linux-image-amd64 : Depends: linux-image-3.16.0-0.bpo.4-amd64 but it is not going to   be installed
E: Unable to correct problems, you have held broken packages.

Các chính sách dường như là chính xác:

$ apt-cache policy linux-image-amd64
linux-image-amd64:
  Installed: 3.2+46
  Candidate: 3.16+63~bpo70+1
  Package pin: 3.16+63~bpo70+1
  Version table:
     3.16+63~bpo70+1 1001
        499 http://ftp.nl.debian.org/debian/ wheezy-backports/main amd64 Packages
 *** 3.2+46 1001
        500 http://ftp.nl.debian.org/debian/ wheezy/main amd64 Packages
        100 /var/lib/dpkg/status

$ apt-cache policy linux-image-3.16.0-0.bpo.4-amd64
linux-image-3.16.0-0.bpo.4-amd64:
  Installed: (none)
  Candidate: 3.16.7-ckt4-3~bpo70+1
  Version table:
     3.16.7-ckt4-3~bpo70+1 0
        499 http://ftp.nl.debian.org/debian/ wheezy-backports/main amd64 Packages

Vì vậy, tôi không nhận được lỗi. Tôi đang làm gì sai?

Tôi đang cố gắng sử dụng con rối để nâng cấp tất cả các máy Wheezy lên kernel backports (một kế hoạch khởi động lại đã được lên kế hoạch), đó là lý do tại sao tôi muốn giải quyết nó một cách chính xác. Tôi có thể tự đăng nhập vào tất cả các máy chủ để chạy:

sudo apt-get install -t wheezy-backports linux-image-amd64

Mà làm việc, nhưng không phải là thuận tiện.

CẬP NHẬT

Như yêu cầu:

/etc/apt/preferences.d$ cat linux-image 
Package: linux-image-*
Pin: release a=wheezy-backports
Pin-Priority: 1001

Package: *
Pin: release a=wheezy-backports
Pin-Priority: 499

/etc/apt/preferences.d$ sudo apt-get update
Hit http://debian.kumina.nl wheezy-kumina Release.gpg
.
.
.
Reading package lists... Done
/etc/apt/preferences.d$ sudo apt-get install linux-image-amd64
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 linux-image-amd64 : Depends: linux-image-3.16.0-0.bpo.4-amd64 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
/etc/apt/preferences.d$ aptitude why-not linux-image-3.16.0-0.bpo.4-amd64
Unable to find a reason to remove linux-image-3.16.0-0.bpo.4-amd64.

Câu trả lời:


3

Kiểm tra xem gói đó phụ thuộc vào cái gì và những phụ thuộc đó cũng cần. Ví dụ tôi thấy điều này cho máy của tôi:

#apt-cache  show linux-image-amd64
Package: linux-image-amd64
<snip>
Depends: linux-image-3.16.0-4-amd64

# apt-cache  show linux-image-3.16.0-4-amd64
Package: linux-image-3.16.0-4-amd64
<snip>
Depends: kmod | module-init-tools, linux-base (>= 3~), debconf (>= 0.5) | debconf-2.0, initramfs-tools (>= 0.110~) | linux-initramfs-tool
Pre-Depends: debconf | debconf-2.0

Kiểm tra nếu phụ thuộc được lấy từ backport là tốt.


Điều đó đã được giải thích trong câu hỏi của tôi ...
Tim Stoop

1
Tôi không thấy bất cứ điều gì về ghim phiên bản phụ thuộc trong câu hỏi của bạn. bạn cần định cấu hình mức độ ưu tiên cao hơn cho các gói cần thiết cho linux-image-3.16.0-0.bpo.4-amd64. kiểm tra này : Depends: kmod | module-init-tools, linux-base (>= 3~), debconf (>= 0.5) | debconf-2.0, initramfs-tools (>= 0.110~) | dracut (>= 0.40+1-1~) | linux-initramfs-tool. Nếu bạn sử dụng dracutví dụ, Wheezy có phiên bản 020-2 0, trong khi backport thì có 040+1-1 0. Trong trường hợp thiks, bạn cần tăng mức độ ưu tiên của gói Dracut để được lấy từ backport.
kích thích

Những cái đó có được kéo vào không khi tôi cài đặt nó thông qua 'apt-get -t wheezy-backports cài đặt linux-image-amd64'?
Tim Stoop

1
Nó sẽ, nếu bạn thực thi nó với -t wheezy-backports. Nhưng việc thực thi này cũng sẽ cài đặt tất cả các phiên bản mới hơn cho các phụ thuộc không được cài đặt từ backport, bất kể thực tế là phiên bản ổn định có đủ hay không. Nếu bạn chỉ cần cài đặt số lượng gói hạn chế và có kiểm soát từ backport, bạn cần theo dõi các phụ thuộc và ghim chúng theo cách thủ công. Nếu bạn không quan tâm đến điều đó, chắc chắn hãy tiếp tục và làm đầy đủ -t *backports.
kích thích

À hiểu rồi, bạn nói đúng. Tôi cũng cần phải tìm nạp initramfs-tools từ backport và sau đó nó có thể được thực hiện tự động. Cảm ơn!
Tim Stoop

5

sudo apt-get install -t wheezy-backports linux-image-amd64

nó không thuận tiện tôi biết .. nhưng đó là cách đúng đắn để làm mọi việc mà không gặp rắc rối trong tương lai (tất nhiên là IMHO)


Những rắc rối trong tương lai bạn sẽ mong đợi với điều này?
Tim Stoop

1
- nếu debian đã thiết kế hệ thống của nó hoạt động theo cách tôi "cho rằng" họ có lý do chính đáng của họ;) (xem Hướng dẫn nhập khẩu ) - ghim toàn bộ nguồn bạn ưu tiên cao hơn cho nhiều gói được biên dịch lại từ thử nghiệm và không ổn định và không được kiểm tra như các bộ chuyển đổi ổn định - triết lý sử dụng -tlà để cho gói cài đặt các phụ thuộc của nó .. "thực hiện đúng những gì bạn cần" .. - đó là cách tiếp cận danh sách trong một thời gian: làm những gì bạn biết phải làm, khi bạn cần
drAlberT

2
Điều này không có đủ upvote
John Blackberry

1

Thay đổi dòng trên cùng trong sở thích của bạn thành

Package: linux-image-*

Chạy

apt-get update

Hãy thử cài đặt lại. Nếu bạn vẫn nhận được lỗi, kiểm tra

aptitude why-not linux-image-3.16.0-0.bpo.4-amd64

Không hoạt động. Đã thêm đầu ra lệnh cho câu hỏi của tôi.
Tim Stoop

OK, cảm ơn vì đã cố gắng. Tôi có khuynh hướng sử dụng aptitudetrình giải quyết tương tác để xác định vấn đề. Có lẽ linux-*bao gồm các phụ thuộc khác? Có khả thi để thêm APT::Default-Release "wheezy-backports";vào cấu hình tạm thời không?
Hiệp sĩ Cedric

Chúng tôi thực sự loại bỏ năng khiếu khỏi tất cả các máy chủ của chúng tôi, tôi đã phải cài đặt nó để làm bài kiểm tra. Vì vậy, điều đó sẽ không khả thi. Thêm tùy chọn cấu hình tạm thời là không khả thi và, thành thật mà nói, không thực sự là một giải pháp hay :) Tôi khá chắc chắn rằng điều này có thể thực hiện được với apt-get mà không có bất kỳ hack nào, chỉ không thể tìm ra cách!
Tim Stoop
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.