배포를 담당하는 라이브러리 패키지가 있습니다. 얼마 전에, 빌드 시스템은 가정에서 구운 Makefile
에서 GNU Autotools로 전환되었습니다. 따라서 libtool
을 사용하여 여러 설치된 버전의 라이브러리를 쉽게 관리 할 수 있습니다. 배포를 위해 RPM으로 전환 한 후, 업그레이드 할 때 이전 버전을 완전히 제거하지 않도록 spec 파일을 "의사 (doctor)"할 수있는 방법을 알고 싶습니다. 물론라이브러리 업그레이드를위한 spec 파일의 올바른 정의
[[email protected] libtest]$ ls /usr/lib64/libaby*
/usr/lib64/libabyss.a /usr/lib64/libabyss.so /usr/lib64/libabyss.so.0.0.1
/usr/lib64/libabyss.la /usr/lib64/libabyss.so.0
하는 libtool- 같이
예를 들어, 더미 라이브러리 프로젝트의 버전 1.0.0을 설치 한 후 나는 sudo yum localupdate ....
후 나는 다음이, 그리고
[[email protected] libtest]$ ls /usr/lib64/libaby*
/usr/lib64/libabyss.a /usr/lib64/libabyss.so /usr/lib64/libabyss.so.0.0.0
/usr/lib64/libabyss.la /usr/lib64/libabyss.so.0
이 제작 된 라이브러리의 유일한 "실제"파일은 libabyss.a, libabyss.la and libabyss.so.0.0.1
입니다. libabyss.so.0.0.1
이 설치된 후 libabyss.so.0.0.0
이 유지되도록하려면 spec 파일에서 수행해야하는 작업은 무엇입니까? 심볼릭 링크가 이에 따라 처리됩니다.
오른쪽, 라이브러리의 _SONAME_에서 _current_ 및 _age_ 매개 변수의 전체 효과가 궁금합니다. RPM의 실제 릴리즈를 빌드 할 때 * -release * 플래그를 사용할 계획입니다. 총 6 개의 라이브러리가 설치되어 있습니다. 그 중 2 개는 -release 플래그를 사용합니다. 다른 것들은 자주 변하지 않습니다. 예, 저는 그들이 분리되어야한다는 것을 알고 있지만, 현재는 그렇지 않습니다. –