오늘 저는 Debian Stretch에서 이전 커널을 제거하려고 했습니다.
sudo aptitude purge linux-image-4.9.0-3-amd64
이 프로세스는 대부분의 서버에서 원활하게 작동하고 수년 동안 진행되어 왔지만 이번에는 2개의 서버에서 다음 오류가 발생했습니다.
Failed to substitute package name in title: 10 at /usr/bin/linux-check-removal line 102, < STDIN> line 1.
dpkg: error processing package linux-image-4.9.0-3-amd64 (--remove):
subprocess installed pre-removal script returned error exit status 255
Errors were encountered while processing:
linux-image-4.9.0-3-amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)
사용
sudo dpkg --purge linux-image-4.9.0-3-amd64
비슷한 메시지도 반환됩니다.
이 패키지에 대해 제거/정리 명령을 반복하려고 하면 항상 이 오류가 발생합니다.
어떻게 삭제할 수 있나요?
답변1
/usr/bin/linux-check-removal
해결 방법을 조사하는 동안 이것이 Perl 스크립트라는 것을 알았습니다 man
.
linux-check-removal - 커널을 제거해도 안전한지 확인합니다.
요약.
리눅스 삭제된 버전 확인설명하다.
linux-check-removal은 Linux 커널 패키지의 prerm 유지 관리자 스크립트에서 호출되도록 고안되었습니다.
결국 0(성공)을 반환하도록 스크립트를 수정하고 패키지를 제거한 다음
sudo aptitude purge linux-image-4.9.0-3-amd64
작업이 끝나면 스크립트를 복원합니다.
스크립트 마지막에 적용한 임시 수정 사항은 다음과 같습니다.
# replace check() call with exit with success code
# check(@ARGV);
exit 0;