RPM으로 패키징하여 CentOS 7에 설치한 애플리케이션이 있습니다. RPM을 설치할 때 일부 컴파일된 바이너리와 일부 Python 모듈 및 해당 종속성을 설치하고 싶습니다.
내 Python 모듈 에는 CentOS에서 제공하는 Python 버전 보다 최신 버전이 필요하므로 /usr/local/lib/python2.7/site-packages
./usr/lib
/usr/local/lib
pip
내 애플리케이션을 다음과 같이 패키징하는 방법이 있습니까?
- RPM에서 애플리케이션을 설치할 수 있습니다.
/usr/local/lib
내 Python 모듈은 애플리케이션을 설치할 때 설치됩니다.- 모든 Python 종속성도 설치됩니다.
- 나는 Python 종속성의 RPM 패키지를 유지하는 것을 피합니다.
이런 것에 대한 합의가 있나요? 아니면 몇 가지 예가 있나요? 직접적으로 관련된 내용은 보이지 않습니다Fedora의 Python 패키징 문서.
제가 고려한 옵션은 다음과 같습니다.
내 애플리케이션, Python 모듈 및 모든 Python 종속 항목을 하나의 RPM으로 묶습니다.
전체 애플리케이션을 새 버전으로 업그레이드하지 않으면 클라이언트 시스템의 개별 종속성을 업데이트할 수 없기 때문에 이 옵션이 마음에 들지 않습니다.
내 애플리케이션, Python 모듈 및 타사 종속성에 대해 별도의 RPM을 만듭니다.
종속성 트리의 모든 타사 모듈에 대해 RPM을 유지해야 하기 때문에 이 옵션이 마음에 들지 않습니다.
pip
내 RPM에서 호출되었습니다.pip
RPM에는 변경 사항을 추적할 방법이 없고 RPM을 제거할 때 타사 Python 모듈을 안전하게 제거할 수 있는지 확실하지 않기 때문에 이 옵션이 마음에 들지 않습니다 .
답변1
소프트웨어 컬렉션을 사용하면 이전 시스템에서 새 버전의 모듈을 보유하거나 새 시스템에서 이전 모듈을 보유할 수 있습니다. 바라보다: http://www.softwarecollection.org/