다음과 같은 방법으로 가상 머신에서 Debian10 머신을 자동으로 복제하려고 합니다.도보 여행가.
나는 처음부터 시작한다포장 노동자그런 다음 모든 패키지와 구성을 다시 설치하십시오.
그래서 하드웨어 컴퓨터에서 시도해 보았습니다.
dpkg --get-selections > dpkg
debconf-get-selections > debconf
그런 다음 가상 머신에서 가져옵니다.
debconf-set-selections < debconf
apt-get -y install dselect
dselect update
dpkg --force-confold --set-selections < dpkg
apt-get -y update
apt-get -y -o Dpkg::Options::="--force-confold" dselect-upgrade
apt-get -o Dpkg::Options::="--force-confold" -f install
모든 것이 예상대로 작동하지만 msmtp
및 의 경우 phpldadmin
의사 터미널 대화 상자를 통해 이전 구성을 선택하라는 메시지가 표시됩니다 ucf
.
debconf
두 대화 상자에 자동으로 응답하려면 어떻게 해야 합니까 (또는 다른 트릭)?
debconf
수동 선택 대화 상자로 인해 업데이트를 시도했지만 성공하지 못했습니다.
이것 pstree
:
│ └─dpkg,18446 --force-confold -i phpldapadmin_1.2.2-6.1~bpo9+1_all.deb
│ └─frontend,18456 -w /usr/share/debconf/frontend /var/lib/dpkg/info/phpldapadmin.postinst configure
│ ├─phpldapadmin.po,18470 -e /var/lib/dpkg/info/phpldapadmin.postinst configure
│ │ └─ucf,18483 /usr/bin/ucf --debconf-ok /tmp/tmp.eP3bVeYBPp /etc/phpldapadmin/config.php
│ └─whiptail,18522 --backtitle Package configuration --title Configuring phpldapadmin --output-fd 11 --nocancel --default-item ...
에서 man dpkg
:
confifold: conf 파일이 수정되고 패키지의 버전이 변경된 경우 --force-confdef도 지정하지 않는 한 프롬프트 없이 이전 버전이 항상 유지됩니다. 이 경우 기본 작업이 선호됩니다.
하지만 이 스위치를 사용해도 메시지가 표시됩니다.
msmtp
Deb 미팅:
$ grep msmtp debconf
# Action souhaitée pour le fichier de configuration modifié msmtprc :
msmtp msmtp/auto_from boolean true
msmtp msmtp/tls boolean on on on /etc/ssl/certs/ca-certificates.crt
msmtp msmtp/host string smtp.foobarmail.com
msmtp msmtp/maildomain string
msmtp msmtp/port string 587
msmtp msmtp/sysconfig boolean true
phpldapadmin
Deb 미팅:
$ grep phpldapadmin ../../files/debconf.db
phpldapadmin phpldapadmin/restart-webserver boolean true
phpldapadmin phpldapadmin/ldap-authtype select session
phpldapadmin phpldapadmin/ldap-server string 127.0.0.1
phpldapadmin phpldapadmin/ldap-basedn string xxxx
phpldapadmin phpldapadmin/ldap-bindpw string secret
phpldapadmin phpldapadmin/ldap-tls boolean false
phpldapadmin phpldapadmin/reconfigure-webserver multiselect apache2
phpldapadmin phpldapadmin/ldap-binddn string xxxx
답변1
다음과 같이 해결되었습니다.
export LANG=C
export DEBIAN_FRONTEND=noninteractive # very important
debconf-set-selections < debconf
apt-get -y install dselect
dselect update
dpkg --force-confold --set-selections < /root/pkgs
apt-get -y update
yes '' | apt-get -y -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" dselect-upgrade
yes '' | apt-get -y -o Dpkg::Options::="--force-confdef" -o DPkg::options::="--force-confold" -f install
if ! dpkg -l | grep -q phpldapadmin; then
wget http://ftp.fr.debian.org/debian/pool/main/p/phpldapadmin/phpldapadmin_1.2.2-6.1~bpo9+1_all.deb -O phpldapadmin_1.2.2-6.1~bpo9+1_all.deb
yes '' | dpkg --force-confold --force-confdef -i phpldapadmin_1.2.2-6.1~bpo9+1_all.deb
fi
고마워요^^