저는 현재 표준 RPM 파일을 통해 배포되는 RHEL/CentOS용 서버 소프트웨어를 개발 중입니다. 이렇게 된 이유는 사용자가 기본 웹 UI를 통해 액세스할 수 있는 다운로드 가능한 클라이언트 엔진이 포함되어 있기 때문입니다.
이것이 내가 가진 것입니다:
- 다운로드 가능한 에이전트는 여전히 우리 회사에서 관리하는 것이지만 릴리스 주기가 별도로 있습니다.
- 각각의 새로운 RPM 버전은 일반적으로 특정 에이전트 버전과 연결됩니다(대개 더 최신 버전이지만 동일할 수도 있음).
- 사용자가 서버를 업그레이드할 때 동일한 프록시를 계속 사용하려고 할 수 있습니다.
- 에이전트 설치는 현재 RPM과 함께 패키지되어 있으므로 서버가 업그레이드되면 이전 버전의 에이전트가 시스템에서 제거됩니다.
분명히 (4)는 바람직하지 않기 때문에 우리가 원하는 것은 서버 구성 요소가 업그레이드되는 경우에도 설치된 모든 에이전트 버전을 유지하는 것입니다.
한 가지 가능한 해결책은 이름에 에이전트 버전 번호가 있고 기본 RPM이 종속성으로 필요한 자체 RPM에 에이전트를 배치하는 것입니다. 따라서 제품이 설치되면 rpm -qa가 표시됩니다.
<product>-1.0.0
<product>-agent-install-1.0.5-1.0 (might be a better way to format the name)
서버가 업데이트되면 다음이 표시됩니다.
<product>-2.0.0
<product>-agent-install-1.0.5-1.0
<product>-agent-install-1.2.0-1.0
저는 확실히 Linux 전문가가 아니기 때문에 위에서 설명한 전략이 과연 맞는지 궁금합니다.
- 가능한 해결책(즉, 전체 아이디어를 망칠 수 있는 명백한 것을 놓치고 있지 않습니다)
- 허용되는 행위 또는 해킹
더 깨끗한 대안이 있습니까? 예를 들어 에이전트 설치 프로그램을 별도의 디렉터리에 복사하기만 하면 각 서버를 설치할 수 있으며, 다른 디렉터리는 RPM에서 관리하지 않기 때문에 삭제되지 않고 그대로 유지됩니다. 하지만 이것이 더 나은가요?