Saya tidak sengaja menghapus semua paket yang dimulai dengan nama jpeg
dengan:
sudo apt-get remove jpeg*
Ini mengacaukan banyak hal, menghapus Unity, Firefox, Flash player dll.
Saya entah bagaimana berhasil memulihkan desktop dan persatuan tetapi kemudian banyak hal masih buggy. Misalnya .rpm
file dan .tag.gz
tidak mau terbuka sama sekali.
Yang saya inginkan adalah cara untuk memperbaiki semua yang salah. Sesuatu yang setara dengan 'instalasi perbaikan' dengan disk windows.
Ada tips, siapa saja?
Jawaban:
Anda dapat menginstal
ubuntu-desktop
tugas:Ini akan menginstal semua paket Desktop Ubuntu standar yang telah Anda hapus. Itu tidak akan mengembalikan paket yang telah Anda instal yang bukan bagian dari desktop standar (yaitu akan menginstal ulang Unity dan Firefox, tetapi bukan Flash player).
Untuk menginstal paket-paket itu, Anda dapat melihat
/var/log/apt/history.log
dan melihat dengan tepat apa yang telah Anda hapus.Catatan: menginstal
ubuntu-desktop^
tugas tidak sama dengan menginstalubuntu-desktop
paket . Yang pertama akan memberi APT beberapa petunjuk untuk menyelesaikan dependensi yang melibatkan paket virtual, yang terakhir akan memberi APT kebebasan untuk memilih paket (dan akhirnya menginstal hal-hal yang tidak berguna sepertiubiquity
).Mengapa masalahnya terjadi? tidak
apt-get remove jpeg*
akan menghapus semua paket yang dimulai dengan . Sebagai gantinya akan menghapus semua paket yang mengandung nama mereka. Ini karena apt-get bekerja dengan ekspresi reguler, sehingga jpeg * berarti: semua yang mengandung jpe diikuti oleh nol atau lebih g .jpeg
jpe
sumber
tasksel
untuk menghapus tugas - lihat tugas -bug jahatCara terbaik bagi Anda untuk memperbaiki masalah ini adalah menginstal ulang Ubuntu. (Anda harus membuat cadangan dokumen Anda terlebih dahulu, bahkan jika Anda berencana untuk menginstal ulang tanpa memformat ulang.)
Jika Anda ingin mencoba memperbaiki sistem di tempat, maka lihat file log manajer paket untuk melihat paket apa yang dihapus, dan instal ulang:
/var/log/dpkg.log
(informasi lengkap, tetapi sulit dibaca)/var/log/apt/history.log
(disingkat dengan akan memberi tahu Anda setiap paket dihapus atau dimodifikasi - kemungkinan taruhan terbaik Anda)/var/log/apt/term.log
(jika Anda menghapus paket denganapt-get
di terminal, ini akan menunjukkan apa yang Anda lihat kemudian, termasuk daftar paket apa yang akan dihapus - jadi ini mungkin cara terbaik)Menginstal ulang hanya paket yang namanya mulai
jpeg
tidak akan berfungsi, karena banyak (hampir pasti sebagian besar) paket yang dihapus dihapus karena mereka mengandalkan paket-paket itu.Di masa depan , saya merekomendasikan untuk memeriksa konsekuensi dari menghapus paket. Jika Anda bekerja dari baris perintah, Anda akan selalu diberi tahu. (Kecuali jika Anda menggunakan
-y
opsi, dalam hal ini, biasanya tidak. Saya sarankan untuk tidak menggunakan opsi itu kecuali Anda tahu apa yang Anda lakukan, terutama untuk pemindahan.)Salah satu cara untuk memeriksa konsekuensi dari operasi manajemen paket dilakukan dengan
apt-get
, tanpa risiko mereka terjadi, adalah dengan menjalankanapt-get -s
bukannyasudo apt-get
. Ini hanya mensimulasikan tindakan yang ditentukan, dan melaporkan paket apa yang akan terpengaruh sebagai hasilnya dan bagaimana.sumber
Saya menjalankan
sudo apt-get purge wine*
pada Ubuntu 15.10, jadi tidak ada antarmuka grafis pada boot hanya opsi login terminal.Seperti yang disarankan Eliah Kagan, saya menggunakan info dari
/var/log/apt/history.log
saya menjalankan nano di history.log dan membuat skrip sederhana yang berisisudo apt-get install
semua paket yang dibersihkan yang saya temukan di baris:Tapi pertama-tama saya harus menghapus teks secara manual di antara semua: dan, termasuk:,
pada langkah ini skrip baru akan sangat membantu karena paketnya ratusan. setelah itu saya menjalankan skrip dan menghapus beberapa
Unable to locate packages
(yang saya instal secara manual). jalankan skrip lagi dan hanya itu. Semuanya bekerja dengan baik ... untungnyasumber
Instal paket ubuntu-desktop
Ini akan menginstal paket yang diperlukan untuk sistem Anda.
sumber
Saya tidak sengaja melepas
libssl1.0.0
dan mesin saya lumpuh. Untuk memulihkan, saya lakukan:cp /var/log/apt/term.log ~/libssl.term.log
vi ~/libssl.term.log
ping google.com
), maka reboot dalam mode pemulihan dan aktifkan jaringancat ~/libssl.term.log | grep ^Removing | sed -e 's/^Removing //g;s/ (.*$//g;/diversion of/d;/dangling symlinks/d' | xargs sudo apt-get -y install
sumber
Berikut ini adalah skrip python kecil tempat Anda dapat menulis string paket (tidak dapat digunakan) dari pencopotan massal yang diaktifkan
/var/log/apt/history.log
. Ini akan menampilkan string yang dapat Anda salin tempel ke perintah apt-get install untuk menginstal dengan mudah semua paket yang dihapus.sumber