대부분의 배포판(Debian 제외)에서 새 버전으로 업그레이드할 때 전체 재설치를 권장/요구하는 이유는 무엇입니까?

대부분의 배포판(Debian 제외)에서 새 버전으로 업그레이드할 때 전체 재설치를 권장/요구하는 이유는 무엇입니까?

Linux 생활의 대부분을 Debian을 사용하면서 다른 배포판을 조사해 보았는데 버전 간 원활한 업그레이드를 제공하지 않는 것에 상당히 놀랐습니다. 데비안은 무한히 업그레이드가 가능하며 현재 여러 주요 안정 버전으로 업그레이드했습니다.

나는 Fedora(및 그 파생물), 심지어 Ubuntu 및 그 파생물과 같이 잘 지원되는 배포판에 대해 이야기하고 있습니다. 이는 CentOS와 같은 안정적인 서버 지향 배포판에서도 마찬가지입니다.

데비안의 패키지 관리 시스템과 패키지 업그레이드 스크립트가 다른 배포판에서 제공하는 것보다 훨씬 더 발전했기 때문일까요?

아니면 일반적으로 배포판에 관계없이 주요 버전 업그레이드 시 처음부터 다시 설치하는 것이 더 나은 생각입니까?

답변1

요인들의 조합입니다.

대부분의 배포판은 주요 릴리스를 사용하여 주요 릴리스를 사용하여 주요 변경 사항을 구현합니다. 예를 들어 Fedora 15에는 systemd가 추가되었고 Ubuntu에는 6.10에 upstart가 추가되었습니다. 데비안은 여러 면에서 매우 보수적인 배포판입니다. 크고 파괴적인 변화는 인기가 없습니다.

예를 들어, 이는 새 릴리스의 표준을 충족하기 위해 모든 중요한 패키지를 수정해야 하기 때문에 데비안의 릴리스 주기가 멀리 떨어져 있기 때문에 발생합니다.

데비안의 패키지 관리 기술은 Fedora나 Ubuntu보다 우수하지는 않지만(분명히 Ubuntu와 동일하기 때문에), 데비안은 원활한 업그레이드 시스템을 갖추는 데 문화적으로 중요합니다.

답변2

더 구체적으로 말하면, 업그레이드할 때 많은 배포판에 문제가 있습니다. 예를 들어 Ubuntu는 버전 간에 설치된 패키지 기반을 크게 변경합니다. 기존의 "dist-upgrade"를 수행하면 설치된 패키지가 새 버전으로 업데이트되지만 최종 결과에는 새로운 라인업 변경 사항이 없습니다. 기본 설치의 패키지가 "지원됨" 또는 "지원되지 않음"으로 다운그레이드된 경우에도 해당 패키지는 그대로 유지됩니다. 새 패키지가 현재 기본 설치 상태이면 설치하지 않습니다. 귀하의 버전은 "기술적으로" 업그레이드되었지만 새 버전 환경을 반영하지는 않습니다. 패키지 이름을 완전히 개편한 CentOS5와 CentOS6를 비교해도 마찬가지다.

데비안은 원활한 업그레이드를 우선시하지만 그러한 급격한 변화를 희생합니다. 이것이 데비안이 새로운 기능에 대해 더 느린 이유이며 커뮤니티에서는 이러한 절충안이 허용됩니다. 이전 답변을 반영하기 위해 패키지 관리 기술 자체와는 아무런 관련이 없습니다. 내가 말하려는 것은 계속 우분투를 다시 설치하느라 지쳤다는 것입니다.

답변3

당신이 말하는 것은 온 가족에게 적합하지 않습니다.롤링 릴리스배포.

시스템 유지 관리 소프트웨어의 경우 시스템의 특정 부분만 업그레이드하거나 업그레이드 프로세스 전체에서 구성 일관성을 유지하는 경우 패키지 간 호환성 문제를 해결하는 것이 더 어렵습니다. 다양한 소프트웨어 패키지가 서로 잘 작동하도록 조정해야 합니다.

이것이 가장 간단한 이유입니다(예:동일한 개발 시간 노력에 대해 가장 신뢰할 수 있음) 시스템 업데이트를 제공하기 위한 솔루션은 완전하고 철저한 테스트를 거쳐 완전히 설치된 릴리스를 정기적으로 준비하는 것입니다. Red Hat과 같은 엔터프라이즈 솔루션의 입장은 고객에게 안정적인 시스템을 제공하고 가능한 한 오랫동안 업그레이드 중단으로 인한 어려움을 피해야 한다는 것입니다. (물론 사소한 업그레이드와 버그 수정이 가능해야 하거나 자동으로 가져와야 합니다). 이는 CentOS와 같은 무료 서버 배포의 일반적인 철학이기도 합니다.

시스템 개발자가 최종 사용자에게 버전 간 원활한 업그레이드 경로를 제공하는 것은 큰 과제입니다. 많은 배포판에서는 이를 위해 부족한 시간을 희생하지 않기로 선택합니다. QT와 같은 널리 사용되는 많은 소프트웨어 패키지는 업그레이드가 어렵고 종종 전체 재설치가 필요합니다. 게다가 많은 프로젝트의 개발 노력이 줄어들거나 새로운 기술로 대체되었습니다. 시스템 패키지의 경우 일반적으로 상당한 시스템 재설계가 필요합니다. 일부 사람들은 버전 C에서 버전 D로 업그레이드하기를 원하지만 다른 사람들은 버전 B나 버전 A 또는 그 사이에 일부 사용자 정의 상태에서 전환한다는 사실을 고려해야 하는 경우 마이그레이션 프로세스를 구현하기가 특히 어려울 수 있습니다.

따라서 짐작할 수 있듯이 가장 어려운 방법은 롤링 릴리스입니다. 나는 데비안 접근 방식의 세부 사항을 모르지만, 귀하의 설명을 보면 그 중간쯤에 있다는 것을 알 수 있습니다.

관련 정보