APT заклинило из-за несоответствия версий ядра

Apt, по-видимому, не в состоянии сделать что-нибудь полезное для меня, постоянно давая сообщения в такой форме:

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

Это в основном та же проблема, что и . Я не могу установить ни один пакет (linux-image- сервер, ошибки зависимостей linux-server) , который был закрыт Дублируйте ответ, который совершенно бесполезен для этой ситуации. Ни один из советов в о том, что очень общий ответ о зависимостях не помогает.

Явно:

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

все не имеют никакого эффекта. Хотя

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

все дают некоторую форму сообщения об ошибке выше.

18
задан 13 April 2017 в 15:23

3 ответа

Сиз sudo apt-get update чуркадыңыз, жана көйгөй дагы деле болсо орун алууда. Демек, сизде linux-image-server жана linux-headers-server дагы бир linux-server пакеттин караганда жаңыраак версиясы бар болушу мүмкүн. конфигурацияланган программалык камсыздоо булактары .

Бул өтө кыска мөөнөттө , эгерде сиз борбордук серверди колдонуп жатсаңыз дагы (же аны жаңыртууда көйгөй келип чыкса, андан дагы узак мөөнөткө) болушу мүмкүн. Менин түшүнүгүмдө, эгер сиз күзгү колдонсоңуз, ал узак убакыт бою пайда болушу мүмкүн. Бул күзгүлү колдонбоңуз дегенди билдирбейт - борбордук сервер ( http://archive.ubuntu.com ) адатта өтө жай иштейт жана улуттук, аймактык же башка күзгүлөр тезирээк .

топтомун издөө Ubuntu 12.04 үчүн linux-image-server жана linux-server экөөнүн тең 3.2.0.37.45 версиясы бар экендигин көрсөтөт. Демек, бул сиздин күзгүңүзгө байланыштуу болушу мүмкүн.

Бул жерде бир нече альтернатива бар:

Көңүл бурбаңыз

Эгерде сиз пакет менеджерин башка максаттарда, мисалы, башка пакеттерди орнотуу үчүн колдоно алсаңыз, анда жөн эле муну көрмөксөн. Күзгүңүз жаңырганда, сиз жөн гана топтомду аласыз.

Акыркы linux-server пакетинин жоктугу көйгөй эмес, анткени бул метапакета эч кандай иш жүзүндө программалык камсыздоо менен камсыз кылуу. Ал үч пакетти көзкарандылык катары тизмектеп , алардын орнотулгандыгын камсыз кылуу үчүн гана бар:

Сизде linux-headers-server жана акыркы нускалары бар ] linux-сүрөт-сервер . Менин оюмча, бул 64-биттик система, ошондуктан linux-generic-pae жөнүндө эч кандай билдирүү көрсөтүлгөн эмес. Баары жакшы окшойт.

Бирок:

  • Эгерде көйгөй жаңыртууга жана башка пакеттердин иштешине тоскоол болсо (жөн эле ошол билдирүүлөрдү көрсөткөнгө караганда , сиз кылган сайын). ошондуктан ага тоскоол болбостон), башка чечимди колдонушуңуз керек.
  • Ошондой эле, эгер сиз бул билдирүүлөрдү дайыма көрүп турууну жактырбасаңыз жана алардан арылгыңыз келсе.
  • ] Негизги жүктөө серверинен бир аз артта калган күзгүнү колдонсоңуз дагы, бул топтомду албай жатканыңыз бир аз таң калыштуу, анткени бул пакет http://security.ubuntu.com тарабынан берилген ]. Бул сервер ар дайым /etc/apt/sources.list дарегинде иштетилиши керек. Андыктан жандырылганын текшерип чыгууну сунуштайм. Аны оңдоодон мурун ources.listтин камдык көчүрмөсүн сактай аласыз ( sudo cp /etc/apt/sources.list /etc/apt/sources.list.old ). Көйгөй эски маалыматтар менен кэштелген веб-прокси (эгер сиз аны колдонгон болсоңуз) кесепети болушу мүмкүн. (Төмөндө келтирилген чечимдер дагы иштей берет.)

Башка жүктөө серверине өтүү

Сиз Ubuntu Server тутумун иштетип жатсаңыз керек жана GUI орнотулган эмес окшойт. Ошентип, караңыз:

Күзгүңүздү алмаштыргандан кийин, чуркап өтүңүз:

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

Кааласаңыз, серверди linux- дан кийин кайра өзгөртө аласыз. сервери жаңыртылды.

.deb Пакет файлын

Кол менен жүктөп жана орнотуңуз, .deb файлын кол менен жүктөп, орнотуп алсаңыз болот. linux-server Ubuntu 12.04теги метапакета.

CD пакетти каалаган жерге жүктөп алгыңыз келет.

Эгер бул 64-биттик система болсо, иштетиңиз:

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

Эгерде бул 32 биттик тутум, анын ордуна муну иштетиңиз:

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

(Мен бул шилтемелерди Launchpad баракчасынан linux-meta Ubuntu булагы пакети үчүн алган элем.)

Азыр (экөө үчүн тең) 64-бит жана 32-бит), пакетти орнотуу үчүн бул буйрукту аткарыңыз:

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

(Же жөн эле таңгактын атын терип баштаңыз жана аны толтуруу үчүн Tab ].

Топтомду алып салыңыз

] Сизде буга чейин бар программаны камсыз кылган метапакета болгондуктан, топтомду алып салсаңыз болот. Ошондо мындан ары ката болбойт. Кааласаңыз, кийинчерээк дагы бир жолу орното аласыз (жаңы версиянын бар-жогун билүү үчүн мезгил-мезгили менен apt-get update && apt-cache policy linux-server иштетип койсоңуз болот).

Эки кадам бар, аны алып салгыңыз келсе. Биринчиси linux-серверди чыгарып салуу. экинчиси, пакеттер кийинчерээк автоматтык түрдө алынып салынбай тургандыгын текшерүү.

Көз карандылыктар жок кылынат дароо дароо . Демек, ушул кадамдардын кайсынысын биринчи жасашыңыз маанилүү эмес.

1. линукс-серверди чыгарып салыңыз.

линукс-серверди алып салуу үчүн, жөн эле иштеп көрүңүз:

sudo apt-get remove linux-server

2. Анын көзкарандылыгын кол менен орнотулган деп белгилеңиз

APTге (таңгактын менеджерине) эч нерсе калбаса дагы, алардан көз карандылыкты жарыялаган эч нерсе калбаса дагы, орноткон пакеттериңиз жөнүндө айтып берүү үчүн, аларды кол менен орнотулган деп белгилеңиз.

Ал үчүн, муну иштетүү керек буйрук, эгер бул 64-биттик система болсо:

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

Эгер ал 32-биттик система болсо, анын ордуна аны иштет:

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

(Сизде apt-mark болушу керек, бирок сиз жок болсоңуз жана сиз программаны орното албайсыз, apt-mark manual ордуна apt-get install колдонсоңуз болот - орнотуу үчүн пакеттин кол менен көрсөтүлүшү, ал орнотулган болсо дагы, кол менен орнотулган деп белгиленет. орнотулган.)

Маалымат булагы: Деб топтомун колдонулган деп белгилөө, андыктан аны автоматтык түрдө алып салуу сунушталбайт
(Атап айтканда, Лекенстейндин жообу .)

20
ответ дан 13 April 2017 в 15:23

В ситуации с Ubuntu 12.04 необходимо было выполнить оба действия вручную установите linux-headers-server и linux-server (как было предложено выше - я бы прокомментировал там, но у меня еще нет этой привилегии), а затем apt-get remove linux-headers-virtual, который больше не существует как 64-битный пакет для 12.04.

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

0
ответ дан 13 April 2017 в 15:23

Если у вас была полная /загрузочная и автоматическая установка обновления безопасности сломана apt, вы можете быть в той же лодке, что и я.

Я не смог бы сделать что-нибудь такое, чтобы традиционные советы по полной /загрузке не сработали. Я вручную удалил старые данные ядра. Не удаляйте текущее работающее ядро, проверьте 'uname -a'. Я удалил 'sudo rm /boot/-3.2.0-{23,24,25,26}-.

Затем мне пришлось запустить 'sudo apt-get remove linux-server' и 'sudo apt-get install linux-server' для исправления проблемы с 1/2 установленным ядром. После всего этого, я наконец-то смог 'sudo apt-get upgrade' и заставить все двигаться снова.

Для хорошей меры, я выбросил 'sudo update-grub' и 'sudo apt-get autoremove', чтобы убедиться, что загрузочное меню было точным и другие пакеты были очищены.

4
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

Похожие вопросы: