Yum은 런타임에 바이너리를 안전하게 업그레이드할 수 있는 방식(또는 기본 시스템)으로 설계되었나요? 예를 들어, MySQL 5.5가 있고 yum -y install mysql56-server
MySQL 5.6으로 업그레이드를 실행하면 일반적으로 불평하지 않습니다. 이것이 가능하다는 뜻인가요? 필요한 라이브러리나 바이너리가 이미 프로세스의 메모리 컨텍스트에 로드되어 있습니까?
답변1
업그레이드 패키지는 현재 콘텐츠를 변경합니다디스크, 그러나 내용은 변경되지 않습니다.기억 속에이미. 새 버전의 바이너리를 로드하려면 서비스를 다시 시작해야 합니다.
이것이 가능한지 여부는 응용 프로그램에 따라 다릅니다. 아직 로드되지 않은 라이브러리를 어느 시점에 동적으로 로드하려고 시도합니까? 그 도서관이 아직도 존재할까요? 도서관이 어떤 변화를 겪고 기능을 중단하게 될까요?
mysql과 같은 관심 있는 사항이라면 안전하지 않을 이유가 전혀 없으며 패키지를 업데이트하기 전에 중지해야 합니다. 업데이트는 다시 시작될 때까지 실행 중인 프로세스에 영향을 주지 않으므로 서비스를 종료할 필요가 없습니다.
답변2
일반적으로 업데이트는 새 버전의 파일을 삭제하고 다시 설치하는 방식으로 작동합니다. 표준 UNIX/Linux에 따르면 삭제된 파일은 해당 파일의 열려 있는 모든 인스턴스가 닫힐 때까지 반드시 삭제되지는 않습니다. 업데이트되는 바이너리를 실행하는 것(공유 라이브러리 참고)은 영향을 받지 않아야 합니다.
그렇긴 하지만...무결성이 전혀 걱정된다면 업그레이드하기 전에 관련 중요한 작업과 절차를 중단할 것입니다.
정말로 대비하고 싶다면 무슨 일이 있어도 백업을 준비하십시오.