Ubuntu / 특정 패키지만 업그레이드 하기, 보안 업데이트만 업그레이드 하기
Ubuntu에서 설치된 특정 패키지만 갱신하려면 apt install --only-upgrade 패키지명을 사용합니다. 보안 업데이트를 선택하려면 unattended-upgrades의 허용 출처를 확인하고 모의 실행한 뒤 적용하세요. 선택한 패키지의 의존성이나 설정에 따라 다른 패키지가 함께 변경될 수 있습니다.
업데이트 전 확인할 사항
apt update는 저장소에서 패키지 목록을 새로 가져오며 설치된 패키지를 업그레이드하지 않습니다. 설치와 업그레이드는 별도의 작업입니다. 실제 적용 전에 백업과 복구 방법, 디스크 공간, 서비스 중단 가능성을 확인하고 운영 서버에서는 작업 시간을 정하세요.
sudo apt update
apt list --upgradable
첫 명령이 실패했다면 저장소와 네트워크 오류를 해결한 뒤 목록을 다시 갱신하세요. 두 번째 명령은 현재 업그레이드 가능한 패키지를 보여 주지만, 목록의 모든 항목이 보안 업데이트라는 뜻은 아닙니다.
특정 패키지 업그레이드하기
아래는 이미 설치된 curl을 예로 든 명령입니다. 실제로 갱신할 설치된 패키지 이름으로 바꾸세요. 먼저 후보 버전과 출처, APT의 예상 변경 사항을 확인합니다.
apt-cache policy curl
sudo apt-get -s install --only-upgrade curl
-s는 설치를 수행하지 않는 모의 실행입니다. --only-upgrade는 지정한 패키지가 설치되어 있지 않으면 새로 설치하지 않습니다. 다만 설치된 대상의 업그레이드에 필요한 다른 패키지의 설치·업그레이드 또는 제거가 제안될 수 있으므로 전체 결과를 확인하세요. 보류된 패키지와 의존성, 저장소 우선순위에 따라 원하는 버전이 선택되지 않을 수도 있습니다.
예상 변경이 적절하면 다음 명령으로 적용합니다. APT가 제시하는 설치·업그레이드·제거 목록과 용량을 다시 확인하고, 예상과 다르면 확인 단계에서 중단하세요.
sudo apt install --only-upgrade curl
완료 후 apt-cache policy curl로 설치 버전을 확인하고 해당 서비스나 애플리케이션이 정상 동작하는지 살펴봅니다. 패키지에 따라 서비스 재시작 또는 시스템 재부팅이 필요할 수 있습니다.
보안 업데이트의 허용 출처 확인하기
unattended-upgrade는 이름과 달리 보안 업데이트만 항상 고정해서 선택하지 않습니다. 설정된 허용 출처에 따라 다른 업데이트도 설치할 수 있습니다. 먼저 패키지 설치 여부와 현재 APT 설정을 확인하세요.
dpkg-query -W unattended-upgrades
apt-config dump | grep -E 'Unattended-Upgrade::(Allowed-Origins|Origins-Pattern|Automatic-Reboot|Remove-)'
apt-cache policy
설치되지 않았다면 sudo apt install unattended-upgrades로 설치할 수 있습니다. 설치 후 자동 업데이트 일정이 활성화될 수 있으므로 서버 정책과 기존 /etc/apt/apt.conf.d/20auto-upgrades 설정을 확인하세요. apt-cache policy의 저장소 정보와 허용 목록을 비교하고, 자동 재부팅이나 불필요한 패키지 제거 설정도 확인합니다. 목록에는 여러 설정 파일의 값이 합쳐질 수 있습니다.
-updates, 외부 저장소 등 보안 범위를 벗어나는 출처가 허용되어 있다면 아래 명령을 실행하기 전에 조직 정책에 맞게 설정을 조정해야 합니다. Ubuntu Pro의 ESM 보안 저장소와 외부 저장소는 별도의 출처일 수 있으므로, 필요한 보안 패치가 누락되지 않도록 지원 범위와 출처를 확인하세요. Ubuntu 자동 업데이트 문서에서 기본 출처와 재부팅 설정을 확인할 수 있습니다.
일반 Ubuntu 보안 저장소만 허용하는 예
다음은 일반 Ubuntu 보안 저장소만 허용하는 설정 예입니다. ESM과 외부 저장소는 포함하지 않으므로 해당 업데이트가 필요한 환경에 그대로 적용하지 마세요. 자동 업데이트에도 영향을 주는 지속 설정이므로 기존 정책을 기록하고, 다른 설정 관리 도구와 충돌하지 않는지 확인한 후에만 진행합니다.
/etc/apt/apt.conf.d/에 기존 파일을 덮어쓰지 않는 이름으로 99local-security-only 파일을 만들고 다음 내용을 저장합니다. APT의 목록은 단순히 새 항목을 추가하면 기존 항목도 남으므로 두 목록을 먼저 비웁니다. #clear는 셸 프롬프트가 아니라 APT 설정 지시문입니다.
#clear Unattended-Upgrade::Allowed-Origins;
#clear Unattended-Upgrade::Origins-Pattern;
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
다른 파일이 나중에 출처를 다시 추가할 수 있으므로 저장 후 위의 apt-config dump와 모의 실행 결과에서 실제 허용 출처를 확인하세요. 해당 보안 저장소가 활성화되어 있어야 하며, 필요한 의존성을 허용된 출처에서 구할 수 없다면 일부 패키지가 보류될 수 있습니다. 이 설정을 되돌리려면 이 작업으로 만든 파일만 제거하고 다시 설정과 모의 실행 결과를 확인합니다.
모의 실행과 적용 후 확인
다음 명령은 실제로 업데이트를 설치하지 않고 허용 출처와 처리할 패키지를 확인하는 데 사용합니다. 출력과 로그에서 예상하지 않은 출처, 보류 항목 및 오류를 살펴보세요.
sudo unattended-upgrade --dry-run --debug
모의 실행은 실제 작업 시점의 결과를 보장하지 않습니다. 출처와 대상, 자동 재부팅·제거 정책을 검토하고 변경을 감당할 수 있는 작업 시간이라면 다음 명령을 실행합니다.
sudo unattended-upgrade --verbose
완료 후 /var/log/unattended-upgrades/의 로그와 서비스 상태를 확인하고, 필요한 경우 계획된 시간에 재부팅하세요. 기존 글처럼 sources.list에서 저장소를 일괄 주석 처리하는 방법은 다른 저장소 파일과 의존성을 놓칠 수 있어 사용하지 않습니다. 옵션과 로그 경로는 Ubuntu unattended-upgrade 매뉴얼을 참고하세요.




