태그 보관물: debian

debian

이전 버전의 데비안 패키지가 패키지 리포지토리에서 사라지는 이유는 무엇입니까? (버전 제어 시스템 구성과 관련성이 높음) 다른 예 : “linux-headers-4.9.0-9-common”이

시나리오 : Puppet, Chef 등을 기반으로하는 버전 제어 시스템 구성에서는 특정 시스템 상태를 재현해야합니다. 시스템 패키지 버전을 명시 적으로 지정하면됩니다.

최근 데비안 리포지토리에서 특정 패키지 버전이 누락되는 문제가 발생했습니다. 한 가지 예 : “패치”패키지는 버전 2.7.5-1 + deb9u1에 필요하지만 2.7.5-1 + deb9u2 만 사용할 수 있습니다. 더 심각한 또 다른 예 : “linux-headers-4.9.0-9-common”이 필요하며 (설치된 관련 커널로 인해) “linux-headers-4.9.0-11-common”만 사용할 수 있습니다.

이로 인해 시스템의 특정 상태를 재현 할 수 없습니다.

위의 패키지는 단지 예제입니다 (실제로 발생했습니다). 일반적인 문제를 이해하고 해결하는 데 관심이 있습니다.

이러한 업데이트, ‘소실’패키지 및 패키지 버전의 기본 개념은 무엇입니까?

데비안 패키지의 이전 버전 (실제 이전 버전이 아니라 몇 주 전의 버전)을 어디서 구할 수 있습니까? 일반적인 방식으로 설치 프로세스를 자동화 할 수 있어야합니다.



답변

정확한 버전에 이르기까지, 특정 설정을 재현 할 수 있다는입니다 귀하의 요구 사항이 아닌 데비안.

데비안은 특정 릴리즈에서 각 바이너리 패키지의 단일 버전 만 지원합니다. 이에 대한 대응책은 특정 릴리스의 패키지 업데이트로 인해 회귀가 발생하지 않도록주의를 기울여야하며, 그러한주의가 불가능한 경우 해당 사실을 문서화하는 것입니다. 주어진 패키지의 여러 버전을 유지하면 지원 부담과 테스트 요구 사항 만 증가합니다. 예를 들어, 패키지 관리자는 현재 지원되는 버전 대신 사용하는 모든 라이브러리 버전에 대해 업데이트 된 패키지를 테스트해야합니다. 패키지는 경우에만 꼭 필요한 안정적인 릴리스에 업데이트됩니다 즉,심각한 버그 (보안 문제 포함)를 수정합니다. 커널의 경우 이는 때때로 커널 ABI가 변경되고 그 결과 패키지 이름이 변경됨을 의미합니다 (종속 패키지를 강제로 다시 빌드 함). 당신이 하드 코딩 ABI (대신에 풀 수있는 메타 패키지가 linux-image-amd64, linux-headers-amd64등).

그러나 상황에 대한 해결 방법이 있습니다. 게시 된 모든 소스 및 바이너리 패키지는 snapshot.debian.org에 보관됩니다 . 버전이 지정된 설정을 만들면 해당 스냅 샷 (예 : 2019 년 9 월 스냅 샷 중 하나 )을 선택하고이를 저장소 URL로 사용할 수 있습니다.

deb https://snapshot.debian.org/archive/debian/20190930T084755Z/ buster main

이것에 의존한다면 Apt-Cacher NG와 같은 일종의 캐싱 미러를 사용하십시오 . 이렇게하면 스냅 샷 서버의로드가 줄어들뿐만 아니라 필요한 모든 패키지의 로컬 사본이 있어야합니다.

( 소스 패키지 와 관련한 상황 은 약간 더 복잡하며, 아카이브는 라이센싱 종속성으로 인해 특정 릴리스에서 일부 소스 패키지의 여러 버전을 전달합니다. 그러나 여기서는 관련이 없습니다. 엄격하게 말하면, 데비안은 일부의 여러 버전을 제공합니다 지원되는 릴리스의 바이너리 : 현재 리포지토리의 현재 버전과 보안 리포지토리 및 업데이트 리포지토리의 업데이트와 함께 다음 포인트 릴리스는 다음 포인트 릴리스에서 접 힙니다. 따라서 재현 가능한 버전 제어 시스템 구성을 유지 관리 할 수 ​​있습니다. 포인트 릴리스가 이루어질 때마다 업데이트하는 한 스냅 샷에 의존합니다.)


답변

특정 시스템 상태를 재현하기 위해 제어되지 않는 서버에 의존하지 마십시오. 데비안 서버가 매우 안정적이라고 생각하더라도 미래에는 어떤 일이 일어날 지 알 수 없습니다. 이것은 특히 다른 리포지토리와 관련이 있습니다.

재생 가능한 시스템 상태를 얻으려면 고유 한 미러를 유지해야합니다. 이 방법으로 일반 시스템의 생산 상태와 새로운 구성의 여러 테스트 상태를 가질 수도 있습니다.

저장소 관리 도구는 적절하게 저장소의 미러를 작성할 수 있습니다. 미러링 할 패키지를 선택하고 특정 시점에 저장소 컨텐츠의 스냅 샷을 작성하며 여러 미러 또는 스냅 샷을 하나의 저장소로 결합 할 수 있습니다. 이렇게하면 가능한 시스템 상태를 완전히 재현 할 수 있습니다.


답변

하지만 스티븐 키트의 대답은 분명 하나 개의 가능한 솔루션입니다, 나는 당신이 필요한 패키지의 자신의 사본을 보관하기에 안전 할 것이라고 생각합니다.

시스템 설치 프로그램을 녹화 할 때의 복사본을 저장해야합니다 .deb에서 -files을 /var/cache/apt/archives/. 을 사용할 수도 있습니다 apt-get download.

시스템 설정을 복원 할 때 apt잠재적으로 위험한 자동 작업을 트리거하지 않도록 매우 엄격해야 합니다.

dpkg원하는 것을 정확하게 설치 하기 위해 직접 사용하는 것이 더 쉬울 것입니다 .


답변