Не удалось рассчитать обновление, что случилось?


67

Я бегу sudo update-manager -dи запускаю процесс обновления. Я выбираю вариант обновления, и когда менеджер входит, Setting new software channelsон выдает ошибку.

Не удалось рассчитать обновление

При вычислении обновления возникла неразрешимая проблема.

 Это может быть вызвано:
 * Обновление до предварительной версии Ubuntu
 * Запуск текущей предварительной версии Ubuntu
 * Неофициальные программные пакеты, не предоставляемые Ubuntu

Если ничего из этого не применимо, сообщите об этой ошибке, используя команду «ubuntu-bug ubuntu-release-upgradeder-core» в терминале.

Я отключил все неофициальные и сторонние пакеты, у меня не запущена предварительная версия, так как я выпущен в 13.04 и пытаюсь обновить бета-версию 2, которая не является предварительной. Прежде чем заполнить отчет об ошибке, поскольку это происходит в обеих моих системах, я хотел бы выяснить, есть ли у кого-то еще такие же проблемы.

РЕДАКТИРОВАТЬ : добавил вывод для комментария.

$ sudo dpkg -l | grep -w "rc"`
rc google-chrome-beta 31.0.1650.16-1 amd64 The web browser from Google
ii sysv-rc 2.88dsf-13.10ubuntu15 all System-V-like runlevel change mechanism

$ cat /etc/apt/sources.list

deb http://dk.archive.ubuntu.com/ubuntu/ raring main restricted
deb-src http://dk.archive.ubuntu.com/ubuntu/ raring main restricted

deb http://dk.archive.ubuntu.com/ubuntu/ raring-updates main restricted
deb-src http://dk.archive.ubuntu.com/ubuntu/ raring-updates main restricted

deb http://dk.archive.ubuntu.com/ubuntu/ raring universe
deb-src http://dk.archive.ubuntu.com/ubuntu/ raring universe
deb http://dk.archive.ubuntu.com/ubuntu/ raring-updates universe
deb-src http://dk.archive.ubuntu.com/ubuntu/ raring-updates universe

deb http://dk.archive.ubuntu.com/ubuntu/ raring multiverse
deb-src http://dk.archive.ubuntu.com/ubuntu/ raring multiverse
deb http://dk.archive.ubuntu.com/ubuntu/ raring-updates multiverse
deb-src http://dk.archive.ubuntu.com/ubuntu/ raring-updates multiverse

deb http://security.ubuntu.com/ubuntu raring-security main restricted
deb-src http://security.ubuntu.com/ubuntu raring-security main restricted
deb http://security.ubuntu.com/ubuntu raring-security universe
deb-src http://security.ubuntu.com/ubuntu raring-security universe
deb http://security.ubuntu.com/ubuntu raring-security multiverse
deb-src http://security.ubuntu.com/ubuntu raring-security multiverse

deb http://extras.ubuntu.com/ubuntu raring main
deb-src http://extras.ubuntu.com/ubuntu raring main
deb http://dk.archive.ubuntu.com/ubuntu/ raring-proposed multiverse universe restricted main

$ lsb_release -c
Codename:   raring

$ sudo apt-get -y install aptitude && \
      sudo rename 's/\.list$/.list.disable/' /etc/apt/sources.list.d/*.list && \
      sudo aptitude update && \
      aptitude search '?narrow(?installed, !?archive(raring))'`

i   dropbox                       - cloud synchronization engine - CLI and Nautilus extension                      
i   google-chrome-stable          - The web browser from Google                                                    
i   google-talkplugin             - Google Talk Plugin                                                             
i   libdrm-intel1                 - Userspace interface to intel-specific kernel DRM services -- runtime           
i   libdrm-nouveau2               - Userspace interface to nouveau-specific kernel DRM services -- runtime         
i   libdrm-radeon1                - Userspace interface to radeon-specific kernel DRM services -- runtime          
i   libdrm2                       - Userspace interface to kernel DRM services -- runtime                          
i   libegl1-mesa                  - free implementation of the EGL API -- runtime                                  
i   libegl1-mesa-drivers          - free implementation of the EGL API -- hardware drivers                         
i   libgbm1                       - generic buffer management API -- runtime                                       
i   libgl1-mesa-dri               - free implementation of the OpenGL API -- DRI modules                           
i   libgl1-mesa-glx               - free implementation of the OpenGL API -- GLX runtime                           
i   libglapi-mesa                 - free implementation of the GL API -- shared library                            
i A libgles2-mesa                 - free implementation of the OpenGL|ES 2.x API -- runtime                        
i   libllvm3.3                    - Low-Level Virtual Machine (LLVM), runtime library                              
i   libopenvg1-mesa               - free implementation of the OpenVG API -- runtime                               
i   libxatracker1                 - X acceleration library -- runtime                                              
i   nodejs                        - Node.js event-based server-side javascript engine                              
id  nvidia-persistenced           - Load the NVIDIA kernel driver and create device files                          
id  nvidia-settings-331           - Tool for configuring the NVIDIA graphics driver                                
i   simplescreenrecorder          - A feature-rich screen recorder that supports X11 and OpenGL.                   
i A simplescreenrecorder-lib      - A feature-rich screen recorder that supports X11 and OpenGL.                   
i   sublime-text                  - Sublime Text is a sophisticated text editor for code, markup and prose         
i   vokoscreen                    - easy to use screencast creator                                                 
i   xserver-common                - common files used by various X servers                                         
i   xserver-xorg-core             - Xorg X server - core server                                                    
i   xserver-xorg-input-synaptics  - Synaptics TouchPad driver for X.Org server                                     
i   xserver-xorg-video-ati        - X.Org X server -- AMD/ATI display driver wrapper                               
i   xserver-xorg-video-cirrus     - X.Org X server -- Cirrus display driver                                        
i   xserver-xorg-video-intel      - X.Org X server -- Intel i8xx, i9xx display driver                              
i   xserver-xorg-video-mach64     - X.Org X server -- ATI Mach64 display driver                                    
i   xserver-xorg-video-nouveau    - X.Org X server -- Nouveau display driver                                       
i   xserver-xorg-video-r128       - X.Org X server -- ATI r128 display driver                                      
i   xserver-xorg-video-radeon     - X.Org X server -- AMD/ATI Radeon display driver                                
i   xserver-xorg-video-vmware     - X.Org X server -- VMware display driver        

Похоже, это вызвано правильными видео драйверами.
топлесс

Запустите эту команду и опубликуйте вывод в своем ответе после редактирования:sudo dpkg -l | grep -w "rc"
Саурав Кумар

@Braiam Я добавил вывод, который вы просили, проверка apt-get - Построение дерева зависимостей и Чтение информации о состоянии ... Готово, и dpkg не дает вывод.
топлесс

Не могли бы вы сделать следующее: sudo apt-get -y install aptitude && sudo rename 's/\.list$/.list.disable/' /etc/apt/sources.list.d/*.list && sudo aptitude update && aptitude search '?narrow(?installed, !?archive(raring))'и вставить результаты? Первая команда установит aptitude, вторая отключит все PPA, третья обновит ваш список, а четвертая выведет список всех пакетов, которые не пришли из репозитория.
Брайам

Ответы:


47

То, что работало для меня, удаляло любые сломанные пакеты, поскольку они препятствовали обновлению.

Сначала выясните, какие пакеты сломаны:

grep Broken /var/log/dist-upgrade/apt.log

Затем удалите их:

sudo apt-get remove <packages to remove>

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


3
Похоже, у меня есть большой список поврежденных пакетов xserver-xorg-video- *. Я не совсем уверен, но я чувствую, что если я начну их удалять, моя система сломается. Вам удалось их успешно удалить? Какие пакеты доставляли вам неприятности?
топлесс

2
Я должен был удалить то же самое. «Хорошие» версии вернулись после завершения обновления. Мое обновление прошло успешно.
DaShaun

1
У меня такие же проблемы с пакетами xserver-xorg-video- *. Как вы их удалили? sudo apt-get remove xserver-xorg-video-*? У меня есть вопрос здесь с более подробной информацией.
модуль

3
Это именно то, что я сделал 'sudo apt-get remove xserver-xorg-video- *'
DaShaun

8
grep Broken grep Broken /var/log/dist-upgrade/apt.logдает мне 700+ строк. Определенно не могу удалить их всех.
pasha.zhukov

29

После того, как ваша система не обновляется, проверьте файл /var/log/dist-upgrade/main.log

Я нашел строку:

2013-10-17 15:00:30,543 ERROR Dist-upgrade failed: 'The package 'xubuntu-desktop' is marked for removal but it is in the removal blacklist.'

Я вручную удалил xubuntu-desktop. Затем обновление продолжилось без проблем.


2
Есть ли способ сохранить этот пакет и все еще обновлять? У меня есть postgresql-9.2и я не хочу его удалять.
Абдулсаттар Мухаммед

1
Вы можете просто переустановить его после завершения обновления.
ImaginaryRobots

После того, как я удалил единственную присутствующую ОШИБКУ, я получил 2-ую другую ОШИБКУ при запуске do-release-upgradeснова, поэтому пришлось также удалить это вручную. Возможно, вам придется сделать это несколько раз, если вам не повезло. Также возможно, что один из других методов также выделил их как удержание или сбой, но я не пробовал их.
Норт-Брэдли

Постгрес, казалось, был тем, что сдерживало меня. Спасибо, что указали на это @AbdulsattarMohammed!
jocull

5

Подобная проблема здесь. Последние несколько строк в файле "main.log", указанных в предыдущем посте:

2013-10-17 23:44:38,233 DEBUG blacklist expr 'unity$' matches 'unity'
2013-10-17 23:44:38,233 DEBUG The package 'unity' is marked for removal but it's in the removal blacklist
2013-10-17 23:44:43,585 ERROR Dist-upgrade failed: 'The package 'unity' is marked for removal but it is in the removal blacklist.'
2013-10-17 23:44:43,586 DEBUG abort called
2013-10-17 23:44:43,592 DEBUG openCache()
2013-10-17 23:44:43,592 DEBUG failed to SystemUnLock() (E:Not locked) 
2013-10-17 23:44:46,786 DEBUG /openCache(), new cache size 41453
2013-10-17 23:44:46,786 DEBUG enabling apt cron job

Вручную деинсталлировано единство и обновление теперь продолжается. Не совсем уверен, что вызывает эту проблему в первую очередь и действительно ли это хорошее "решение", но я думаю, я узнаю после завершения обновления?!?


4

Если вы используете проприетарные видеодрайверы AMD / ATI fglrx, удаление пакетов fglrx и видеодрайвера xorg, скорее всего, исправит это:

sudo apt-get remove fglrx fglrx-amdcccle-updates
sudo apt-get remove xserver-xorg-video-ati:amd64

В моем случае у меня были установлены драйверы fglrx из PPA-пакета xorg-edgers, и удаление этих пакетов очистило мое обновление. После завершения обновления вы можете снова выполнить настройку проприетарных драйверов.


Это было то, что сработало для меня!
Ник Грэйли

fglrx-coreпосле этого все еще оставался в моей системе. Другие, возможно, также должны удалить это.
Майкл Хоффманн

4

В моем случае проблема была вызвана тем, что пакет находился в состоянии ожидания . Возврат в состояние установки решил проблему.


Возможный способ поставить или удалить пакет в состоянии удержания - использование dpkg. Сначала вы получаете текущее состояние всех пакетов и помещаете его в файл:

dpkg --get-selections > myselection

Затем вы редактируете файл и заменяете installего hold, или наоборот. Наконец, вы устанавливаете новый выбор:

sudo dpkg --set-selections < myselection
sudo apt-get update
sudo apt-get upgrade

Другие способы описаны в разделе Как удержать пакет от обновления?


1
почему бы тебе не рассказать нам, как ты это сделал? Это не полный ответ, попробуйте описать свои шаги. Как вы нашли пакет и действия, которые вы предприняли.
топлесс

1
Как вы узнаете, какие пакеты находятся в состоянии ожидания?
Деннис

2

Видимо, есть простой способ, просто добавьте /raringк каждому имени пакета, например:

sudo apt-get install dropbox/raring google-chrome-stable/raring google-talkplugin/raring libdrm-intel1/raring libdrm-nouveau2/raring libdrm-radeon1/raring libdrm2/raring libegl1-mesa/raring libegl1-mesa-drivers/raring libgbm1/raring libgl1-mesa-dri/raring libgl1-mesa-glx/raring libglapi-mesa/raring libllvm3.3/raring libopenvg1-mesa/raring libxatracker1/raring nodejsnvidia-persistencednvidia-settings-331/raring simplescreenrecorder/raring sublime-text/raring vokoscreen/raring xserver-common/raring xserver-xorg-core/raring xserver-xorg-input-synaptics/raring xserver-xorg-video-ati/raring xserver-xorg-video-cirrus/raring xserver-xorg-video-intel/raring xserver-xorg-video-mach64/raring xserver-xorg-video-nouveau/raring xserver-xorg-video-r128/raring xserver-xorg-video-radeon/raring xserver-xorg-video-vmware/raring

Если это не работает, попробуйте метод ниже.


Как и ожидалось, у вас есть несколько пакетов, которые не из репозиториев Ubuntu, которые важны для установки. Вы должны понизить их рейтинг, один за другим (я не нашел эффективного способа сделать это), а затем попытаться выполнить обновление. Я сделаю один в качестве примера:

$ apt-cache policy libdrm2
libdrm2:
  Installed: 2.4.43-0ubuntu1.1
  Candidate: 2.4.43-0ubuntu1.1
  Version table:
 *** 2.4.43-0ubuntu1.1 0
        100 /var/lib/dpkg/status
     2.4.43-0ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ raring/main amd64 Packages

В вашем случае что-то подобное должно появиться. Вы должны принять к сведению , что версия имеет URL, в этом случае , 2.4.43-0ubuntu1что имеет http://archive.ubuntu.com/ubuntu/, за исключением пары для последующих в текстовом файле , используя формат <package>=<version>.

Если вы видите что-то вроде:

fluxgui:
  Installed: 1.1.8
  Candidate: 1.1.8
  Version table:
 *** 1.1.8 0
        100 /var/lib/dpkg/status

обратите внимание, что URL не имеет , тогда этот пакет может быть удален:

sudo apt-get remove fluxgui

Тогда вы закончите свой список должен выглядеть так:

libdrm2 = 2.4.43-0ubuntu1 libdrm2 = 2.4.43-0ubuntu1 libdrm2 = 2.4.43-0ubuntu1 libdrm2 = 2.4.43-0ubuntu1 libdrm2 = 2.4.43-0ubuntu1 libdrm2 = 2.4.43-0ubuntu1

(еще раз и пример, но у вас может быть идея)

Когда ваш список заполнен, введите sudo apt-get -f installи вставьте полный список, чтобы он выглядел следующим образом:

sudo apt-get -f install libdrm2=2.4.43-0ubuntu1 libdrm2=2.4.43-0ubuntu1 libdrm2=2.4.43-0ubuntu1 libdrm2=2.4.43-0ubuntu1 libdrm2=2.4.43-0ubuntu1 libdrm2=2.4.43-0ubuntu1

Если вы хотите сделать это несколько быстрее, вы можете использовать apt-cache policy libdrm2 libgbm1несколько имен пакетов.


Что ж, первый подход не решил проблему, сегодня у меня будет время, чтобы пройти один шаг за шагом, который вы предлагаете. Было бы неплохо предоставить команду для отмены первых изменений, поскольку теперь она не может фактически обновить apt-get.
топлесс

@topless, если первая команда не выполнена, это означает, что ничего не было сделано. Если apt-get updateне работает, это означает другое.
Брайам

на apt-get updateя получаю такие ошибкиN: Ignoring file 'xorg-edgers-ppa-raring.list.disable' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
топлесс

Это информация / предупреждение, которую можно игнорировать, и ожидается, так как мы не хотим, чтобы PPA мешали.
Брайам

Я включу «эффективный способ» удаления пакетов «один за другим» в своем ответе ниже. Это просто коллекция всех советов, которые я получил повсюду.
nyxee

1

Я следовал за несколькими ответами выше, пытаясь заставить работать обновление, но ни один из них, не связанный с удалением сломанных пакетов, не сработал. У меня было 144 разбитых пакета, что казалось совершенно непрактичным. Я удалял их по одному, пытаясь обновить их после каждого. После удаления 3 (perl-base, gnuplot, gnuplot-11), выбранных по существу случайным образом, обновление прошло успешно. (С 14.04 по 16.04).


0

У меня была та же проблема, но она была легко решена с помощью следующего:

sudo apt-get remove
sudo apt-get autoremove

3
sudo apt-get removeничего не делает
Гюнтберт

Ааа, но в нем перечислены пакеты, которые могут быть удалены с помощью автоматического удаления. :) в моем методе есть безумие.
seyDoggy

1
То же sudo apt-get autoremoveсамое.
Гюнтберт

+1 - мне пришлось бежатьsudo apt-get autoremove
Ник Грейли

-1

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

sudo mv /etc/apt/sources.list.d/ /etc/apt/sources.list.d.bak; sudo sed -i 's/raring/saucy/g' /etc/apt/sources.list; sudo apt-get update; sudo apt-get upgrade -y; sudo apt-get dist-upgrade -y; sudo apt-get install -f; sudo aptitude upgrade -y; sudo aptitude dist-upgrade -y; sudo mv /etc/apt/sources.list.d.bak /etc/apt/sources.list.d; sudo sed -i 's/raring/saucy/g' /etc/apt/sources.list.d/*; sudo apt-get update; sudo apt-get upgrade -y; sudo apt-get dist-upgrade -y; sudo apt-get install ubuntu-desktop -y

Готово, решает все вопросы


1
Пожалуйста, не просто бросайте такие ответы. Эта процедура потенциально опасна и выполняется без осторожности.
Брайам

На самом деле нет, это не так. Это совсем не опасно. Тот факт, что вы думаете, что это опасно, означает, что вы мало что знаете об этом. Я управлял им много раз в прошлом и со многими людьми. Если вы действительно прочитаете всю команду, вы увидите, что я учел все возможные проблемы. Все, что нужно сделать пользователю, это просто посмотреть вывод команды. Ubuntu 13.10 имеет много проблем с обновлением, но это исправляет все аккуратно и удобно в одной длинной команде. Я советую вам изучить документацию о том, как работает do-release-upgrade, потому что это именно то, что делает эта команда.
mmstick

1
@mmstick Вы можете более подробно рассказать о своей длинной команде и о проблемах, которые она решает, до тех пор, пока не решится реальная проблема и ее решение. Я вижу, что вы звоните несколько раз apt-get upgradeи остальные команды, так что, возможно, вы снова можете разделить его на строку за строкой и объяснить свой процесс и почему он работает. Я не могу позволить себе роскошь экспериментировать с необратимыми командами высокого риска. Спасибо за усилия, хотя. Мы все здесь, чтобы учиться ..
топлесс

@mmstick, я ищу твой ответ, ты упомянул некоторое время назад, и он выглядит после моего вопроса, так что ты мог бы выглядеть немного лучше, прежде чем ответить грубо мне и Брайаму.
топлесс

2
@mmstick не ленитесь отредактировать свой ответ, чтобы быть готовым для дальнейшего использования. Хорошо, что вы внесли свой вклад рано, но проблема, с которой я столкнулся впервые при обновлении 13.10.
топлесс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.