PHP 스크립트에서 "apt-get -y Upgrade"가 예상대로 작동하도록 하려면 어떻게 해야 합니까?

PHP 스크립트에서 "apt-get -y Upgrade"가 예상대로 작동하도록 하려면 어떻게 해야 합니까?

예, 무인 업그레이드에 대해 알고 있지만 해당 패키지의 제한 사항이 마음에 들지 않습니다. 다음 호출을 수행하는 PHP 스크립트가 있습니다.

...
system("/usr/bin/apt-get update");
system("/usr/bin/apt-get -y upgrade 2>&1 > /tmp/apt_get.txt");
system("/usr/bin/apt-get autoremove");
system("/usr/bin/apt-get autoclean");
...

스크립트는 cron을 통해 일정에 따라 자동으로 실행되도록 설정됩니다. 모든 명령을 루트로 올바르게 실행하는 것 같습니다. 그러나 /tmp/apt_get.txt 출력에 표시된 것처럼 "apt-get -y Upgrade"는 실제로 업그레이드를 수행하지 않습니다.

Reading package lists...
Building dependency tree...
Reading state information...
The following packages will be upgraded:
  iproute
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 444 kB of archives.
After this operation, 1,024 B of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main iproute amd64 20111117-1ubuntu2.3 [444 kB] Fetched 444 kB in 1s (374 kB/s)

"apt-get 업그레이드"를 수동으로 실행하면 패키지가 다운로드되었지만 설치되지 않은 것으로 표시됩니다.

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
  iproute
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/444 kB of archives.
After this operation, 1,024 B of additional disk space will be used.
Do you want to continue [Y/n]? n
Abort.

따라서 apt-get은 패키지를 성공적으로 다운로드했지만 실제로 업그레이드를 수행하지는 않았습니다. 이 스크립트가 예상대로 작동하려면 무엇을 변경해야 합니까? "apt-get -y update" 자체의 버그처럼 보입니다. (여기서 Ubuntu 12.04.4 LTS를 실행합니다.)

답변1

편집된 프로필을 덮어쓰기/보존/비교할지 여부를 묻는다고 가정합니다. 이 경우 DEBIAN_FRONTEND=noninteractive를 추가해야 합니다.

DEBIAN_FRONTEND=noninteractive apt-get -y upgrade

관련 정보