Làm cách nào để khắc phục lỗi Không thể tính toán nâng cấp khi nâng cấp từ 12.04 lên 12.10?


20

Tôi đã cố gắng nâng cấp lên 12.10 kể từ khi nó được phát hành ngày hôm nay nhưng tôi vẫn gặp lỗi này:

An unresolvable problem occurred while calculating the upgrade:
E:Unable to correct problems, you have held broken packages.
This can be caused by:  
 * Upgrading to a pre-release version of Ubuntu  
 * Running the current pre-release version of Ubuntu  
 * Unofficial software packages not provided by Ubuntu

Tôi đã thử cập nhật tất cả các phần mềm hiện đang cài đặt, xóa tất cả các PPA bổ sung, hạ cấp các tệp được cài đặt từ ppa edgers 'ppa nhưng tôi không thể giải quyết vấn đề.

Câu trả lời:


7

Tôi đã sửa lỗi của tôi bằng cách xóa các gói ppa tôi đã cài đặt bằng ppa-purge

Tôi biết tôi cần phải làm điều này bằng cách kiểm tra nhật ký trong / var / log / dist-nâng cấp / ở cuối tệp apt.log bạn sẽ thấy những gì đang gây nhầm lẫn. Trong tôi, nó là một trình điều khiển video và tôi đang chạy một số nâng cấp, vì vậy tôi đã làm:

sudo ppa-purge ppa:ubuntu-x-swat/x-updates
sudo ppa-purge ppa:unity-team/staging
sudo ppa-purge ppa:webapps/preview
sudo ppa-purge ppa:nilarimogard/webupd8
sudo ppa-purge ppa:scopes-packagers/ppa
sudo ppa-purge ppa:glasen/intel-driver

người cuối cùng - người lái xe glasen - dường như đã thực hiện mánh khóe cho tôi. Nâng cấp hiện đang tiến hành như bình thường.


23

Như đã nêu ở đây , loại bỏ các nguồn PPA không hoạt động mọi lúc.

Bạn cần gỡ cài đặt các gói vi phạm. bạn có thể tìm thấy chúng với:

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

Của tôi là một gói xorg. Tôi đã gỡ bỏ nó bằng lệnh:

sudo apt-get remove xserver-xorg-video-all

và sau đó nâng cấp có thể tiếp tục.


4
Cảm ơn đã chỉ ra WHERE các gói bị hỏng. Đó là chìa khóa để tôi nâng cấp thành công lên 13.10.
DaShaun

Vâng! Tất cả là couse của xserver-xorg- *. ( apt-get remove xserver-xorg-*)
K-Gun

1
Thay vì "bị hỏng", một từ khóa cụ thể hơn để sử dụng trong tìm kiếm các gói vi phạm của bạn là "không thể hài lòng".
ultrajohn

1
Tôi nhận được một danh sách rất dài khoảng 100 gói.
whoKnows

Tôi đã có hơn 900, và thậm chí vài giờ loại bỏ chúng thông qua công việc thám tử trên apt.log chỉ đưa tôi đến khoảng ~ 350. Biết vấn đề trong trường hợp của tôi là tất cả những thứ tôi đã cài đặt thủ công trong nhiều năm qua, cuối cùng tôi đã bỏ qua và đơn giản xóa tất cả các mục "Đã cài đặt (cục bộ hoặc lỗi thời)" được liệt kê trong tab "Trạng thái" của Synaptic. Vâng, tôi biết rằng nó sẽ yêu cầu chroot'ing từ Live CD để apt-get tất cả mọi thứ để có được một hệ điều hành một lần nữa - nhưng nó đã hoạt động.
Plenus Franckly

16

Để nâng cấp bản phát hành "NonPainful".

  • Trước khi tiến hành, kiểm tra xem bản phát hành mới có sẵn để nâng cấp không. Mở một thiết bị đầu cuối và đưa ra lệnh này

    do-release-upgrade -c

Nếu có, tiến hành:

  • Xóa tất cả các PPA bên ngoài bạn đã thêm.

    Từ Trung tâm phần mềm> Chỉnh sửa> Nguồn phần mềm> Phần mềm khác. Không chỉ bỏ chọn, mà xóa chúng.

  • Sau đó đóng tất cả các ứng dụng đồ họa và chỉ mở một thiết bị đầu cuối. (Toàn màn hình tốt hơn) Đưa ra các lệnh dưới đây

    sudo apt-get update 
    sudo apt-get dist-upgrade
    
  • Sau đó đưa ra các lệnh dưới đây để làm một chút vệ sinh

    sudo apt-get --purge autoremove
    sudo apt-get autoclean
    sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')
    
  • Sau đó, bạn có thể tiến hành nâng cấp

    sudo do-release-upgrade
    

Không điều hướng hoặc mở các cửa sổ hoặc chương trình trong quá trình nâng cấp.

Hãy kiên nhẫn cho đến khi nâng cấp kết thúc.

Thân thiện: Không chạy (hoặc vội vàng) để nâng cấp từ ngày đầu tiên. Nâng cấp từ ngày hai hoặc ba (tốt hơn).


Cảm ơn bạn! Câu trả lời của bạn là vô cùng giáo dục! Tuy nhiên, tôi đã sửa vấn đề của mình trước khi đọc câu trả lời của bạn. Tôi đã phải kích hoạt các PPA xung đột sau đó thanh lọc chúng để hoàn thành công việc.
Vagrant 232

những gì sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')làm gì?
whoKnows

1
@whoKnows Xin lỗi vì câu trả lời muộn. Điều này sẽ tìm kiếm tìm và loại bỏ tất cả thức ăn thừa đã được đánh dấu để loại bỏ, nhưng chúng chưa được loại bỏ. Đó là ý nghĩa của 'RC'.
NickTux

Điều này không hiệu quả với tôi, nhưng người dưới đây đã làm
John Small

3

Tôi quản lý để giải quyết vấn đề mà không loại bỏ bất kỳ gói. Trên cài đặt cho trình quản lý cập nhật, tôi đã bỏ chọn tất cả các tùy chọn Phần mềm Ubuntu, chỉ để lại hộp đầu tiên được chọn - "Phần mềm nguồn mở và miễn phí được Canonical hỗ trợ (chính)".


Tôi upvote cho câu trả lời này vì nó đã giải quyết một vấn đề. Thế là đủ để bỏ chọn Cộng đồng duy trì ... (vũ trụ). Tôi đã có chính xác cùng một vấn đề như được mô tả về chủ đề. Tôi đã nâng cấp từ 14.04 lên 16.04.1 với Software Updater.
Maug Lee

Điều này làm việc cho tôi, các ý kiến ​​về các gói thanh trừng đã không.
John Nhỏ

2

Tôi đã có thông báo lỗi này khi nâng cấp, mặc dù giữa các phiên bản khác nhau - Tôi đã thực hiện 14.04 Trusty -> 16.04 Xenial - nhưng tôi nghĩ rằng mẹo này có thể hữu ích cho những người khác mắc lỗi tương tự, vì tôi mất nhiều thời gian để tìm ra và Câu trả lời này xuất hiện nổi bật trong Google.

Điều quan trọng là kiểm tra xem có lỗi nào không /var/log/dist-upgrade/main.log- trong trường hợp của tôi, có một lỗi nói rằng postgresql-9.3-postgis-2.1đã bị liệt vào danh sách đen do bị xóa và quá trình nâng cấp đang cố gắng xóa nó. Loại bỏ gói đó để tôi nâng cấp.

(nb /var/log/dist-upgrade/apt.logcó thể đánh lừa bạn bằng cách liệt kê các gói "Hỏng" thực sự sẽ không chặn nâng cấp.)

Điều này cũng được chỉ ra trong câu hỏi và câu trả lời tương tự này: https://askubfox.com/a/541406/13868

Ngẫu nhiên, chạy sudo ubuntu-bug ubuntu-release-upgrader-coresau khi nâng cấp thất bại, thực sự có thể phát hiện các sự cố như vậy và mở báo cáo lỗi tương ứng trong trình duyệt web của bạn - đó là điều giúp tôi tìm ra sự cố.


-4
sudo sed -i 's/raring/saucy/' /etc/apt/sources.list
sudo apt-get dist-upgrade

Điều đó đã làm việc cho tôi.

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.