Saya sedang menulis skrip untuk instalasi tanpa pengawasan dari paket yang ada di repo kami, ini adalah paket perangkat lunak dengan salah satu file konfigurasi bertanda Debian. Apakah ada opsi yang dapat saya sampaikan apt-get
/ aptitude
sehingga menerima file konfigurasi baru?
Pada dasarnya saya membutuhkan apt
/ aptitude
setara dengan dpkg --force-confnew
Saya perlu menjawab pertanyaan berikut yang diajukan saat apt-get
menginstal dengan Y
File konfigurasi `` / 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.
Informasi tambahan:
Juga, saya mengirimkan sudo
kata sandi dalam sebuah pipa untuk menjalankan perintah
echo "mysudopass"|sudo -S apt-get mypackage
Ini menandai kesalahan dalam instalasi ketika instalasi berada pada fase interaktif konfigurasi.
Saya di Ubuntu 10.04
versi apt: apt 0.7.25.3
Mengapa saya tidak bisa menggunakan dpkg
: Debian ini harus diinstal dari Repo dan saya tidak punya Debian lokal di mesin saya
Jawaban:
Anda dapat mengirimkan
dpkg
parameterapt-get
seperti iniDengan
--force-confdef
jika file konfigurasi lama masih ada, mereka tidak akan ditimpa. Jadi Anda mungkin tidak akan menggunakannya, saya hanya mendokumentasikannya untuk orang lain.sudo
tidak akan meminta kata sandi jika Anda meniadakan opsi otentikasi untuk pengguna atau menambahkanNOPASSWD
tag pada entri tertentu. misalnyasumber
Anda dapat mencoba yang berikut ini:
Tetapi perhatikan bahwa ini memiliki implikasi, seperti kata sandi default kosong (mungkin Anda ingin beberapa alat penyebaran / konfigurasi seperti boneka, koki, fabric ...?).
Lihat sudoers (5) tentang cara mengizinkan
sudo
doa tanpa kata sandi .sumber
Sebagai alternatif dari apa yang disarankan oleh forcefsck, saya sarankan Anda menambahkan ini ke pengaturan APT sehingga Anda tidak diharuskan untuk menambahkan opsi-opsi yang sulit untuk ditulis ini sepanjang waktu. Juga, ini akan membantu untuk peningkatan tanpa pengawasan jika Anda memiliki pengaturan ini.
Buat
/etc/apt/apt.conf.d/71debconf
file untuk memiliki konten berikut:Catatan (dari Geoff): perubahan ini akan menjadi perubahan global. Jika Anda memiliki paket lain di sistem yang ingin Anda upgrade tanpa pengawasan tetapi juga telah dikonfigurasi secara manual, ini bukan solusi yang tepat.
sumber
Selain jawaban lain, Anda mungkin juga harus mengatur lingkungan UCF_FORCE_CONFFNEW = 1 .
Misalnya openssh di debian stretch menggunakan ucf (bukan debconf) di dalamnya
openssh-server/openssh-7.4p1/debian/openssh-server.postinst
untuk menanyakan tentang file konfigurasi. (Anda dapat melihatopenssh-server.postinst
dengan menggunakandget
melawan http://security.debian.org/debian-security/pool/updates/main/o/openssh/openssh_7.4p1-10+deb9u4.dsc )Kami harus menggunakan semua trik di halaman ini sebagai tambahan untuk menjadi pengguna bebas dari debconf preseeding .
Namun kami berhenti
export DEBIAN_FRONTEND=noninteractive
karena kami ingin tahu apakah kami melewatkan sesuatu (itu mungkin penting). Kasing penggunaan kami adalah operator yang memulai operasi. Pembaruan ini diharapkan bersifat non-interaktif, tetapi operator hadir jika terjadi kesalahan dan sebuah dialog muncul dengan sendirinya. Situasi Anda mungkin berbeda.Tapi
export DEBIAN_FRONTEND=noninteractive
palu godam Anda.Berhati-hatilah: Pengaturan
-o Dpkg::Options::=--force-confnew
dan / atauUCF_FORCE_CONFFNEW=1
berarti bahwa semua file konfigurasi dari paket yang diinstal kembali ke yang upstream. Jadi mis. Dalam kasusopenssh-server
, Anda/etc/ssh/sshd_config
akan diatur ulang ke pengaturan pabrik. Dan misalnyaPermitRootLogin=yes
akan dihapus. Tapi tentu saja Anda tidak menggunakannya, jadi Anda akan baik-baik saja! ;-)sumber