Saya baru-baru ini menginstal Samba dan saya mengacaukan /etc/samba/smb.conffile. Bagaimana saya mendapatkan konfigurasi asli kembali?
Saya baru-baru ini menginstal Samba dan saya mengacaukan /etc/samba/smb.conffile. Bagaimana saya mendapatkan konfigurasi asli kembali?
Jawaban:
Diedit :
Melihat ini pada pertanyaan kesalahan server . Jika dpkg-reconfigure footidak 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 dpkguntuk 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 dpkguntuk 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.
dpkguntuk menimpa file konfigurasi jika jika tidak meminta izin untuk melakukannya . Itu tidak membuatnya secara ajaib membuat kembali file konfigurasi asli dari paket.
--force-confmisssebaliknya. dalam kasus khusus ini, misalnya samba, saya pikir --force-confnewakan melakukan overwrite, tetapi Anda benar bahwa itu tergantung pada rincian skrip konfigurasi paket.
Jawaban singkat: /usr/share/samba/smb.confadalah 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 packagenamediikuti 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.confuntuk 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 Ndi setiap prompt. dpkg akan menginstal versi paket dari file conf dengan .dpkg-distdi akhir nama file. Anda kemudian dapat menggunakan vimdiffatau 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-sourcelebih mudah, dan menggunakan apt-get source PACKAGEadalah jauh lebih mudah.
packagename.postinstskrip.
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.conffile 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