저는 최근 Ubuntu 20.04 기반 배포판에서 openSUSE Leap 15.4로 전환했습니다. 저는 SUSE의 패키징 결정 중 일부에 상대적으로 만족하지만 일부는 혼란스럽습니다.
Python 개발자로서 저는 Ubuntu에서 Python 3.8을 사용해 왔으며 최신 배포판임에도 불구하고 openSUSE Leap 15.4가 이미 EOL된 Python 3.6과 함께 제공된다는 사실에 놀랐습니다(참조).일정).
3.6을 기본 시스템 Python으로 사용하면 몇 가지 심각한 문제가 발생합니다.
- Python의 EOL 버전을 사용하면 잠재적인 보안 위험이 있습니다. SUSE가 배포한 버전의 개발을 인수하더라도 마치 업스트림에서 지원이 여전히 제공되는 것처럼 유지 관리가 적극적이고 잘 감독되지는 않을 것이라고 생각합니다.
- Python 3.6이 중단된 것을 고려하면 많은 Python 패키지가 더 이상 이를 지원하지 않습니다. 따라서 영향을 받는 개발자는 백포트 저장소를 통해 3.10과 같은 최신 Python 버전을 설치해야 합니다.
- 그러나 여기에는 많은 단점이 있습니다. 많은 시스템 제공 패키지는 단순히 하위 프로세스를 통해 찾
#!/usr/bin/python3
거나 호출되므로 에python3
안전하게 다시 연결할 수 없습니다 .python3
python3.10
- 최신 Python에는 훨씬 더 작은 저장소 패키지 세트가 있으므로 시스템과 덜 통합됩니다.
- 예를 들어 LibreOffice의 Python 바인딩을 사용하려는 경우 Python 3.6에 연결되어 있으므로 불가능합니다. .NET 파일에 종속성도 포함해야 하는 경우
Python >3.6
. - 마찬가지로 시스템에서 제공하는 PySide2/PyQt5 패키지를 사용할 수 없으므로 소스에서 빌드하려는 경우가 아니면 시스템의 Qt에 동적으로 연결하는 대신 Qt의 다른 복사본을 설치해야 합니다. 이는 보안, 디스크 공간 및 애플리케이션 스타일 측면에서 해롭습니다(Qt의 타사 설치에는 시스템 테마에 대한 적절한 액세스 권한이 없기 때문입니다).
- 일반적으로 PyPI를 통해 바이너리 확장이 포함된 패키지를 설치하는 것은 우아하지 않습니다. 이러한 패키지는 시스템 라이브러리에 잘 연결되기 때문입니다.
- 예를 들어 LibreOffice의 Python 바인딩을 사용하려는 경우 Python 3.6에 연결되어 있으므로 불가능합니다. .NET 파일에 종속성도 포함해야 하는 경우
이 모든 것이 SUSE가 Python 3.6을 출시하기로 결정한 이유가 무엇인지 궁금합니다. 이 결정의 근거는 무엇이었나요?
이제 어떻게 해야 하나요? 소스에서 필요한 모든 패키지를 설치해 보시겠습니까? 아니면 최후의 수단으로 할당을 다시 변경하시겠습니까?
답변1
15.4는 네 번째 업데이트이며 SLES 소스를 사용합니다. 따라서 이것은 변경을 좋아하지 않는 회사를 위한 것이므로 원래 릴리스된 버전을 고수하고 릴리스 수정 사항만 고수하는 경향이 있습니다.
SLES 15는 이전 Python 버전과 함께 출시되었으므로 가능하다면 SLES 16이 출시될 때까지 해당 버전을 고수할 것입니다. 버전 15.5가 곧 출시될 것으로 보이는 이후 2년은 더 걸리지 않을 수 있습니다.
15.4는 Python 3.9 및 3.10과 함께 제공되지만 필요한 하위 패키지 중 일부가 없을 수도 있습니다.
이는 비즈니스 결정입니다.