100 % 비 대화식 데비안 dist-upgrade


38

을 할 수있는 방법이 apt-get dist-upgrade모든 질문에뿐만 아니라 자동으로 "예"라고 대답하는 것이 데비안에서뿐만 아니라, 팝업 다양한 대화 형 대화 상자를 필요로하는 정교한 충분히 질문에 대한 답변으로 합리적인 기본값을 사용? 업그레이드 할 때 표시되는 키 맵 libc6과 커널 이미지 선택에 대해 생각하고 있습니다 .

목표는 dist-upgrade끔찍하게, 비참 하게 잘못 되지 않는 한, 시간이 크게 뒤처진 기계조차도 원격으로 다소 크게 시작할 수 있고 전혀 보모 할 필요가 없다는 것입니다.

확실히 이것이 가능합니까?

미리 감사드립니다!


Ubuntu에서 (dist-upgrade가 아닌) 업그레이드 만하려는 경우 무인 업그레이드 패키지를 사용해보십시오 .
Jo Liss

답변:


42

DEBIAN_FRONTEND=noninteractivedebconf 프롬프트가 나타나지 않도록 설정 force-confold하고 파일 force-confdef을 추가 하고 /etc/dpkg/dpkg.cfg파일에 추가 하면 완전히 대화식이 아닌 패키지 설치 경험이 있어야합니다. 여전히 정보를 요구하는 모든 패키지에는 릴리스에 치명적인 버그가 있습니다 (자동화 중독자 데비안 개발자 모두에게 말합니다 ).


이것은 나를 위해 작동하지 않았습니다. apt-listchanges에 의해 개설되었습니다 less.
마그네틱

@ magnetar : apt가 아닌 apt-listchanges의 문제입니다. apt-listchanges를 제거하거나 적절하게 구성하십시오.
울림

1
시험해보십시오 : env APT_LISTCHANGES_FRONTEND = 아직 apt-get dist-upgrade -u -y
H.-Dirk Schmitt

21

Florian Lohoff wo 블이 제안한 것을 단일 명령으로 얻는 방법을 게시 했습니다.

DEBIAN_FRONTEND=noninteractive \
apt-get \
-o Dpkg::Options::="--force-confnew" \
--force-yes \
-fuy \
dist-upgrade

물론 dpkg 매뉴얼 페이지 에서 -o Dpkg::Options::="--force-confnew --force-confdef"검색 할 수도 있습니다 . 나는 어떤 경우에 이것이 변화를 가져올 지 확신하지 못한다. 바닐라 이미지를 최신 상태로 유지하려면 개인적으로 비 대화식 업그레이드가 필요합니다 .--force-confdef


W: --force-yes is deprecated, use one of the options starting with --allow instead.
Alex

3

위의 womble의 대답은 일반적으로 좋지만 나에게는 효과가 없었으며 100 % 무인 상태가 되려면 추가 연구를해야했습니다. 나는 미래 방문자들을 위해 더 간단하게 만들기 위해 결과를 간결하게 공유 할 것이라고 생각했다.

다음은 데비안 8 릴리스 노트 업그레이드 권장 사항 (대부분)에 따라 실행되는 플래그 및 환경 변수에 따라 실행되는 스크립트입니다. ( echos는 디버깅을위한 것이며 제거 할 수 있습니다-스크립트가 붙어 있으면 어디에서나 알 수 있도록 유지하는 것이 좋습니다)

#!/bin/bash

apt-get remove apt-listchanges --assume-yes --force-yes &&

#using export is important since some of the commands in the script will fire in a subshell
export DEBIAN_FRONTEND=noninteractive &&
export APT_LISTCHANGES_FRONTEND=none &&

#lib6c was an issue for me as it ignored the DEBIAN_FRONTEND environment variable and fired a prompt anyway. This should fix it
echo 'libc6 libraries/restart-without-asking boolean true' | debconf-set-selections &&

echo "executing wheezy to jessie" &&
find /etc/apt -name "*.list" | xargs sed -i '/^deb/s/wheezy/jessie/g' &&

echo "executing autoremove" &&
apt-get -fuy --force-yes autoremove &&

echo "executing clean" &&
apt-get --force-yes clean &&

echo "executing update" &&
apt-get update &&

echo "executing upgrade" &&
apt-get --force-yes -o Dpkg::Options::="--force-confold" --force-yes -o Dpkg::Options::="--force-confdef" -fuy upgrade &&

echo "executing dist-upgrade" &&
apt-get --force-yes -o Dpkg::Options::="--force-confold" --force-yes -o Dpkg::Options::="--force-confdef" -fuy dist-upgrade

1
참고 : "--force-yes Force yes;이 옵션은 잠재적으로 유해한 작업을 수행 할 경우 메시지를 표시하지 않고 계속 사용할 수있는 위험한 옵션입니다. 매우 특별한 상황을 제외하고는 사용해서는 안됩니다. force-yes를 사용하면 잠재적으로 파괴 될 수 있습니다 구성 항목 : APT :: Get :: force-yes. 더 이상 사용되지 않으며 1.1에서 --allow-downgrades, --allow-remove-essential, --allow-change-held-packages로 대체되었습니다. "
Alex

1

> = 아파트 1.1

당신이 1.1 이상 아파트 사용하는 경우, --force-yes사용되지 않습니다 당신이 시작하는 옵션을 사용했습니다, 그래서 --allow예를 들어, 대신 --allow-downgrades, --allow-remove-essential, --allow-change-held-packages.

따라서 명령은 다음과 같습니다.

DEBIAN_FRONTEND=noninteractive \
  apt-get \
  -o Dpkg::Options::=--force-confold \
  -o Dpkg::Options::=--force-confdef \
  -y --allow-downgrades --allow-remove-essential --allow-change-held-packages \
  dist-upgrade

참고 : 사용 --force-confold된 유지하고, --force-confnew새로운 CONFIGS을 유지.

출처 : CFE-2360 : apt_get 패키지 모듈 버전을 인식하십시오 .

관련 :


-4

로부터 apt-get(8)매뉴얼 페이지

   -y, --yes, --assume-yes
       Automatic yes to prompts; assume "yes" as answer to all prompts
       run non-interactively. If an undesirable situation, such as
       changing a held package, trying to install a unauthenticated
       package or removing an essential package occurs then apt-get will
       abort. Configuration Item: APT::Get::Assume-Yes.

참고로 -y옵션도 작동 yum(8)합니다.


5
나는 그것에 대해 알고 있습니다. 이 플래그를 사용하고 기존 구성 등을 덮어 쓰는 등의 표준 APT Y / N 질문에 '예'로 성공적으로 대답합니다. 내가 언급 한 질문이 아닙니다. apt-get -y dist-upgrade를 수행해도 여전히 키 티켓 변경, 키 맵 변경, libc6 관련 서비스 다시 시작 등과 같은 큰 티켓 항목을 고려할 수있는 몇 가지 '대화 상자'프롬프트가 표시됩니다. 이것도 끄십시오.
Alex Balashov
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.