Kısa bir süre önce Samba'yı yükledim ve /etc/samba/smb.conf
dosyayı dağıttım . Orijinal yapılandırmayı nasıl geri alabilirim?
Kısa bir süre önce Samba'yı yükledim ve /etc/samba/smb.conf
dosyayı dağıttım . Orijinal yapılandırmayı nasıl geri alabilirim?
Yanıtlar:
Düzenlendi :
Bunu bir sunucu hatası sorusunda gördüm . Eğer dpkg-reconfigure foo
çalışmazsa, bunu kullanın:
Bozuk yapılandırma dosyasını kaldırın veya yeniden adlandırın.
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.broken
Adresinden değiştirme isteğinde bulunun dpkg
.
sudo dpkg -i --force-confmiss /path/to/samba-common.deb
Bu, dpkg
eksik yapılandırma dosyalarını .deb dosyalarıyla değiştirmeyi söyler . Özgün .deb paketini bulabilirsiniz /var/cache/apt/archives
veya dağıtımınızın depolarından aynı sürümün yeni bir kopyasını kullanabilirsiniz.
dpkg -i --force-confnew foo.deb
Bu, dpkg
varolan yapılandırma dosyalarının üzerine .deb dosyalarının üzerine yazılmasını söyler . Özgün .deb paketini bulabilirsiniz /var/cache/apt/archives
veya dağıtımınızın depolarından aynı sürümün yeni bir kopyasını kullanabilirsiniz.
dpkg
yapılandırma izninin istenmesini isterse yapılandırma dosyasının üzerine yazmaya zorlar . O mu değil sihirli paketten bozulmamış yapılandırma dosyalarını yeniden yapmak.
--force-confmiss
bunun yerine bunu istiyorsun . Bu özel durumda, örneğin samba, --force-confnew
üzerine yazma gerçekleştireceğini düşünüyorum , ancak paket yapılandırma komut dosyalarının ayrıntılarına bağlı olduğunu haklısın.
Kısa cevap: /usr/share/samba/smb.conf
smb.conf dosyasının orijinal sürümüdür.
Herhangi bir paket için bu durumla karşı karşıya kaldığımda, yaptığım şey aşağıdakilerden biri:
Orijinal sürümün yedek dosyalarını düzenleyicinizden kontrol edin. Normalde foo~
dosyaları bırakan Emacs kullanıyorum ve sayısal sürüm kontrol seçeneğini orijinal sürüm her zaman olacak şekilde ayarladım foo.~1~
. Ama belki başka bir şekilde yaptın ya da başka bir editör kullandın. Henüz yapmadıysanız bu özelliği açmak için düzenleyicinizin yapılandırmasını kontrol etmeyi düşünün; girmek iyi bir alışkanlık.
Paketi ile yeniden yapılandırındpkg-reconfigure PACKAGENAME
. Bazen bu işe yarar. Deneyimlerime göre nadiren çalışır; paketin yapılandırma dosyalarını nasıl oluşturduğuna bağlıdır.
Paketi temizleyin ve tekrar takın ( apt-get purge packagename
ardından ile apt-get install packagename
). Bu her zaman işe yarar.
Aşırı durumlarda, temizlemeden sonra, paketi yeniden yüklemeden önce yapılandırma dosyalarını manuel olarak bulup silmeniz gerekir, ancak bu nadirdir. Ancak, bu paket için diğer veri ve / veya yapılandırma dosyalarını ortadan kaldıracaktır ve bu her zaman kabul edilemez.
Package ( apt-get source foo
) için kaynak kodunu indirin ve orijinal config dosyasının orada bir dosya olarak var olup olmadığına bakın. Ancak, yapılandırma dosyası önceden mevcut olmayabilir, ancak yükleme sırasında paketin yükleme sonrası komut dosyası tarafından oluşturulmuş olabilir.
/var/lib/dpkg/info/foo.postinst
Yapılandırma dosyasını nerede oluşturduğunu ve nasıl oluşturduğunu öğrenmek için paketin ( ) postinst komut dosyasına bakın . Ardından işlemi manuel olarak tekrarlamayı deneyin. Bu biraz iş ve her zaman kolay değil.
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
çöpe atılan conf dosyamı orijinalin üzerine yazmak için bir durumdu.
dpkg-reconfigure <package>
varsayılan olarak değiştirilen conf dosyalarını değiştirmez.
Muhtemelen bunu yapmanın en kolay yolu, apt önbelleğinde hala paketiniz varsa çalıştırmaktır
dpgk -i --force-confask /var/cache/apt/archives/<package file name>
burada paket dosya adı genellikle bir şeydir <package name>_<version>.deb
(sadece sekme tamamlamayı kullanın). Bu, uygun bir yükseltme ile aynı işlemden geçirilir ve değiştirilmiş bir conf dosyası bulduğunda ne yapmak istediğinizi sorar. N
Her istemde girmeniz yeterlidir . dpkg, conf dosyasının paket sürümünü .dpkg-dist
dosya adının sonuna yükler. Daha sonra vimdiff
farklılıkları karşılaştırmak ve okuma conf dosyasını değiştirmek için veya başka bir birleştirme aracı kullanabilirsiniz.
/var/cache/apt/archives/
Gerçi hiçbir paket yok ...
Debi ayıklayabilir ve orijinal dosyayı kapabilirsiniz:
ar p packagename.deb data.tar.gz | tar zx
dpkg-source
daha kolaydır ve apt-get source PACKAGE
kullanımı çok daha kolaydır.
packagename.postinst
komut dosyasında otomatik olarak oluşturur .
(#Ubuntu'dan alınan) en iyi yol bunu yapmaktır:
dpkg-reconfigure <package>
Bu durumda bu
dpkg-reconfigure samba-common
Orijinali geri yükleyebilirsiniz smb.conf
yapılandırma dosyasını :
# cp /usr/share/samba/smb.conf /etc/samba/smb.conf
# dpkg-reconfigure samba-common
Temel olarak orijinal paket kurulum işleminin yaptığı budur (Debian Squeeze üzerinde).
Bu, mevcut olanınızın üzerine yazacaktır smb.conf
, bu yüzden kaybetmek istemiyorsanız önce bir yedek alın.
Deb paketinin içeriğini yeniden indirebilir ve ayıklayabilirsiniz
$ sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
ve
$ sudo dpkg --configure -a
işi yapacak.
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf