Làm thế nào để hoàn tác apt-get remove?


18

Tôi biết đó là một tình huống buồn cười nhưng tôi đã loại bỏ python với tất cả các chương trình liên quan từ Ubuntu bằng sudo apt-get remove python? Rõ ràng tôi có thể cài đặt lại python, nhưng tôi sẽ mất rất nhiều thời gian để cài đặt tất cả các chương trình mà tôi đã gỡ bỏ. Có lẽ có một số giải pháp?

Cảm ơn


Vui lòng bao gồm nỗ lực nghiên cứu để loại bỏ bỏ phiếu.
Colyn1337

Ồ Một câu hỏi 3 năm tuổi, điều đó giúp khôi phục máy tính của tôi. Rất vui vì điều này đã ở đây và được tìm thấy trên google. Cảm ơn!
Michael Cole

Câu trả lời:


26

Không có cách nào dễ dàng nhưng nếu bạn nhìn vào /var/log/apt/history.log bạn có thể thấy những gì đã bị xóa. Chỉ cần cài đặt lại từng gói đã được gỡ bỏ.


2
Nó chỉ cứu mạng tôi!
Sanket Sahu

3
Tôi đã đăng ký với serverfault chỉ để nâng cấp điều này, cảm ơn.
Phil

20

Tôi vừa mắc lỗi này, bạn có thể chạy các lệnh dưới đây để hoàn tác loại bỏ các gói Điều này sẽ trích xuất thông tin của các gói đã xóa khỏi tệp nhật ký và cài đặt lại chúng

echo '#!/bin/bash' > restore
echo sudo apt-get install `grep Remove /var/log/apt/history.log | tail -1 | sed -e 's|Remove: ||g' -e 's|([^)]*)||g' -e 's|:[^ ]* ||g' -e 's|,||g'` >> restore
chmod +x restore 
./restore

phao cứu sinh ... đáng lẽ phải nhận ra apt remove libboost*là một ý tưởng tồi
Kiên trì

2
Cảm ơn, bạn đã cứu mạng tôi !! Nhắc nhở: KHÔNG BAO GIỜ CHẠY "sudo apt purge python2.7"

2
Đừng chạy sudo apt remove python3haha
ThaJay

Vâng, tôi đã sử dụng apt purgerip cho tôi, điều tốt là nó là một bản cài đặt mới. Sẽ thật tuyệt khi biết rằng các hệ điều hành chính (đối với hầu hết mọi người), như netplan, yêu cầu điều này. Chắc chắn nó tham chiếu nó trong danh sách xóa, trước khi hỏi bạn có chắc không, nhưng ai có thời gian để xem và chắc chắn khi nào dễ dàng hơn để đánh ychìa khóa và returnhệ thống của bạn vào quên lãng ...
DeeJayh

5

Tôi tìm thấy một mẹo hay từ các diễn đàn Ubuntu .

Có thể chạy như sau trong một thiết bị đầu cuối:

awk '!/^Start|^Commandl|^End|^Upgrade:|^Error:/ { gsub( /\([^()]*\)/ ,"" );gsub(/ ,/," ");sub(/^Install:/,""); print}' /var/log/apt/history.log

Nhìn vào đầu ra, sau đó sử dụng

sudo apt-get install [packages]

và thay thế [gói] bằng dòng gói cuối cùng được trả lại (lưu ý rằng nó có thể gói).


Bạn đã cứu ngày của tôi. Nó thực sự thực sự giúp tôi.
Khamidulla

1

Tra cứu tất cả các gói đã được gỡ cài đặt. Nó được lưu trữ tại /var/log/apt/history.log . Bạn có thể viết một chương trình shell để cài đặt từng gói đã bị xóa. Viết nó trên bất kỳ trình soạn thảo văn bản GNU Emacs, vi, GNU Nano. Thực hiện nó thông qua các thiết bị đầu cuối. Tất cả các chương trình đã được gỡ cài đặt sẽ được tự cài đặt lại.


0

Để thêm vào câu trả lời của ablackhat, bạn có thể sao chép và dán mọi thứ sau lệnh xóa cuối cùng /var/log/apt/history.logvào trình soạn thảo lập trình viên mới. Regex thay thế :.*?,bằng (chuỗi trống) và sao chép tất cả các gói được phân tách bằng dấu cách. Sau đó chạy$ sudo apt-get install <paste>


0

Nâng cấp khôi phục hầu hết phần còn lại, phần còn lại .. bạn có thể sử dụng các kỹ thuật được hiển thị ở trên. Để nâng cấp, chỉ cần gõ "sudo apt-get Nâng cấp"


Tại sao nên apt-get upgradecài đặt lại các gói đã được gỡ bỏ có chủ đích?
Gerald Schneider

Nó thực sự không quá xa với một câu trả lời hoàn hảo cho OP: đợi ba năm và làmapt-get dist-upgrade
tăng gấp bốn lần vào

-1

nếu bạn

 apt-get install python

Python sẽ được cài đặt lại với tất cả các điều kiện tiên quyết của nó, đó là những gì tôi cho là tất cả các chương trình liên quan mà bạn đang nói về?


Tôi đã cài đặt Python, nhưng các chương trình phụ thuộc vào nó như Zim, GImp và nhiều chương trình khác không được hoàn nguyên ((Ngay cả Gedit cũng không hoạt động
IgorDiy

-1. Không giải quyết câu hỏi của OP ở chỗ mọi thứ cần Python cũng bị xóa.
Magellan
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.