Không thể tính toán nâng cấp, chuyện gì đã xảy ra?


67

Tôi đang chạy sudo update-manager -dvà bắt đầu quá trình nâng cấp. Tôi chọn tùy chọn nâng cấp và khi đó trình quản lý nhập vào Setting new software channelssẽ xuất hiện lỗi.

Không thể tính toán nâng cấp

Một vấn đề không thể giải quyết đã xảy ra trong khi tính toán nâng cấp.

 Điều này có thể được gây ra bởi:
 * Nâng cấp lên phiên bản tiền phát hành của Ubuntu
 * Chạy phiên bản tiền phát hành hiện tại của Ubuntu
 * Gói phần mềm không chính thức không được cung cấp bởi Ubuntu

Nếu không có điều nào trong số này áp dụng, thì vui lòng báo cáo lỗi này bằng cách sử dụng lệnh 'ub Ubuntu-bug ub Ubuntu-release-upgrader-core' trong một thiết bị đầu cuối.

Tôi đã vô hiệu hóa tất cả các gói không chính thức và bên thứ ba, tôi không chạy phiên bản tiền phát hành kể từ khi tôi ở 13.04 và tôi đang cố cập nhật lên phiên bản beta 2 không phải là bản phát hành trước. Trước khi tôi điền vào một báo cáo lỗi, vì nó xảy ra với cả hai hệ thống của tôi, tôi muốn tìm hiểu xem có ai khác có vấn đề tương tự không.

EDIT : thêm đầu ra cho bình luận.

$ 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        

Có vẻ như nó được gây ra bởi trình điều khiển video sở hữu.
cởi trần

Chạy lệnh này và đăng kết quả đầu ra trong câu trả lời của bạn sau khi chỉnh sửa:sudo dpkg -l | grep -w "rc"
Saurav Kumar

@Braiam Tôi đã thêm đầu ra mà bạn yêu cầu, kiểm tra apt-get là Xây dựng cây phụ thuộc và Đọc thông tin trạng thái ... Xong và dpkg không cung cấp đầu ra.
cởi trần

Bạn có thể làm như sau: 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))'và dán kết quả? Lệnh đầu tiên sẽ cài đặt aptitude, thứ hai sẽ vô hiệu hóa tất cả các PPA, thứ ba sẽ cập nhật danh sách của bạn và thứ tư sẽ liệt kê tất cả các gói không đến từ kho lưu trữ.
Braiam

Câu trả lời:


47

Điều làm việc cho tôi là loại bỏ bất kỳ gói bị hỏng nào, vì chúng đang ngăn cản việc nâng cấp.

Trước tiên hãy tìm hiểu các gói bị hỏng:

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

Sau đó loại bỏ chúng:

sudo apt-get remove <packages to remove>

Một số có thể được cài đặt lại trong quá trình nâng cấp, một số khác bạn có thể phải tự cài đặt lại.


3
Dường như tôi có một danh sách lớn các xserver-xorg-video- * pacakges bị hỏng. Tôi không thực sự chắc chắn nhưng tôi cảm thấy nếu tôi bắt đầu loại bỏ chúng thì hệ thống của tôi sẽ bị hỏng. Bạn đã quản lý để loại bỏ chúng thành công? Những loại gói đã gây rắc rối cho bạn?
cởi trần

2
Tôi đã phải loại bỏ tương tự. Các phiên bản "tốt" đã quay trở lại khi quá trình nâng cấp hoàn tất. Nâng cấp của tôi là một thành công.
DaShaun

1
Tôi gặp vấn đề tương tự với các gói xserver-xorg-video- *. Làm thế nào bạn loại bỏ chúng? sudo apt-get remove xserver-xorg-video-*? Tôi có một câu hỏi ở đây với nhiều chi tiết hơn.
modulitos

3
Đó chính xác là những gì tôi đã làm 'sudo apt-get remove xserver-xorg-video- *'
DaShaun

8
grep Broken grep Broken /var/log/dist-upgrade/apt.logcho tôi hơn 700 hàng. Chắc chắn không thể loại bỏ tất cả.
pasha.zhukov

29

Sau khi hệ thống của bạn không nâng cấp, hãy kiểm tra tệp /var/log/dist-upgrade/main.log

Tôi tìm thấy dòng:

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.'

Tôi tự gỡ bỏ xubfox-desktop. Việc nâng cấp sau đó tiếp tục mà không có vấn đề.


2
Có cách nào tôi giữ gói này và vẫn cập nhật không? Tôi có postgresql-9.2và tôi không muốn loại bỏ nó.
Abdulsattar Mohammed

1
bạn chỉ có thể cài đặt lại sau khi nâng cấp hoàn tất.
ImaginaryRobots

Sau khi tôi đã gỡ bỏ ERROR duy nhất, tôi đã nhận được ERROR thứ 2 khác khi chạy do-release-upgradelại, do đó cũng phải xóa thủ công này. Bạn có thể phải làm điều này một số lần nếu bạn không may mắn. Cũng có thể một trong những phương pháp khác cũng có thể làm nổi bật những phương pháp này như giữ hoặc hỏng nhưng tôi đã không thử chúng.
bắc-bradley

Postgres dường như là thứ đang giữ tôi lại. Cảm ơn bạn đã chỉ ra rằng @AbdulsattarMohammed!
vui vẻ

5

Vấn đề tương tự ở đây. Một vài dòng cuối cùng trong tệp "main.log" được chỉ ra trong bài viết trước là:

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

Thống nhất được cài đặt thủ công và nâng cấp bây giờ tiến hành. Không hoàn toàn chắc chắn điều gì gây ra vấn đề này ngay từ đầu và liệu đây có thực sự là một "giải pháp" tốt hay không nhưng tôi đoán tôi sẽ tìm ra sau khi cập nhật hoàn tất?!?


4

Nếu bạn đang sử dụng trình điều khiển video AMD / ATI fglrx độc quyền, hãy xóa các gói fglrx và trình điều khiển video xorg có thể sẽ khắc phục nó:

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

Trong trường hợp của tôi, tôi đã cài đặt trình điều khiển fglrx từ PPA xorg-edgers và loại bỏ các gói đó đã xóa bản nâng cấp của tôi. Sau khi nâng cấp hoàn tất, bạn có thể thực hiện lại quá trình thiết lập trình điều khiển độc quyền.


Đây là những gì làm việc cho tôi!
Nick Grealy

fglrx-corevẫn còn trên hệ thống của tôi sau khi làm điều này. Những người khác cũng có thể cần phải loại bỏ nó.
Michael Hoffmann

4

Trong trường hợp của tôi, vấn đề là do một gói ở trạng thái giữ . Đặt nó trở lại để cài đặt trạng thái giải quyết vấn đề.


Một cách có thể để đặt hoặc xóa gói trong trạng thái giữ đang sử dụng dpkg. Đầu tiên, bạn có được trạng thái hiện tại của tất cả các gói và đặt nó vào một tệp:

dpkg --get-selections > myselection

Sau đó, bạn chỉnh sửa tệp và thay thế installbằng holdhoặc ngược lại. Cuối cùng, bạn đặt lựa chọn mới:

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

Các cách khác được mô tả trong Làm thế nào để giữ một gói trở lại khỏi bị nâng cấp?


1
Tại sao bạn không cho chúng tôi biết bạn đã làm như thế nào? Đây không phải là một câu trả lời hoàn chỉnh, hãy thử mô tả các bước của bạn. Làm thế nào bạn tìm thấy gói và các hành động bạn đã thực hiện.
cởi trần

1
Làm thế nào để bạn tìm ra các gói đang ở trạng thái giữ?
Dennis

2

Rõ ràng có một cách dễ dàng, chỉ cần thêm /raringvào mỗi tên gói, như thế này:

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

Nếu nó không hoạt động, sau đó thử phương pháp dưới đây.


Điều đó đã được mong đợi, bạn có một số gói không phải từ kho Ubuntu rất quan trọng cho việc cài đặt. Bạn nên hạ cấp từng cái một (tôi chưa tìm thấy cách hiệu quả để làm điều này) và sau đó thử nâng cấp. Tôi sẽ làm một ví dụ:

$ 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

Trong trường hợp của bạn, một cái gì đó như thế này sẽ xuất hiện. Bạn nên lưu ý phiên bản có url, trong trường hợp 2.4.43-0ubuntu1này có http://archive.ubuntu.com/ubuntu/, lưu cặp sau này trong tệp văn bản bằng định dạng <package>=<version>.

Nếu bạn thấy một cái gì đó như:

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

lưu ý rằng không có url , thì gói đó có thể bị xóa:

sudo apt-get remove fluxgui

Sau đó, bạn hoàn thành danh sách của bạn sẽ trông như:

libdrm2 = 2.4.43-0ubfox1 libdrm2 = 2.4.43-0ubfox1 libdrm2 = 2.4.43-0ubfox1 libdrm2 = 2.4.43-0ub Ubuntu1 libdrm2 = 2.4.43-0ubfox1 libdrm2 = 2.4.43-0ub Ubuntu

(một lần nữa và ví dụ, nhưng bạn có thể có một ý tưởng)

Khi bạn đã hoàn thành danh sách của mình, hãy nhập sudo apt-get -f installvà dán danh sách đầy đủ của bạn, để nó trông giống như:

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

Nếu bạn muốn làm điều đó nhanh hơn một chút, bạn có thể sử dụng apt-cache policy libdrm2 libgbm1với một số tên gói.


Vâng, cách tiếp cận đầu tiên không giải quyết được vấn đề, hôm nay tôi sẽ có một chút thời gian để thực hiện từng bước một mà bạn đề xuất. Sẽ rất tốt nếu cung cấp lệnh mặc dù để hoàn nguyên các thay đổi đầu tiên kể từ bây giờ, nó thực sự không thể cập nhật apt-get.
cởi trần

@topless nếu lệnh đầu tiên thất bại, điều đó có nghĩa là không có gì được thực hiện. Nếu apt-get updatekhông hoạt động, nó có nghĩa là một điều khác.
Braiam

trên apt-get updatetôi nhận được loại lỗi nàyN: Ignoring file 'xorg-edgers-ppa-raring.list.disable' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
cởi trần

Đó là một thông tin / cảnh báo, có thể bị bỏ qua và được mong đợi vì chúng tôi không muốn PPA cản trở.
Braiam

Tôi sẽ bao gồm "một cách hiệu quả" để loại bỏ các gói "từng cái một" trong câu trả lời của tôi dưới đây. Nó chỉ là một bộ sưu tập của tất cả các lời khuyên tôi có từ khắp nơi.
nyxee

1

Tôi đã làm theo một số câu trả lời ở trên, cố gắng để nâng cấp hoạt động, không có câu trả lời nào không liên quan đến việc xóa các gói Broken hoạt động. Tôi đã có 144 gói bị hỏng, có vẻ như hoàn toàn không thực tế. Tôi đã xóa chúng từng cái một, cố gắng cập nhật sau mỗi cái. Sau khi xóa 3 (perl-base, gnuplot, gnuplot-11), được chọn một cách ngẫu nhiên, bản cập nhật đã thành công. (14.04 đến 16.04).


0

Tôi đã có cùng một vấn đề nhưng đã dễ dàng khắc phục bằng cách chạy như sau trong thiết bị đầu cuối:

sudo apt-get remove
sudo apt-get autoremove

3
sudo apt-get removekhông làm gì cả
guntbert

Ahh, nhưng nó liệt kê các gói có thể được gỡ bỏ bằng tự động xóa. :) có sự điên rồ với phương pháp của tôi.
seyDoggy

1
Cũng vậy sudo apt-get autoremove.
guntbert

+1 - Tôi phải chạysudo apt-get autoremove
Nick Grealy

-1

Tôi đã trả lời điều này một thời gian trước nếu bạn đã thực hiện một tìm kiếm đơn giản ở đây trước khi đăng câu hỏi.

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

Xong, giải quyết mọi vấn đề


1
Xin vui lòng, đừng ném loại câu trả lời này. Thủ tục đó có khả năng nguy hiểm được thực hiện mà không cần chăm sóc.
Braiam

Thật ra không phải vậy. Nó không nguy hiểm chút nào. Thực tế là bạn nghĩ nó nguy hiểm có nghĩa là bạn không biết nhiều về nó. Tôi đã chạy nó nhiều lần trong quá khứ và với nhiều người. Nếu bạn thực sự đọc toàn bộ lệnh, bạn có thể thấy tôi đã tính đến tất cả các vấn đề có thể xảy ra. Tất cả những gì người dùng cần làm chỉ là xem đầu ra của lệnh. Ubuntu 13.10 có rất nhiều vấn đề với việc nâng cấp, nhưng điều này khắc phục mọi thứ gọn gàng và thuận tiện trong một lệnh dài. Tôi khuyên bạn nên xem xét tài liệu về cách thức 'do-phát hành-nâng cấp' hoạt động, bởi vì đó chính xác là những gì lệnh này làm.
mmstick

1
@mmstick Bạn có thể giải thích thêm một chút về lệnh dài của mình và các vấn đề mà nó giải quyết, miễn là vấn đề thực tế và cách giải quyết nó. Tôi thấy rằng bạn đang gọi nhiều lần apt-get upgradevà phần còn lại của các lệnh, vì vậy có thể một lần nữa bạn có thể chia nó theo từng dòng và giải thích quy trình của bạn và lý do tại sao nó hoạt động. Tôi không có sự sang trọng để thử nghiệm các lệnh rủi ro cao, không thể đảo ngược. Cảm ơn các nỗ lực mặc dù. Tất cả chúng ta đều ở đây để học ..
cởi trần

@mmstick, tôi đang tìm câu trả lời của bạn
cởi trần

2
@mmstick đừng lười sửa câu trả lời của bạn, để hoàn thành để tham khảo trong tương lai. Thật tốt khi bạn đã đóng góp sớm nhưng vấn đề tôi gặp phải lần đầu tiên với bản nâng cấp 13.10.
cởi trần
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.