설치 중에 apt-get / aptitude가 대화 상자를 표시하지 못하게하려면 어떻게해야합니까?


28

Linode에 Ubuntu 12.04 서버를 배포하기 위해 Ansible Playbook을 만들려고하는데 내 문제는 Ubuntu 서버 인 것 같습니다. apt-get 또는 aptitude의 다른 조합을 실행할 때 항상 응답 해야하는 다음 대화 상자가 나타납니다.

패키지 구성 대화 상자

자동 배포를 방해하지 않도록 명령 줄 에서이 답변을 받고 싶습니다. 어떤 아이디어?

내 현재 명령은 다음과 같습니다. DEBIAN_FRONTEND를 설정하려고합니다.

#!/bin/bash

echo 'DEBIAN_FRONTEND="noninteractive"' >> /etc/profile
echo 'DEBIAN_FRONTEND="noninteractive"' >> ~/.profile

source /etc/profile
source ~/.profile

# This next line is the one that pops up the dialog
sudo aptitude -y install iptables-persistent

# Need this to fix an issue with the package post-install (this works fine.)
sudo sed \
    -i 's/\(modprobe -q ip6\?table_filter\)/\1 || true/g' \
    /var/lib/dpkg/info/iptables-persistent.postinst; \
sudo aptitude install iptables-persistent

답변:


34

사용해보십시오 debconf-set-selections패키지를 설치하기 전에 값을 설정합니다 :

echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections
echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections

또는, ansible를 통해

- name: prevent the iptables-peristent install dialog
  debconf: name=iptables-persistent question={{ item }} vtype=boolean value=true
  with_items:
  - iptables-persistent/autosave_v4
  - iptables-persistent/autosave_v6
- name: install iptables-persistent
  apt: name=iptables-persistent

@Braiam 나는 sudo를 추가
로린 Hochstein에게

iptables-persistent를 추가하고 싶을 수도 iptables-persistent/autosave_v4 boolean true있습니다.
Braiam

@Braiam 추가는 V4
로린 Hochstein에게

0

보고 싶었습니다 -q. 시험:

sudo DEBIAN_FRONTEND=noninteractive aptitude install -y -q iptables-persistent

1
12.04에서는 작동하지 않았습니다. (이미 다른 수정 작업을 수행해야하므로 패키지가 환경 변수를 무시하는지 궁금합니다.
Brian Lyttle

1
게시하기 전에 12.04-desktop vm에서 이것을 테스트했습니다. 아마도 12.04 서버와 관련이 있습니까?
Germar

데비안도 같은 메시지를 보여줍니다.
Braiam

0

모든 프로세스를 자동화하기 위해 debconf 데이터베이스를 사용해야한다고 생각합니다. 이것은 직관적이지 않은 프로세스이며, 자신의 deb 파일을 다시 패키지화하는 등 많은 작업이 필요하며이를 "debconf preseeding"이라고 합니다.

데비안 위키 에는이를 수행하는 방법에 대한 몇 가지 예가 있습니다 .

시간과 상황에 따라 하나를 선택하게됩니다 (그 이유는 내가 자세히 설명하지 않았습니다). 유용 해 보이는 것을 가지고 끝까지 붙입니다.

문제가 발생하면 무엇을하려고하는지, 어떻게 할 계획인지 자세하게 설명하십시오.


0

@ lorin-hochstein의 사소한 권한을 성공적으로 실행해야하는 iptables-persistent를 비 대화식으로 설치하기위한 @ lorin-hochstein의 Ansible 기반 답변 수정 ( become: yes줄 추가 ) : ## Prevent iptables-persistent pckgs install dialog (debconf-set-selections) - name: prevent the iptables-peristent install dialog become: yes debconf: name=iptables-persistent question={{ item }} vtype=boolean value=true with_items: - iptables-persistent/autosave_v4 - iptables-persistent/autosave_v6 - name: install iptables-persistent apt: name=iptables-persistent


0

Docker 이미지를 빌드하는 경우 :

RUN echo iptables-persistent iptables-persistent/autosave_v4 boolean true | debconf-set-selections \
  && echo iptables-persistent iptables-persistent/autosave_v6 boolean true | debconf-set-selections
RUN apt-get install -y iptables-persistent
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.