Apt-get package kurulum sorularına varsayılan cevaplar mı aktarılıyor?


27

Yeni sunucular için bir yapılandırma betiği yazmaya çalışıyorum ve ilk adımlardan biri apt-get install, dpkg tarafından yapılandırılmaya çalışılırken Ancak, dpkg tarafından yapılandırılmaya çalışıldığında, MySQL, phpMyAdmin vb. Gibi bir dizi gerekli paketi yüklemek. MySQL root şifresi, phpMyAdmin şifresi, hangi sunucunun kullanılacağı vs. gibi birkaç seçenek

Muhtemelen bu senaryoyu istemeleri okuma olasılığı düşük olan iş arkadaşlarına aktaracağım ve basitçe başlatıp uzaklaşma arzum , bir dizi "varsayılan" cevabın nasıl verileceğini bilmek istiyorum. bunun için değerleri kullanın. Bu, kullanıcı adlarını / şifrelerini / komut satırında geçirilen diğer dinamik değerleri içerebilir.

-

Bir komut dosyasında parolalara sahip olmanın bir güvenlik sorunu olduğunun farkındayım, ancak bunu daha genel bir anlamda, bunun cevabını ima edeceği paketleri kurmak anlamında onu görmezden gelmeye razıyım.

Yanıtlar:


44

Debconf'un konfigürasyon hazırlığını kullanın.

İstediğiniz değerleri elde etmek için bir test kurulumu yapın:

root@test1:~# apt-get install mysql-server

.. ve kurulum sırasında istendiğinde kök şifresini ayarlayın.

Sonra debconf ayarlarının ne kurduğunuzu görünce kontrol edebilirsiniz (yüklemeniz gerekebilir debconf-utils):

root@test1:~# debconf-get-selections | grep mysql-server
mysql-server-5.5        mysql-server/root_password_again        password
mysql-server-5.5        mysql-server/root_password      password
mysql-server-5.5        mysql-server/error_setting_password     error
mysql-server-5.5        mysql-server-5.5/postrm_remove_databases        boolean false
mysql-server-5.5        mysql-server-5.5/start_on_boot  boolean true
mysql-server-5.5        mysql-server-5.5/nis_warning    note
mysql-server-5.5        mysql-server-5.5/really_downgrade       boolean false
mysql-server-5.5        mysql-server/password_mismatch  error
mysql-server-5.5        mysql-server/no_upgrade_when_using_ndb  error

Orada biraz gürültü var, ama önemli kısmı şifre ayarları.

Daha sonra, yeni bir kurulum için önceden şifreyi ayarlayarak istemleri tamamen önleyebilirsiniz:

root@test2:~# echo "mysql-server-5.5 mysql-server/root_password_again password Som3Passw0rd" | debconf-set-selections
root@test2:~# echo "mysql-server-5.5 mysql-server/root_password password Som3Passw0rd" | debconf-set-selections
root@test2:~# apt-get install mysql-server

Bu yükleme sırasında hiçbir istem yok.


10
sudo apt-get install debconf-utilsgerekli olarak.
Andrew,

Bu tam olarak aradığım şeye benziyor, teşekkürler! Kısa bir süre deneyeceğim.
Tarka

PhpMyAdmin ile önceden yazılmış bir MySQL kök şifresini kabul etmemekle ilgili bilinen bir hatanın yanı sıra, bu mükemmel çalışıyor!
Tarka

1
merak ediyorum, paketleri kurmadan paket sisteminden olası debconf ayarlarını almanın bir yolu var mı?
stefan.at.wpf

17
export DEBIAN_FRONTEND=noninteractive
apt-get -q -y install _packages_

$ DEBIAN_FRONTEND okuyan için bir referansınız var mı?
Andrew,

Bu uzun zamandır Debian'ın bir parçası olmuş, sanırım sadece Ian ne zaman eklendiğini söyleyebiliyordu.
Michael Hampton

1
@Andrew Debconf tarafından okundu , bu aslında sorularla ilgileniyor.
mgorven

@mgorven Ahh, daha önce dpkg'dan daha derine gitmedim.
Andrew,

AFAIK, bu çözüm sadece bilgi istemi atlamanıza ve varsayılanı tüm cevaplara kabul etmenize izin veriyor. Varsayılan olmayan bir cevap ayarlamak istiyorsanız, debconf-set-selectionsyöntem gibi başka bir çözüm kullanmanız gerekir .
MestreLion

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.