Ryan Thomson tarafından verilen cevap doğru yöne gidiyordu. Yine de iş yapamazdı (Detaylar nedeni aşağıda verilmiştir).
Bunu yaparken doğru (ve en kolay) yolu kullanıyor -o
ile apt
dpkg seçeneği geçmek ve zorlamak için dpkg
değiştirilmiş yapılandırma dosyaları veya orijinal olanları korumak isteyip istemediğinizi sormak. Komut böyle olacak -
sudo apt-get --reinstall -o Dpkg::Options::="--force-confask" install foo
Bu size bir soru soracaktı
Configuration file '/etc/foo/foo.conf'
==> Modified (by you or by a script) since installation.
Version in package is the same as at last installation.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** foo.conf (Y/I/N/O/D/Z) [default=N] ?
Paket sahibinin orijinal yapılandırma dosyasını yüklemek için Y veya I tuşlarına basın . Değişikliklerin ne olduğunu görmek için D tuşuna basabilir veya kendinizle düzeltmek için Z seçeneğiyle bir kök kabuğu başlatabilirsiniz.
Not: Değiştirme işleminden sonra, değiştirilmiş dosyanızı olarak bulabilirsiniz.at /etc/foo/foo.conf.dpkg-old
Diğer seçenekler neden işe yaramaz?
Çünkü dpkg'daki diğer seçenekler iyi çalışmıyor. Bir paketin config dosyaları ile ilgilenen seçenekler
--force-confmiss
--force-confnew
--force-confold
--force-confdef
--force-confmiss
Paket sürümü değişmediğinde işe yaramaz. Adam sayfasından
Bir conffile değiştirilmişse ve paketteki sürüm değişmişse , --force-confdef de belirtilmediği sürece yeni sürümü her zaman sormadan yükleyin, bu durumda varsayılan eylem tercih edilir.
--force-confmiss
eksik karışımlarla çalışır. Sürüm değişmediğinde de başarısız olur. Adam sayfasından alıntı
confmiss: Bir conffile eksikse ve paketteki sürüm değişmişse, sormadan her zaman eksik conffile'i kurun. Bu tehlikelidir, çünkü dosyada yapılan bir değişikliği (kaldırmadan) korumak anlamına gelmez
--force-confold
yalnızca değiştirilmiş versiyonu koruyacaktır sürümü değiştirilir . Aynı paket için de başarısız olur. Adam sayfasından alıntı
confold: Bir conffile değiştirilmişse ve paketteki sürüm değiştiyse , --force-confdef de belirtilmediği sürece eski sürümü her zaman sormadan saklayın , bu durumda varsayılan eylem tercih edilir.
--force-confdef
Varsayılan işlem daha eski dosyayı saklamak olduğu için de başarısız olacaktır (ile gösterilen mesajdan belirtilmiştir --force-confask
. Bu, (Y/I/N/O/D/Z) [default=N]
saklamanın varsayılan olduğu anlamına gelir. Ve --force-confnew
belirtilirse ancak sürüm değişmezse, bu da işe yaramaz. Adam sayfasından alıntı
confdef: Bir conffile değiştirilmişse ve paketteki sürüm değişmişse, sormadan her zaman varsayılan eylemi seçin. Varsayılan bir eylem yoksa, kullanıcıya --force-confnew veya --force-confold belirtilmediği sürece sormaktan vazgeçer , bu durumda son eyleme karar vermek için bunu kullanır.
Yalnızca --force-confask
çalışacak, çünkü sürüm aynı olsa bile size açıkça soru soracaktır. Adam sayfasından alıntı
confask: Eğer bir conffile değiştirilmişse, paketteki sürüm değişmemiş olsa bile (paketteki sürüm (dpkg 1.15.8'den beri) ile değiştiriniz. Herhangi Eğer --force-confmiss , --force-confnew , --force-confold veya --force-confdef da verilir, nihai eylem karar vermek kullanılacaktır.
Umarım yardımcı olur.
foo
ne olur,bar
bağlıfoo
ve ben kaldırmak istemiyorumbar
?