현재 패키지 시스템(RPM 또는 Deb)에는 일반적으로 각 라이브러리 및 프로그램의 주요 버전이 하나만 설치되어 있습니다. 모든 라이브러리는 다음을 사용해야 합니다.의미론적 버전 관리, 따라서 새로운 마이너 버전을 손상시키지 않고 쉽게 설치할 수 있습니다. 보안 문제가 있는 경우 라이브러리가 수정되며 관련 코드는 모두 패치의 혜택을 직접 누릴 수 있습니다.
이제 Flatpak을 사용하면 사람들이 모든 것을 묶는다는 것을 알았습니다. 아마도 업스트림 라이브러리를 약간 수정했기 때문일 것입니다. 보안 업데이트가 있는 경우 모든 업스트림 개발자는 라이브러리를 업데이트해야 합니다. "런타임"이라는 개념이 있더라도 애플리케이션은 여전히 오래된 버전의 라이브러리에 의존할 수 있습니다.
나에게 있어 종속성 지옥은 단순히 API 안정성 규율이 부족하기 때문에 발생합니다. 이러한 라이브러리가 API의 안정성을 적절하게 유지하거나 새로운 주요 버전을 출시한다면 모두 좋습니다. Ruby와 Python 세계에서는 정확한 버전 번호가 포함된 요구 사항 목록을 자주 봅니다. 이 모든 것은 가상 환경에 설치되며 일단 소프트웨어가 배포되면 업데이트되지 않습니다.
Flatpak은 보안 문제가 있는 라이브러리의 편의 사본 확산을 어떻게 방지합니까?
답변1
최소한 OpenSSL과 같은 기본 라이브러리의 경우 다음 개념을 가지고 있습니다.영업시간. 예를 들어 GNOME, KDE 등이 있습니다. Flatpak 자체가 이전 버전의 런타임으로 빌드된 경우에도 업그레이드가 가능합니다.
그러나 이 외에도 Flatpak의 다른 라이브러리에도 유지 관리가 필요합니다. 분명히 애플리케이션 작성자는 이를 유지해야 합니다. 그렇지 않으면 기본 애플리케이션도 이를 유지하지 않을 수 있으므로 기본 애플리케이션도 이 문제로 어려움을 겪을 수 있습니다.