Saya baru-baru ini menginstal Samba dan saya mengacaukan /etc/samba/smb.conf
file. Bagaimana saya mendapatkan konfigurasi asli kembali?
Saya baru-baru ini menginstal Samba dan saya mengacaukan /etc/samba/smb.conf
file. Bagaimana saya mendapatkan konfigurasi asli kembali?
Jawaban:
Diedit :
Melihat ini pada pertanyaan kesalahan server . Jika dpkg-reconfigure foo
tidak berhasil, gunakan ini:
Hapus atau ganti nama file konfigurasi yang rusak.
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.broken
Minta penggantian dari dpkg
.
sudo dpkg -i --force-confmiss /path/to/samba-common.deb
Ini memberitahu Anda dpkg
untuk mengganti file konfigurasi yang hilang dengan yang dari deb. Anda mungkin menemukan paket asli .deb di /var/cache/apt/archives
, atau Anda dapat menggunakan salinan baru dari versi yang sama dari repositori distribusi Anda.
dpkg -i --force-confnew foo.deb
Ini memberitahu Anda dpkg
untuk menimpa file konfigurasi yang ada dengan file .deb. Anda mungkin menemukan paket asli .deb di /var/cache/apt/archives
, atau Anda dapat menggunakan salinan baru dari versi yang sama dari repositori distribusi Anda.
dpkg
untuk menimpa file konfigurasi jika jika tidak meminta izin untuk melakukannya . Itu tidak membuatnya secara ajaib membuat kembali file konfigurasi asli dari paket.
--force-confmiss
sebaliknya. dalam kasus khusus ini, misalnya samba, saya pikir --force-confnew
akan melakukan overwrite, tetapi Anda benar bahwa itu tergantung pada rincian skrip konfigurasi paket.
Jawaban singkat: /usr/share/samba/smb.conf
adalah versi asli dari file smb.conf.
Ketika dihadapkan pada situasi ini untuk paket apa pun, apa yang saya lakukan adalah salah satu dari yang berikut:
Periksa file cadangan versi asli dari editor Anda. Saya menggunakan Emacs, yang biasanya meninggalkan foo~
file, dan saya telah mengatur opsi kontrol versi numerik sehingga versi aslinya selalu foo.~1~
. Tapi mungkin Anda melakukannya dengan cara lain, atau menggunakan editor lain. Pertimbangkan untuk memeriksa konfigurasi editor Anda untuk mengaktifkan fitur ini jika Anda belum melakukannya; itu kebiasaan yang baik untuk masuk.
Konfigurasikan ulang paket dengan dpkg-reconfigure PACKAGENAME
. Terkadang ini berhasil. Dalam pengalaman saya itu jarang berhasil; itu tergantung pada bagaimana paket membuat file konfigurasinya.
Bersihkan dan instal ulang paket (dengan apt-get purge packagename
diikuti oleh apt-get install packagename
). Ini harus selalu berhasil.
Dalam kasus ekstrem Anda harus, setelah membersihkan, secara manual memburu dan menghapus file konfigurasi sebelum menginstal ulang paket, tetapi ini jarang terjadi. Namun, ini akan menghilangkan data dan / atau file konfigurasi lainnya untuk paket, dan itu tidak selalu dapat diterima.
Unduh kode sumber untuk paket ( apt-get source foo
) dan lihat apakah file konfigurasi asli ada sebagai file di sana. Namun, mungkin file config tidak ada sebelumnya, tetapi dibuat saat instalasi oleh skrip post-install paket.
Periksa skrip postinst untuk paket ( /var/lib/dpkg/info/foo.postinst
) untuk mencari tahu di mana ia menciptakan file konfigurasi dan bagaimana melakukannya. Kemudian coba ulangi proses secara manual. Ini sedikit kerja, dan tidak selalu mudah.
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
untuk menimpa file conf trash saya dengan yang asli.
dpkg-reconfigure <package>
tidak akan mengubah file conf yang diubah secara default.
Mungkin cara termudah untuk melakukan ini, jika Anda masih memiliki paket di cache apt adalah menjalankan
dpgk -i --force-confask /var/cache/apt/archives/<package file name>
di mana nama file paket biasanya kira-kira seperti <package name>_<version>.deb
(gunakan saja penyelesaian tab). Ini akan berjalan melalui proses yang sama dengan apt-upgrade, dan menanyakan apa yang ingin Anda lakukan ketika menemukan file conf yang diubah. Cukup masukkan N
di setiap prompt. dpkg akan menginstal versi paket dari file conf dengan .dpkg-dist
di akhir nama file. Anda kemudian dapat menggunakan vimdiff
atau beberapa alat penggabung lainnya untuk membandingkan perbedaan, dan memodifikasi file read conf.
Anda dapat mengekstrak deb dan mengambil file asli:
ar p packagename.deb data.tar.gz | tar zx
dpkg-source
lebih mudah, dan menggunakan apt-get source PACKAGE
adalah jauh lebih mudah.
packagename.postinst
skrip.
Anda dapat mengunduh dan mengekstrak isi paket deb
Cara terbaik (didapat dari #ubuntu) adalah dengan melakukan ini:
dpkg-reconfigure <package>
Dalam hal ini artinya
dpkg-reconfigure samba-common
Anda dapat mengembalikan smb.conf
file konfigurasi asli seperti ini:
# cp /usr/share/samba/smb.conf /etc/samba/smb.conf
# dpkg-reconfigure samba-common
Ini pada dasarnya adalah apa yang dilakukan proses instalasi paket asli (pada Debian Squeeze).
Ini akan menimpa Anda saat ini smb.conf
, jadi buat cadangan terlebih dahulu jika Anda tidak ingin kehilangannya.
$ sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
dan
$ sudo dpkg --configure -a
akan melakukan pekerjaan itu.
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf