자동 또는 무인 릴리스 업그레이드를 수행 할 수 있습니까?


31

프롬프트에 반응하지 않고 새로운 Ubuntu 버전으로 업그레이드하려면 어떻게합니까?

지금 12.04에 있으며 12.10을 설치하고 싶습니다. 업데이트를 시작할 때 일반적으로 항목을 다운로드 한 다음 질문을하고, 약간을 설치하고, 질문을하는 등의 작업을합니다. 밤새도록두고 때로는 업데이트가 거의 진행되지 않는 것으로 나타났습니다. 방금 프로세스를 시작하고 몇 시간 후에 작업을 마치고 싶습니다. / etc 등의 구성 파일을 자동으로 업데이트하면 괜찮습니다. 무인 업그레이드를 시작하는 방법은 무엇입니까?

답변:


42

다음 명령은 프롬프트없이 새 안정 릴리스로 업그레이드합니다.

do-release-upgrade -f DistUpgradeViewNonInteractive

다음 명령은 프롬프트없이 현재 개발 릴리스로 업그레이드합니다.

do-release-upgrade -d -f DistUpgradeViewNonInteractive

테스트하지는 않았지만 질문이 발생할 때 기본 조치를 수행하는 것 같습니다. 너무 오래 걸리면 스크립트 시간이 초과됩니다.

dpkg-reconfigure특정 패키지의 구성이 마음 에 들지 않으면 나중에 사용해야 할 수도 있지만 대부분은 괜찮습니다.

출처 : http://awaseroot.wordpress.com/2012/04/29/ubuntu-release-upgrade-fully-automatic-non-interactive-upgrade/ . 링크에는 이것을 수행하는 다른 방법들도 있습니다.


링크에서 컨텐츠를 참조하지 말고 관련 정보를 포함 시키십시오. 사이트에 접근 할 수없는 경우 정보가 유실되지 않도록하십시오.
k0pernikus

나는 이것을했고 모든 것이 작동하는 것처럼 보였지만 재부팅 후에는 grub 오류 만 얻었 으므로이 무인 업그레이드 후에 더 많은 grub 구성을 추가 해야하는 것처럼 보입니다. 아마도 sudo apt-get install grub-emu?
rubo77

6
Trusty => Xenial에서는 작동하지 않습니다. 여전히 수정 된 / etc 파일에 대한 질문이 있습니다.
Willem

sudo로 실행하면 안됩니까?
Cerin

수정 / etc 파일에 대한 질문에 대해서는, 멋진 솔루션은 여기에 있습니다 : awaseroot.wordpress.com/2012/04/29/... . 'echo "y \ n \ ny \ ny \ ny \ n"| '출시-업그레이드 앞. 질문에 대한 답변을 제공합니다. / etc에 수정 된 파일이 많은 경우 많은 답변을 추가하십시오.
nmgeek

6

이전 답변을 확장하기 위해 ssh를 통해 암호가없는 업그레이드를 사용하여 상자를 최신 버전으로 업그레이드하는 방법으로 원격에서 허용되는 답변과 동일한 작업을 수행하는 방법이 있습니다. 내 블로그 항목에서 복사되었습니다 .

이 모든 단계는 패키지 저장소가 작동한다고 가정합니다. apt-get 업데이트를 실행하면 오래된 버전으로 인해 404가 많이 표시되지 않습니다. 먼저 수정해야하므로이 답변참조하십시오 .

0. 모든 기존 패키지 업데이트

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

1. 비밀번호없는 실행 설정

암호를 입력하지 않고 sudo를 사용하여 do-release-upgrade를 실행할 수있는 사용자 목록에 자신을 추가하십시오.

sudo visudo -f /etc/sudoers.d/do-release-upgrade.

물론 다음 줄을 추가하여 my-username을 자신의 이름으로 대체하십시오.

my-username ALL=NOPASSWD: /usr/bin/do-release-upgrade

2. 증분 업그레이드 시작

로그 아웃하고 컴퓨터에서 다음 명령을 실행하십시오. 입력하라는 메시지를 표시하지 않고 (모든 기본 응답을 수락 함) 업그레이드하지 않고 컴퓨터가 재부팅 될 때까지 기다렸다가 다시 업그레이드를 시도합니다. 최신 버전으로 업그레이드 될 때까지 실행됩니다.

while true; do 
    ssh my-user@my-server sudo do-release-upgrade -f DistUpgradeViewNonInteractive;
    sleep 120; 
done

3. 구성 파일을 이전 상태로 수정

그런 다음 업그레이드 프로세스에서 기본 구성을 제 위치에 놓았으므로 백업 된 구성 파일을 이전 위치로 이동해야합니다.

기본 답변에 만족하지 않습니까?

이 사람은 각 프롬프트에 대한 답변을 미리 준비 할 수있는 방법이 있지만 단점은 몇 개의 프롬프트가 있는지 알아야한다는 것입니다.


5

Thomas Ward가 자신의 답변에서 진술 한 내용을 확인하고 수락 된 답변과 모순되기 위해 do-release-upgrade -d -f DistUpgradeViewNonInteractive작동하지 않습니다.

실제로 첫 번째 프롬프트에서 16.04 ~ 18.04 테스트 파티션이 손상되어 복제해야했습니다. 스크립트가 중지되는 위치입니다.

Setting up mount (2.31.1-0.4ubuntu3) ...
Setting up systemd (237-3ubuntu10) ...
Installing new version of config file /etc/pam.d/systemd-user ...
Installing new version of config file /etc/systemd/journald.conf ...

Configuration file '/etc/systemd/logind.conf'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   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     : start a shell to examine the situation
 The default action is to keep your current version.
*** logind.conf (Y/I/N/O/D/Z) [default=N] ? y

Y
CRASHED... NOTHING HAPPENS NOW... WILL KILL AND RESTART WITHOUT -f OPTION...

입력 억제제로 인해 스크립트 종료 후 재부팅이나 종료가 작동하지 않습니다. 콜드 셧다운을 수행해야합니다 (전원 버튼을 약 10 초간 누름).

16.04 복제본이 아닌 실제 16.04 파티션이 아니라는 점에 감사드립니다.


인생을 더욱 흥미롭게하기 위해 NVMe SSD에 새로운 898MB 파티션이 추가되었고 일반 파티션이 바뀌 었습니다.

$ lsdrv
NAME        FSTYPE  LABEL                  MOUNTPOINT          SIZE MODEL

nvme0n1                                                        477G Samsung SSD 960 PRO 512G
├─nvme0n1p5 ntfs                                               858M 
├─nvme0n1p3                                                     16M 
├─nvme0n1p1 ntfs                                               450M 
├─nvme0n1p8 ntfs    Shared_WSL+Linux       /mnt/e                9G 
├─nvme0n1p6 ext4    Ubuntu18.04                               23.7G 
├─nvme0n1p4 ntfs    NVMe_Win10             /mnt/c            390.4G 
├─nvme0n1p2 vfat                           /boot/efi            99M 
├─nvme0n1p9 swap    Linux Swap             [SWAP]              7.9G 
└─nvme0n1p7 ext4    NVMe_Ubuntu_16.0       /                  44.6G 
  • nvme0n1p5 내 우분투 16.04 파티션이 있던 곳 이었지만 지금은 켜져 있습니다. nvme0n1p7
  • nvme0n1p8 내 18.04 테스트 파티션이 있던 곳 이었지만 지금은 켜져 있습니다. nvme0n1p8

참고 : 오늘 오후에도 Windows 10을 빌드 1709에서 빌드 1803으로 업그레이드 nvme0n1p5하여 ntfs형식으로 새 898MB 파티션을 만들 수있었습니다 .


그러나 그것은 크므로 Launchpad에서보고해야합니다. 이전에 여러 배포 업그레이드를 통해 비 대화식 방식을 사용했습니다.
oligofren

같은 날 같은 상자에 우분투와 창을 모두 업그레이드 했습니까? 당신은 고통을 누려야합니다
JDS

@JDS Windows가 중단되었습니다. 1700 업그레이드 누락, 모든 종류의 깨진 종속성 Python 2 vs Python 3. Windows 스토어 sigh 에서 우분투 16.04를 지우고 다시 설치해야합니다 .
WinEunuuchs2Unix

2

터미널을 통해을 사용하여이 작업을 수행 할 수 있습니다 sudo apt-get -y upgrade. 모든 프롬프트에 "예"라고 대답합니다. 그러나 자동으로 실행되지 않으므로 실행해야합니다. 그것은 해야 작동합니다. AFAIK는 GUI 업데이트 관리자를 사용하여 소프트웨어에 대한 무인 업그레이드를 수행 할 수있는 방법 이 없습니다 ( 릴리스 업그레이드와 동일하지 않습니다! )

다른 Ubuntu 버전 (일명 릴리스 업그레이드 및 일반적으로 Ubuntu 버전과 관련된 릴리스 라인의 다음 릴리스)으로 업그레이드 하려는 경우 수동으로 활성화 해야 합니다. sudo do-release-upgrade작동 할 수 있습니다. 그러나 과거 프롬프트를 건너 뛸 수있는 방법이 없습니다. 이러한 프롬프트가 표시 될 때 업그레이드를 시작하는 이유는 프롬프트가 표시됩니다.


1
"이전 프롬프트를 건너 뛸 수있는 방법이 없습니다." DistUpgradeViewNonInteractive 플래그는 어떻습니까? 프롬프트를 건너 뜁니다.
oligofren

1
-f DistUpgradeViewNonInteractive플래그가 첫 번째 (Y/I/N/O/D/Z)프롬프트 에서 스크립트를 잠그기 때문에 @oligofren Thomas가 옳 습니다 . 내가 방금 게시 한 내 답변을 참조하십시오.
WinEunuuchs2Unix

-4

-y옵션을 추가 apt-get하지만 y모든 쿼리에 응답한다는 것을 알고 있어야 합니다.


1
apt-get이 아닌 그래픽 업데이트 관리자를 사용하고 있습니다. 콘솔에서 업데이트를 수행 할 수는 있었지만 'apt-get dist-upgrade'가 몇 년 동안 (릴리스 간 업그레이드를 위해) 작동하지 않는다고 들었으므로 명령은 'apt-get'이 아닙니다.
jdm

@jdm apt-get dist-upgrade은 잘 작동합니다. 더 이상 어디에서 작동하지 않습니까?
세스

3
@Seth apt-get dist-upgrade는 현재 운영 체제에서 자체적으로 릴리스 업그레이드를 수행하지 않았습니다. 참조하십시오 man apt-get. upgrade패키지를 새로 설치하거나 제거하지 않고 업그레이드 할 수있는 패키지 만 업그레이드합니다. dist-upgrade패키지가 제거되거나 추가 된 경우에도 패키지를 업그레이드합니다. 이것은 주로 일반 업데이트를 수행하는 데 유용합니다. 예를 들어 upgrade커널을 업그레이드하지 않습니다.
Eliah Kagan 2013

2
sources.list다음 릴리스의 아카이브를 가리 키도록 변경 한 다음 실행 apt-get dist-upgrade되면 성공하면 릴리스 업그레이드를 수행합니다. 이것은 데비안에서 지원되지만 aptitude dist-upgrade고급 의존성 해결 때문에 대신 사용 하는 것이 좋습니다 . 우분투에서는 이와 같은 것이 전혀 지원되지 않지만 성공할 수도 있습니다. 대신 명령 행에서 이후 릴리스로 업그레이드하는 do-release-upgrade데 사용됩니다. 이 유틸리티는 -y플래그를 사용하지 않으므로이 답변은 새 릴리스로 업그레이드하는 상황에는 적용되지 않습니다 .
Eliah Kagan 2013

허, 흥미 롭군 그때 데비안에 대해 읽었을 것입니다.
세스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.