Saya ingin mengembalikan LightDM ke keadaan standarnya, karena karena alasan tertentu
/etc/lightdm/unity-greeter.conf
sekarang merupakan file kosong.
Menghapus /etc/lightdm/unity-greeter.conf
dan kemudian berjalan sudo apt-get install --reinstall unity-greeter
tidak membuat file konfigurasi baru seperti yang Anda harapkan.
Bagaimana saya bisa mengembalikan file konfigurasi yang hilang?
sumber
--force-confask
tanpa menghapus adalah bahwa ia menawarkan untuk menunjukkan perbedaan antara perubahan Anda dan yang asli.ucf
para--force-confmiss
opsi tidak akan bekerja, Anda harus menggunakansudo UCF_FORCE_CONFFMISS=1 apt-get --reinstall install [pkgname]
.-o
saya mendapat kesalahan "dpkg: error: unknown option -o" tetapi ketika saya menggunakannya--option
ternyata berfungsi. Saya di Ubuntu 16.04.1.Untuk banyak kasus, file konfigurasi default disediakan oleh paket secara langsung. Dalam kasus seperti itu, Anda dapat mengekstrak file spesifik dari paket, sehingga dengan mudah memulihkan file.
Untuk memeriksa apakah suatu paket menyediakan file, jalankan
dpkg -S
di path lengkap file. Sebagai contoh:Disediakan oleh satu paket
Seperti yang dapat kita lihat,
/etc/ssh/sshd_config
tidak secara langsung disediakan oleh paket apa pun, tetapi dua lainnya disediakan olehopenssh-client
dansudo
masing - masing. Jadi, jika Anda ingin memulihkan/etc/ssh/ssh_config
, dapatkan paket lebih dulu:Sekarang, Anda dapat mengekstrak file secara langsung ke lokasi yang dituju, atau ke lokasi yang dimaksud relatif terhadap direktori saat ini alih-alih
/
, jika Anda ingin membandingkan dan kontras, atau secara manual menggabungkan mereka atau sesuatu. Untuk yang pertama:The
-C /
memberitahutar
untuk mengekstrak setelah mengubah ke/
, yang berarti file target akan diganti. Jika Anda menghapusnya,tar
akan mengekstrak ke direktori saat ini, artinya./etc/ssh/ssh_config
akan ada di direktori Anda saat ini.Jika karena alasan tertentu
sudo
tidak berhasil, gunakanpkexec
saja. Jikapkexec
tidak berhasil, reboot ke mode pemulihan, mount/
sebagairw
. Jika itu tidak berhasil ...Dibuat oleh satu paket
Bagaimana dengan
/etc/ssh/sshd_config
? Tampaknya tidak disediakan oleh paket apa pun, jadi bagaimana tampilannya?Dalam hal ini (dan dalam banyak kasus lainnya, contoh lainnya adalah
/etc/modules
), file dibuat menggunakan skrip pengelola paket saat instalasi. Ini sering dilakukan ketika file konfigurasi perlu diubah karena respons pengguna terhadap permintaan. OpenSSH, misalnya, menanyakan apakahPermitRootLogin
harus diubahno
, di versi yang lebih baru, di antara hal-hal lain.Untuk mengidentifikasi kasus-kasus seperti itu, coba lihat melalui skrip pengelola. Biasanya Anda hanya perlu melihat
postinst
, tetapi jika Anda tidak beruntungpostinst
, cobalahpreinst
juga:Dalam hal ini, kami beruntung:
Hanya satu file yang cocok, dan jika beruntung, itu berisi kode untuk membuat file konfigurasi default :
Biasanya, inilah yang akan Anda lihat (contoh lain,
/etc/modules
darikmod
):Jadi, Anda dapat mencari kode ini dan mendapatkan konten dari skrip secara langsung.
Tidak ada skrip seperti itu? Anda masih dapat mencoba menyodok daftar file dari paket terkait untuk melihat apakah ada yang berhasil, tetapi pada titik ini, saya tidak melihat metode yang mudah digeneralisasikan (singkat menginstal ulang pada lingkungan sementara, seperti chroot atau VM atau USB langsung).
Dalam jangka panjang, simpan konfigurasi Anda di bawah kontrol versi. VCS senilai garam dapat menyimpan hari di sini, dan yang
etckeeper
utilitas jauh menyederhanakan tugas menjaga/etc
di VCS a.sumber
Menurut utas ini di Forum Ubuntu, semudah menjalankan yang berikut ini di terminal:
sumber
dpkg-maintscript-helper: warning: environment variable DPKG_MAINTSCRIPT_NAME missing dpkg-maintscript-helper: warning: environment variable DPKG_MAINTSCRIPT_PACKAGE missing
. LightDM juga tidak dikembalikan ke konfigurasi aslinya.sudo apt-get --reinstall install lightdm
) dan masih/etc/lightdm/unity-greeter.conf
kosong.Temukan paket yang memiliki file konfigurasi:
itu akan menghasilkan sesuatu yang mirip dengan:
jadi nama paketnya adalah "unity-greeter", unduh paketnya:
kemudian ekstrak data bagan sistem file ke file tar:
akhirnya ekstrak hanya konfigurasi yang tepat itu di mana saja Anda inginkan:
./etc/lightdm/unity-greeter.conf
adalah nama file di arsip kami./etc/lightdm/unity-greeter.conf
adalah tempat saya mengirimkannya untuk disimpan.Atau seperti yang disarankan @Muru, kita bisa melakukannya dalam satu liner:
sumber
dpkg-deb --fsys-tarfile unity-greeter_version-0ubuntu1_amd64.deb | sudo tar x -C / ./etc/lightdm/unity-greeter.conf
, makatar
akan melakukan cd/
sebelum mengekstraksi.Saya memiliki Masalah yang sama pada Ubuntu 17.04. Postinstall menggunakan templat dari
/usr/share/openssh/
. Ia memeriksa apakah rootlogin diaktifkan atau tidak, setel opsi ini dan salin ke/etc/ssh
. Setelah itu melakukan beberapa panggilan ucf dan ucfr (saya tidak tahu untuk apa itu).Cukup salin
/usr/share/openssh/sshd_config
ke/etc/ssh/sshd_config
:Sekarang sesuaikan keinginan
sshd_config
Anda.sumber
Ini tidak berfungsi semua file konfigurasi. Untuk
/etc/nsswitch.conf
, lihat Cara mengembalikan / membuat ulang file etc / nsswitch.conf . Tampaknya tidak mungkin merekonstruksi file itu dengandpkg-reconfigure
.sumber
Hapus (kembali) file dan instal ulang
unity-greeter
denganapt-get install --reinstall unity-greeter
.sumber