Repo'dan debian'ın katılımsız bir kurulumunda apt-get yeni yapılandırma dosyalarını kabul etme


21

Repomuzdaki bir paketin katılımsız yüklemesi için bir komut dosyası yazıyorum, Debian'ın işaretli yapılandırma dosyalarından birine sahip bir yazılım paketidir. Yeni yapılandırma dosyalarını kabul edebilmek için apt-get/ iletebileceğim bir seçenek var mı aptitude?

Temelde bir apt/ aptitudeeşdeğer gerekirdpkg --force-confnew

apt-getBir Y ile yüklenirken sorulan aşağıdaki soruya cevap vermeliyim


Yapılandırma dosyası `` / opt / application / conf / XXX.conf` '

==> File on system created by you or by a script.
==> File also in package provided by package maintainer.

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     : background this process to examine the 

The default action is to keep your current version.

İlave bilgi:

Ayrıca, sudokomutu yürütmek için parolayı bir kanalda geçiriyorum

echo "mysudopass"|sudo -S apt-get mypackage

Bu, kuruluş yapılandırma etkileşimli aşamasındayken yükleme sırasındaki bir hatayı işaretler.

Ubuntu 10.04
apt sürümünde: apt 0.7.25.3

Neden kullanamıyorum dpkg: Bu Debian'lar Repo'dan yüklenecek ve makinemde yerel Debians yok


Yanıtlar:


22

Buna benzer dpkgparametreler iletebilirsinizapt-get

apt-get -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confnew install pkgname1 pkgname2 ...

İle --force-confdefeski yapılandırma dosyaları hala varsa, bunlar geçersiz kılınan alamayacak. Muhtemelen kullanmayacaksınız, sadece diğerleri için belgeliyorum.

sudokullanıcı için kimlik doğrulama seçeneğini reddederseniz veya NOPASSWDetiketi belirli bir girişe eklerseniz şifre istemez . Örneğin

someuser ALL = NOPASSWD: /usr/bin/apt-get

7

Aşağıdakileri deneyebilirsiniz:

export DEBIAN_FRONTEND=noninteractive
apt-get -q -y install whatever-2

Ancak bunun boş varsayılan şifreler gibi etkileri olduğunu unutmayın (belki kukla, şef, kumaş gibi bir dağıtım / yapılandırma aracı istersiniz)?

Şifresizsudo çağrılara nasıl izin verileceği hakkında sudo kullanıcılarına (5) bakın .


3

Forcefsck'in önerdiğine alternatif olarak , bunu APT ayarlarına eklemenizi öneririz, böylece bu yazma zor seçenekleri her zaman eklemeniz gerekmez. Ayrıca, bu kurulum varsa, katılımsız yükseltmeler için yararlı olacaktır.

/etc/apt/apt.conf.d/71debconfAşağıdaki içeriğe sahip olmak için dosya oluşturun :

Dpkg::Options {
  "--force-confnew";
};

Not (Geoff'den): Bu değişiklik küresel bir değişiklik olacaktır. Sistemde katılımsız yükseltme almak istediğiniz ancak el ile yapılandırdığınız başka paketler varsa, bu uygun bir çözüm değildir.


Bu iyi bir seçenek olabilir, ancak bunun GLOBAL bir değişiklik olacağını belirtmek önemlidir. Sistemde katılımsız yükseltme almak istediğiniz ancak yapılandırdığınız başka paketler de varsa, bu uygun bir çözüm değildir.
Geoff

2

Diğer cevaplara ek olarak, UCF_FORCE_CONFFNEW = 1 ortamını da ayarlamanız gerekebilir .

Debian streç içinde openssh openssh-server/openssh-7.4p1/debian/openssh-server.postinst, yapılandırma dosyası hakkında sormak için ucf (debconf değil) kullanır . ( Http://security.debian.org/debian-security/pool/updates/main/o/openssh/openssh_7.4p1-10+deb9u4.dsc karşı openssh-server.postinstkullanarak görebilirsiniz )dget

Debconf ön ödemenin liberal kullanıcıları olmasının yanı sıra bu sayfadaki tüm hileleri kullanmak zorunda kaldık .

Ancak export DEBIAN_FRONTEND=noninteractivebiz bir şey (bu önemli olabilir) kaçırdı bilmek istiyorum çünkü biz sadece kısa durdurmak yaptı . Kullanım durumumuz operasyonu başlatan bir operatördür. Yükseltmenin etkileşimli olmaması beklenir, ancak bir şeyler ters giderse ve bir iletişim kutusu kendini gösterirse operatör kullanılabilir. Durumunuz farklı olabilir.

Ama export DEBIAN_FRONTEND=noninteractivesenin meşhur balyozun.

Dikkat: Ayar -o Dpkg::Options::=--force-confnewve / veya kurulu paketlerdeki tüm yapılandırma dosyalarının akış yukarı olanlara geri döneceği UCF_FORCE_CONFFNEW=1anlamına gelir . Durumunda örneğin Yani , senin fabrika ayarlarına sıfırlanır. Ve örneğin kaldırılacak. Ama elbette bunu kullanmıyorsunuz, yani iyi olacaksınız! ;-)openssh-server/etc/ssh/sshd_configPermitRootLogin=yes

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.