Оновлено до 18.04 і тепер має багато зламаних пакетів та невиконаних залежностей


18

Я зробив жахливу помилку і перейшов до 18.04, не створюючи резервну копію в іншому розділі, виконавши:

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt-get autoremove
sudo apt install update-manager-core
sudo do-release-upgrade -d

Потім я зробив команди оновлення та оновлення після перезавантаження. Зараз існує багато проблем із невиконаними залежностями та зламаними пакетами, які sudo apt-get -f installкоманди не можуть виправити. ОНОВЛЕННЯ Перша частина виводу з журналу помилок sudo apt install -f:

    Reading package lists...
Building dependency tree...
Reading state information...
Correcting dependencies... failed.
The following packages have unmet dependencies:
 gnome-calendar : Depends: gsettings-desktop-schemas (>= 3.21.2) but 3.18.1-1ubuntu1 is installed
 gnome-session : Depends: gnome-shell (>= 3.25.91-0ubuntu4~) but it is not installed
                 Depends: gnome-session-bin (>= 3.28.1-0ubuntu2) but 3.18.1.2-1ubuntu1.16.04.2 is installed
                 Depends: gnome-session-common (= 3.28.1-0ubuntu2) but 3.18.1.2-1ubuntu1.16.04.2 is installed
                 Depends: xwayland but it is not installed
                 Recommends: fonts-cantarell but it is not installed
                 Recommends: adwaita-icon-theme-full
                 Recommends: gnome-themes-extra but it is not installed
 gnome-settings-daemon : Depends: libgnome-desktop-3-17 (>= 3.17.92) but it is not installed
                         Depends: gsettings-desktop-schemas (>= 3.20) but 3.18.1-1ubuntu1 is installed
 hplip : Depends: python3 (< 3.6) but 3.6.5-3 is installed
 libc-dev-bin : Depends: libc6 (< 2.24) but 2.27-3ubuntu1 is installed
 libc6-dbg : Depends: libc6 (= 2.23-0ubuntu10) but 2.27-3ubuntu1 is installed
 libc6-dev : Depends: libc6 (= 2.23-0ubuntu10) but 2.27-3ubuntu1 is installed
 libgmime-3.0-0 : Depends: libgpgme11 (>= 1.7.0) but 1.6.0-1 is installed
 libreoffice-avmedia-backend-gstreamer : Depends: libreoffice-core (= 1:5.1.6~rc2-0ubuntu1~xenial3) but 1:6.0.3-0ubuntu1 is installed
 libreoffice-base-core : Depends: libreoffice-core (= 1:5.1.6~rc2-0ubuntu1~xenial3) but 1:6.0.3-0ubuntu1 is installed
 libreoffice-calc : Depends: libreoffice-base-core (= 1:6.0.3-0ubuntu1) but 1:5.1.6~rc2-0ubuntu1~xenial3 is installed
                    Depends: liborcus-0.13-0 (>= 0.13.3) but it is not installed
 libreoffice-core : Depends: libgpgmepp6 (>= 1.10.0) but it is not installed
                    Depends: liborcus-0.13-0 (>= 0.13.3) but it is not installed
                    Depends: libpoppler73 (>= 0.62.0) but it is not installed
                    Depends: libxmlsec1 (>= 1.2.25) but it is not installed
                    Depends: libxmlsec1-nss (>= 1.2.25) but it is not installed
 libreoffice-gnome : Depends: libreoffice-gtk3 but it is not installed
 libreoffice-gtk : Depends: libreoffice-gtk2 but it is not installed
 libreoffice-math : Depends: libreoffice-core (= 1:5.1.6~rc2-0ubuntu1~xenial3) but 1:6.0.3-0ubuntu1 is installed
 libreoffice-writer : Depends: libreoffice-base-core (= 1:6.0.3-0ubuntu1) but 1:5.1.6~rc2-0ubuntu1~xenial3 is installed
                      Depends: libabw-0.1-1 but it is not installed
                      Depends: libepubgen-0.1-1 (>= 0.1.0) but it is not installed
 libtotem0 : Depends: libgnome-desktop-3-17 (>= 3.17.92) but it is not installed
 libwayland-egl1-mesa : Depends: libegl1 but it is not installed
 libwebkitgtk-1.0-0 : Depends: libjavascriptcoregtk-1.0-0 (= 2.4.11-0ubuntu0.1) but 2.4.11-3ubuntu3 is installed
                      Depends: libwebkitgtk-1.0-common (>= 2.4.11) but it is not installable
 nautilus : Depends: libgnome-desktop-3-17 (>= 3.18.1) but it is not installed
 python3-brlapi : Depends: python3 (< 3.6) but 3.6.5-3 is installed
 python3-cffi-backend : Depends: python3 (< 3.6) but 3.6.5-3 is installed
 python3-crypto : Depends: python3 (< 3.6) but 3.6.5-3 is installed

і

E: Error, pkgProblemResolver::Resolve generated breaks,   
this may be caused by held packages.  

При спробі виправити зламані пакети в Synaptic видає це повідомлення про помилку:

E: Error, pkgProblemResolver::Resolve generated breaks,   
this may be caused by held packages.     

Схоже, що з файлом source.list щось не так, і, здається, оновлено, коли я спробував встановити. Я ледве знаю, що роблю, і радий надати більше деталей у повідомленнях про помилки. Якщо є спосіб увімкнути прокручування в xterm, то я зараз використовую, оскільки термінал Gnome неможливо відкрити.

Я хотів би видалити всі 47 зламаних пакетів і пакетів, що зберігаються, перевстановити їх правильно або не встановлювати їх зараз, якщо це варіант (наприклад, для таких речей, як LibreOffice, які не є поточною потребою), і мати можливість використовувати Gnome термінал.

Я шукаю кроків для початківців, як виправити всі ці проблеми. Чи є посібник про те, як почати? Явна публікація, яку я пропустив у пошуках відповідей? Я думаю, що цей пост йде в правильному напрямку, але це трохи над головою. Будь-яка допомога дуже цінується. Мені цікаво, чи було б по-справжньому простіше почати з нової установки 16.04.


Спробуйте sudo apt-get install -fі dpkg --configure -a.
N0rbert

1
@ N0rbert OP каже install -fвже запущений.
WinEunuuchs2Unix

1
Ви можете спробувати здібності, це іноді є більш успішним у виправленні поганого дерева пакетів.
Себастьян Старк

Чому ви використовували -d на do-release-upgrade? Чесно кажучи, найпростіший виправлення - це зробити чисту установку, якщо можете.
chaskes

Зробив -d, тому що я, мабуть, відчував себе вільним і фантазійним вільним у п’ятницю вранці, і в Інтернеті мені це сказали, тому все навколо справді жахливий набір рішень. Потрібно сказати, що я засвоїв свій урок. Чиста установка чи принаймні терплячість до першого випуску стануть моїм переходом у майбутньому.
k.mat27

Відповіді:


10

У мене була точно така ж проблема. Мені довелося редагувати /var/lib/dpkg/statusта очистити весь рядок залежно від пакунків, на які скаржилися.
Я не впевнений, які ще проблеми можуть бути причиною, але це було єдине, що apt-get install -fзнову почало працювати.


Чи є вилучення рядка залежності швидким виправленням, щоб дозволити мені встановити версії, які вимагають пакети, щоб ці пакети працювали? Яким був ваш наступний крок після цього? Я відредагував своє первісне запитання, щоб показати декілька помилок, пов’язаних з версією python, тому що я стурбований тим, що вони є невід'ємною функцією 18.04 в цілому, але якби у вас був успіх у цьому, я б спробував спробувати.
k.mat27

1
В основному, я думаю, що це дозволяє "вдалому отримати" тривати, а не бомбардувати і відмовлятися робити що-небудь, тому що отримує багато помилок залежності. Після того, як я усунув залежності від кожного пакета, який попереджав, я запустив "apt-get install -f", і тоді я думаю, "apt get upgrade", який продовжував робити налаштування / установку близько 800 пакетів. Здавалося, він завис у середині оновлення 18.04, ще купа встановлень очікує на розгляд. Після завершення оновлення все здається нормальним, і я запускаю стабільну систему 18.04.
dmattp

1
Також не забудьте створити резервну копію файлу "статус" перед редагуванням! Якщо ви завантажуєте файл із ручним редагуванням, вам доведеться відновити його із резервної копії.
dmattp

Після резервного копіювання файлу стану я дав вам рішення. Мені довелося повторити кроки кілька разів, а потім довелося видалити одну вішалку (те, що я все одно не використовую), що я робив через Synaptic. Зараз я можу встановлювати речі, що чудово, але як застереження для інших, хто може спробувати це, я все ще не можу використовувати Програмне забезпечення та оновлення та гноми, які були стандартними з 16.04 ..., що мені добре, але це може бути погано для інші. Дякую! Я буду терплячим до справжнього випуску 18.04 - який я вітатиму, створивши резервне копіювання знову та виконавши чисту установку ... засвоєний урок.
k.mat27

Це працювало на моїй системі. Я видалив усі незадоволені залежності з / var / lib / dpkg / status
Fahad Naeem

10

Ось кілька речей, які можна спробувати.

Спосіб перший:

Це найпростіше спробувати. Замість використання sudo apt-get install PACKAGENAME, де PACKAGENAME - це пакет, який ви намагаєтесь встановити за допомогою apt системи, використовуйте sudo apt-get install -f. Параметр -f спробує виправити систему, яка порушила залежності, після чого ви зможете встановити відповідний пакет.

Відкрийте термінал і введіть:

sudo apt-get install -f

і натисніть ENTER.

Тепер введіть:

sudo dpkg --configure -a

і натисніть ENTER.

Тепер ще один раз:

sudo apt-get install -f

Спосіб другий:

Aptitude - це альтернатива apt-get, яку можна використовувати як менеджер пакетів вищого рівня. Ви можете використовувати його, щоб спробувати встановити свій пакет разом із ним замість apt-get, але спочатку вам потрібно встановити здатність.

Відкрийте термінал і введіть:

sudo apt-get install aptitude

і натисніть ENTER.

Тепер введіть:

sudo aptitude install PACKAGENAME

і натисніть ENTER.

PACKAGENAME - це пакет, який ви встановлюєте. Це спробує встановити пакет через aptitude замість apt-get, який потенційно може виправити проблему, що не відповідає.

ЯКЩО НЕ ПРАЦЮЄ

Пошкоджений пакет мот, ймовірно, заблокований і його потрібно видалити. Щоб видалити заблокований файл, відкрийте термінал і введіть:

sudo rm /var/lib/apt/lists/lock

і натисніть ENTER.

Заблокований файл також може знадобитися видалити з каталогу кеша. Для цього відкрийте термінал і введіть:

sudo rm /var/cache/apt/archives/lock

Я пройшов модернізацію з 16.04 і мав багато різних питань. Мені було набагато простіше зробити свіжу установку. По-моєму, свіжа чи чиста установка - це завжди шлях.

Сподіваюся, це допомагає,


І що нам робити з вашою неправильною командою sudo dpkg –configure -a(типографіка не працюватиме в терміналі)? Схоже, копіюйте та вставляйте без критичного роздуму. Відредагуйте свою відповідь і будьте точнішими наступного разу!
N0rbert

Добре вибачте за друкарський друк! Моє ліжко. Відповідь відредаговано.
Дейв

1
Будь ласка, не публікуйте однакову відповідь на багато питань. Опублікування однакової відповіді скрізь не є рішенням "одна річ для всіх", і, якщо ви справді не зможете підтвердити, що всі запропоновані рішення справді виправляють вказані проблеми, тоді вам слід рішуче переглядати повідомлення про всю відповідь скрізь.
Томас Уорд

Привіт, Дейве, чи є негативні наслідки, які можуть виникнути при спробі видалити заблокований файл та його присутність у каталозі кешу? Слідом за цим, чи варто повертатися до того, щоб спробувати вашу пропозицію Методу 1 ще раз (після першої установки встановленого вміння!) Чи це може призвести до тієї ж проблеми?
k.mat27

Встановлення здатності відрізняється від методу, тому повернення до нього було б зайвим. Що стосується видалення заблокованого файлу, я завжди переконувався, що знаю, що це таке, або якщо цей конкретний файл заблокований, оскільки чомусь залежності не вдалося встановити (що було в моєму випадку кілька разів). У моєму випадку я видалив файли, а потім знову встановив за допомогою менеджера пакунків. Я настійно рекомендую Synaptic Package Manager, оскільки це може допомогти виправити незадовільні залежності.
Дейв

3

З правами root, перейдіть до var/lib/dpkg/statusта видаліть вміст файлу статусу.

То sudo dpkg --configure -aі тодіsudo apt-get install -f

Потім встановіть те, що ви хочете, тобто

sudo apt-get install nvidia-390 

2

Я хочу додати до цього обговорення, кажучи, коли для оновлення програмного забезпечення до 18.04 використовується оновлення програмного забезпечення та виникає проблема, для вирішення якої потрібно відкрити термінал і ввести:

sudo apt-get autoremove

з подальшим тим, що спочатку спричинило щось не так, що веде до цієї дискусії, яка полягає в наступному:

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt-get autoremove
sudo apt install update-manager-core
sudo do-release-upgrade -d

Ласкаво просимо JWeb777 на запитання Ubuntu! Рекомендую відредагувати цю відповідь, щоб розширити її конкретними подробицями, чому авторемонта гальмує проблему.
abu_bua

1
Я не впевнений, що розумію прохання? Але проблеми, які це вирішило, були під час оновлення, щось пішло не так довга історія. Я завершив часткове оновлення, що програми оновлення програмного забезпечення, встановлені в Ubuntu, не змогли вирішити командний рядок, який я розмістив у цьому порядку, усунув перерви та приніс усі прогалини повернутися в робочий стан з більшістю зроблених оновлень, а також не залишилося жодних проблем і залишилось мінімальне оновлення
JWeb777

Якби Ви вказали, що ви хочете дізнатися трохи більше, можливо, я маю кращу відповідь
JWeb777

1

"Якщо є спосіб увімкнути прокручування в xterm", оскільки ви не можете прокрутити вгору, ви можете надіслати весь вихід у файл, використовуючи:

sudo apt install -f > output.log

Потім відредагуйте output.logта скопіюйте повідомлення до свого запитання. Ваші шанси на отримання хорошої відповіді покращуються за допомогою додаткової інформації.


Щодо тих, хто хоче скопіювати свої дані в резервний розділ перед оновленням до 18.04, ось команда, запозичена з цієї відповіді: Сценарій Bash для клонування Ubuntu до нового розділу для тестування оновлення 18.04 LTS

rsync -haxAX --stats --delete --info=progress2 --info=name0 /* "$TargetMnt" \
      --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found}

Перед запуском команди потрібно створити резервний розділ і змонтувати його. Після монтажу встановіть:

TargetMnt=/mnt/my_backup_partition_name

Звичайно, простішим методом є лише запуск сценарію, пов'язаного вище. Він не тільки забезпечує інтерактивний вибір резервного розділу, але забезпечує перевірку та модифікацію, grubщоб ви могли завантажуватись у резервний розділ, якщо це необхідно.

PS Мені сумно чути про ваші проблеми та про багато інших проблем, які я читав тут у Ask Ubuntu з моменту виходу 18.04. На жаль, з кожним новим випуском виникають подібні проблеми. Сподіваємось, якийсь день Конік підкреслює важливість створення резервної копії та / або тестування на клоновому розділі спочатку перед оновленням. Особливо перед першим пунктом випуску 18.04.1, який надходить 26 липня 2018 року.


Дуже ціную відповідь на частину питання xterm, тим більше, що я розумію, що це було поза темою для решти публікацій (моє погано). Оригінальне запитання відредаговано вище. Бажаю, я б в першу чергу прийняв вашу пораду з клоном, але зроблю це, як тільки я виправлю поточну проблему і знову в майбутньому!
k.mat27

@ k.mat27 Я починаю клонуватись ще до того, як встановлювати драйвери nVidia, які викликали у мене всіляке горе і важко їх "скасувати". Ви випадково не зрозуміли моєї відповіді?
WinEunuuchs2Unix

Ні! Хотілося б, насправді, але мені не вистачає репутації.
k.mat27

Коли ви клацаєте прапорець поруч із відповіддю, ви отримаєте 2 бали, щоб прийняти його за поставлене вами питання. Плюс автор отримує 15 балів за прийняту відповідь. Що ще важливіше, це допомагає іншим користувачам знаходити відповіді. Ви отримуєте 5 балів за кожне голосування за запитання, яке ви розміщуєте. Якщо ви відповідаєте на запитання, ви отримуєте 10 балів за кожен голос, який піднімається, і мінус 2 за кожен голос проти. Сподіваюсь, це допомагає.
WinEunuuchs2Unix

1

Що мені допомогло:

  1. використовувати sudo dpkg --remove [назва пакета] для видалення проблемних пакетів, знайдених через sudo dpkg --configure -a (джерело:  https://stackoverflow.com/a/35969176/557223 ). Деякі пакети неможливо було видалити, оскільки вони були залежністю інших пакетів.
  2. запустити sudo apt-get install -f (він знову почав працювати, так)
  3. перейменувати файл org.freedesktop.systemd1.service, як зазначено в  https://askubuntu.com/a/838673
  4. Щоб запустити sudo apt-get update, dist-upgrade та autoremove та do-release-upgrade

Кудо, щоб https://ubuntuforums.org/showthread.php?t=2398895&page=2 допису dragans2!


1
Тільки це допомогло! Дякую!
софіс

0

Дійсно, у мене було занадто багато проблем з оновленням Xubuntu 16.04 до 18.04. Мені довелося повністю видалити gstreamer із системи (не працює з pulseaudio, який веде себе дивно), за винятком багатьох інших питань, не пов'язаних із цією посадою (nvidia, netplan, baloo). За багато років управління настільними ПК та серверами це було моєю найважчою міграцією. Тому я не раджу перейти до 18.04, перш ніж це буде стабільним розповсюдженням.


0

якщо у вас є система, на яку ви не можете ввійти, перейдіть до входу tty1, натисніть cltr + alt + клавіша F1 до свого облікового запису, і спробуйте це, sudo apt-get install -f dist-upgrade якщо вимагає конкретного рішення застосувати Y / n, використовуйте інший варіант, ввівши "." для іншого рішення, тоді ви перераховані з іншим рішенням для повного оновлення системи. якщо будь-яка проблема виникає, дайте мені знати


0

Після оновлення у мене виникла проблема з відсутністю libs pyhon3.7, цілий apt / dpkg був заблокований. Знайдено відсутній на /usr/lib/python3.7/py_compile.pyодин рівень глибше /usr/local/lib/python3.7. Рішення, яке працювало для мене, було резервне копіювання (перейменування) цілим /usr/lib/python3.7і заміщення символьним посиланням.

Ось проблема (apt install -f). Вибачте за чеську мову, важливі речі англійською мовою

Načítají se seznamy balíků…
Vytváří se strom závislostí…
Načítají se stavové informace…
0 aktualizováno, 0 nově instalováno, 0 k odstranění a 7 neaktualizováno.
39 instalováno nebo odstraněno pouze částečně.
Po této operaci bude na disku použito dalších 0 B.
Nastavuje se balík python3-tk:amd64 (3.6.5-3) …
(null): can't open file '/usr/lib/python3.7/py_compile.py': [Errno 2] No such file or directory
dpkg: chyba při zpracovávání balíku python3-tk:amd64 (--configure):
 installed python3-tk:amd64 package post-installation script subprocess returned error exit status 2
Nastavuje se balík python3-lib2to3 (3.6.5-3) …
(null): can't open file '/usr/lib/python3.7/py_compile.py': [Errno 2] No such file or directory
dpkg: chyba při zpracovávání balíku python3-lib2to3 (--configure):
 installed python3-lib2to3 package post-installation script subprocess returned error exit status 2
dpkg: nesplněné závislosti zamezily konfiguraci balíku python3-distutils:
 python3-distutils závisí na python3-lib2to3 (>= 3.6.4); avšak:
  Balík python3-lib2to3 zatím není zkonfigurován.

...

dpkg: chyba při zpracovávání balíku libsdl-net1.2-dev:amd64 (--configure):
 problém se závislostmi - nechávám nezkonfigurované
dpkg: nesplněné závislosti zamezily konfiguraci balíku libsdl-image1.2-dev:amd64:
 libsdl-image1.2-dev:amd64 závisí na libsdl1.2-dev (>= 1.2.14~); avšak:
  Balík libsdl1.2-dev zatím není zkonfigurován.

dpkg: chyba při zpracovávání balíku libsdl-image1.2-dev:amd64 (--configure):
 problém se závislostmi - nechávám nezkonfigurované
dpkg: nesplněné závislosti zamezily konfiguraci balíku libboost-iostreams1.65-dev:amd64:
 libboost-iostreams1.65-dev:amd64 závisí na libboost-regex1.65-dev (= 1.65.1+dfsg-0ubuntu5); avšak:
  Balík libboost-regex1.65-dev:amd64 zatím není zkonfigurován.

dpkg: chyba při zpracovávání balíku libboost-iostreams1.65-dev:amd64 (--configure):
 problém se závislostmi - nechávám nezkonfigurované
dpkg: nesplněné závislosti zamezily konfiguraci balíku libboost-iostreams-dev:amd64:
 libboost-iostreams-dev:amd64 závisí na libboost-iostreams1.65-dev; avšak:
  Balík libboost-iostreams1.65-dev:amd64 zatím není zkonfigurován.

dpkg: chyba při zpracovávání balíku libboost-iostreams-dev:amd64 (--configure):
 problém se závislostmi - nechávám nezkonfigurované
dpkg: nesplněné závislosti zamezily konfiguraci balíku libboost-regex-dev:amd64:
 libboost-regex-dev:amd64 závisí na libboost-regex1.65-dev; avšak:
  Balík libboost-regex1.65-dev:amd64 zatím není zkonfigurován.

dpkg: chyba při zpracovávání balíku libboost-regex-dev:amd64 (--configure):
 problém se závislostmi - nechávám nezkonfigurované
Při zpracování nastaly chyby:
 python3-tk:amd64
 python3-lib2to3
 python3-distutils
 libglib2.0-dev-bin
 python3-dev
 libglib2.0-dev:amd64
 libgdk-pixbuf2.0-dev
 libibus-1.0-dev:amd64
 libboost-python1.65-dev
 libpango1.0-dev
 libsdl2-dev:amd64
 libharfbuzz-dev:amd64
 dh-python
 libsdl2-ttf-dev:amd64
 libboost-python-dev
 libsdl2-image-dev:amd64
 libpulse-dev:amd64
 libicu-le-hb-dev:amd64
 libcairo2-dev:amd64
 libnotify-dev:amd64
 libatk1.0-dev:amd64
 libgtk2.0-dev
 librsvg2-dev:amd64
 libicu-dev
 libass-dev:amd64
 libxml2-dev:amd64
 libsdl2-mixer-dev:amd64
 libsdl1.2-dev
 libsdl-ttf2.0-dev:amd64
 libboost-all-dev
 libboost-regex1.65-dev:amd64
 libbluray-dev:amd64
 libsdl-gfx1.2-dev:amd64
 libsdl-mixer1.2-dev:amd64
 libsdl-net1.2-dev:amd64
 libsdl-image1.2-dev:amd64
 libboost-iostreams1.65-dev:amd64
 libboost-iostreams-dev:amd64
 libboost-regex-dev:amd64
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.