Instal ulang basis Ubuntu tanpa memformat atau menghapus paket yang diinstal secara manual

10

Karena saya terlalu sering bermain-main dengan repositori yang diusulkan (pada 14,04), saya ingin kembali ke langkah 1: hapus setiap paket pada sistem kecuali yang telah saya instal secara manual dan instal ulang sistem basis, tanpa harus repot menginstal ulang .

Pada dasarnya, apakah ada cara aman dan jarak jauh di atas ssh:

  • hapus semua paket kecuali yang diinstal secara manual
  • instal ulang semuanya dari kernel ke ubuntu-desktop(lebih disukai secara otomatis tanpa ada paket lebih lanjut yang ditandai sebagai diinstal secara manual)
  • instal dependensi dari paket yang diinstal secara manual

NB Saya sengaja dengan harapan mendapatkan jawaban yang tidak spesifik untuk versi tertentu.


Sepertinya saya belum menggambarkan apa yang saya inginkan cukup sederhana, saya pikir dua poin ini akan mengurus hal-hal di atas:

  • bersihkan semua paket yang diinstal secara otomatis (@kos menjawab itu pada jawaban @ Fabby)
  • instal paket yang membentuk instalasi Ubuntu baru

Dan saya menduga jika dependensi dari paket yang diinstal secara manual dapat dihapus, apt-get -fakan membantu saya.

Oxwivi
sumber
1. Apakah semua file yang perlu Anda simpan di / home? 2. Apakah jaringan stabil? Jika Anda memindahkan file pengguna Anda atau apa pun yang perlu Anda simpan, dapatkah Anda menulis semuanya, dan memindahkan file pengguna dengan mudah? Juga. apakah PXE diaktifkan? dan apakah ada alat pendukung Virtualisasi di BIOS?
j0h
@ j0h 1. Tidak ada yang penting /home, tetapi ada konfigurasi penting dalam paket yang diinstal secara manual, 2. Ya, tapi seperti yang saya katakan file pengguna tidak khawatir, 3. Ya, ini diaktifkan, 4. Dan ya, ada dukungan virtualisasi juga .
Oxwivi
Ini sedikit di atas tingkat keahlian saya, tetapi bukankah akan lebih mudah untuk mendapatkan daftar paket dari instalasi baru, bedakan dengan instalasi Anda saat ini untuk mendapatkan daftar semua yang ditambahkan. Kemudian lakukan instalasi baru dan secara otomatis menambahkan kembali semua hal khusus - mungkin dengan mengembalikan beberapa atau semua file konfigurasi dalam $ HOME? Anda mendapatkan daftar dengan menjalankan dpkg -l. Ini mungkin akan menandai banyak hal tambahan sebagai diinstal secara manual - bukan sebagai dependensi yang bisa hilang jika paket yang membutuhkannya dihapus nanti.
Joe

Jawaban:

5

Demi masa depan:

Jika Anda memiliki server jarak jauh di pusat Data yang berjarak 1000 mil, Anda sebaiknya memasang sakelar IPKVM sehingga Anda tidak harus bergantung hanya sshuntuk mencapainya.

Jika server berada di Mount Everest: tambahkan telepon Iridium dan modem juga ...

Kemudian Anda dapat memiliki partisi FAT CloneZilla 512MB yang dapat di-boot pada mesin itu (saya menggunakan SLC USB stick) dan menggunakan konsol untuk boot ke sana dan mencadangkan gambar partisi sistem Anda ke drive data Anda dan kemudian menyalin gambar sistem sebelumnya pada partisi sekunder stik USB Anda sebelum Anda mulai menambahkan trusty-proposedke server . (Saya menyimpan sebagian besar cadangan sistem saya di drive data: mereka hanya 6GB)

Untuk sekarang:

  • Ambil apt-backup
  • Pergi melalui Anda /var/log/apt/history*
  • Buat skrip otomatis Anda sendiri yang melakukan apt-get purgesemua hal yang benar-benar tidak Anda inginkan / perlukan lagi dari data pada langkah sebelumnya
  • Jalankan skrip sambil berdoa kepada Linus of the Torvalds
  • Perbarui repositori Anda seperti yang Anda inginkan (seperti menghapus trusty-proposed)
  • Reboot sambil berdoa kepada Richard of the Stallmans
  • Jika semuanya berhasil: terapkan solusi sakelar IPKVM di atas.
Fabby
sumber
Tidak ada perintah otomatis untuk menghapus semuanya kecuali this that? :( Apakah saklar IPKVM datang dengan fungsi DNS dinamis? Tidak ada artinya dalam kasus ini.
Oxwivi
Di atas adalah yang paling otomatis Anda akan dapatkan. Sepenuhnya otomatis seperti titik pemulihan Windows: tidak, itulah yang digunakan untuk pencadangan sistem ... Switch IPKVM dapat menggunakan DHCP, jadi dengan menggunakan layanan Dynamic DNS eksternal: "ya, agak" ...
Fabby
Nah, saya benci Windows restore pointy. Tidak tahu apa yang terjadi di sana. (Lebih tepatnya, saya membenci seluruh lini produk Windows frickin ') Satu-satunya bagian otomatis yang saya inginkan adalah mencari tahu semua paket manual dan perintah untuk menghapus semuanya kecuali yang ada.
Oxwivi
Saya menghapus Windows sekitar 2 tahun yang lalu ... Apakah Anda pernah mencoba melihat ke dalam history.log??? : P
Fabby
@Oxwivi Anda ingin apt-mark showauto, dan untuk membersihkan semua paket dalam output dengan memberi makan daftar untuk apt-cache purge: apt-mark showauto | xargs sudo apt-get --dry-run purge. Saya secara sukarela menambahkan --dry-runsakelar jika Anda ingin mencobanya, sehingga Anda benar-benar dapat melihat apa yang terjadi: melakukan sesuatu seperti itu merusak instalasi Anda, karena ia menghapus setiap paket yang bergantung pada salah satu paket yang dihapus oleh perintah . Lihatlah output dari dry run.
kos
1

OK, Jawaban saya berasumsi Anda bisa, dan telah membuat cadangan direktori pengguna Anda, dan semua yang ingin Anda simpan. yang mengurangi pertanyaan Anda menjadi bagaimana cara menginstal Ubuntu di server jauh? Ada banyak solusi untuk itu.

Untuk ini, Anda bisa menggunakan DRBL, untuk menyebarkan sistem operasi dari jarak jauh, dengan beragam opsi untuk booting. Anda dapat melihatnya di sini: http://drbl.org/installation/

Ada Clobber: http://cobbler.github.io/manuals/quickstart/

Ada cloneZilla, yang dapat mencadangkan dan memulihkan melalui jaringan. Tautan ini untuk windows, tetapi metode yang sama berlaku untuk linux. Atau, Anda dapat membuat image boot ubuntu secara lokal, dan menginstalnya menggunakan clonezilla. http://opensourceforu.efytimes.com/2013/12/restore-partitions-network-using-clonezilla/

Atau, Anda bisa mencoba menggunakan dd_rescue, atau netcat

Istilah pencarian yang berguna mungkin "Penyediaan Server". Ada lebih banyak pilihan daripada ini.

Ada metode bruteforce juga.

$ ls /
bin  boot  cdrom  dev  etc  home  initrd.img  initrd.img.old  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  vmlinuz  vmlinuz.old

dan PATH Anda seperti ini:

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

jika direktori root Anda adalah sesuatu seperti ini, jika Anda menulis / etc, dan / usr dengan versi "clean", Anda akan menimpa, hampir setiap bagian dari perangkat lunak yang diinstal, dan file konfigurasi untuknya. Itu akan menjadi hacker untuk sedikitnya, jika bukan ide yang benar-benar mengerikan. Berlari apt-get purgeakan jauh lebih aman, atau mungkin Anda bisa sedikit memperbaiki prosesnya. Anda mungkin juga ingin menyertakan klon dari file konfigurasi ssh lama Anda di / etc / ssh / sebelum mencoba me-restart layanan dengan file-file konfigurasi baru.

Ada juga alat yang memungkinkan Anda membuang kernel yang berjalan dan memutakhirkan tanpa me-reboot. Untuk itu Anda bisa memeriksa Kslpice, atau kGraft

Jika semua Anda mengalami masalah dengan repo dan manajemen paket, saya tidak yakin mengapa Anda ingin membuang kernel, mbr, partisi boot dll.

Jadi bagaimana pun, saya harap saya sudah memberi Anda beberapa ide untuk melihat ke dalam. Ada banyak cara untuk membongkar server dari jarak jauh.

j0h
sumber