최신 패키지를 원하는 것은 모든 OS에서 일반적인 문제입니다. 데비안의 릴리스주기는 최근 몇 년 동안 평균 2 년이므로이주기가 끝날 무렵에는 더 시급한 문제 일 수 있습니다. 이를 완화하는 한 가지 방법은 다음 버전이 거의 안정적인 안정된 릴리스주기의 끝을 향해 테스트로 이동하는 것입니다. 테스트에 대해보다 일반적으로 안정적이고 불안정한 것에 대해 이야기하고 있는지는 확실하지 않습니다. 그럼에도 불구하고 가장 최신 버전은 아직 패키지화되지 않았기 때문에 불안정한 경우에도 최신 버전을 사용하는 것이 문제가 될 수 있습니다. 데비안 개발자 / 패키지는 자원 봉사자이므로 지루하거나 다른 것들로 바 빠져서 패키지가 무너질 수 있습니다.
단순성과 구체성을 위해 패키지를 안정적으로 백 포트하는 것이 계획이지만 더 일반적으로 적용된다고 가정합니다. 따라서 안정적으로 존재하지 않는 최신 버전의 소프트웨어를 대략적인 순서로 원한다면 여기에 내가하는 일이 있습니다.
데비안 백 포트 에서 패키지를 찾으십시오 . 때로는 목적을 만족시키기에 충분한 최신 패키지를 찾을 수 있습니다. 그러나 이러한 패키지가 불안정하거나 실험적이거나 업스트림 버전에 비해 구식 인 경우가 종종 있습니다.
테스트, 불안정 또는 실험에서 직접 패키지를 설치하십시오. 안정적인 버전을 설치하려는 버전과 크게 다르지 않으면 작동 할 수 있습니다. 시스템이 최신 버전에서 기본 패키지를 설치 또는 업그레이드하려고 시도하면이 방법이 나쁜 방법이라는 것을 알게 될 것입니다. 불안정한 상태에서 설치하려고한다면
apt-get install packagename/unstable
시도하는 첫 번째 것입니다. apt의 버전이 안정적이면 불안정한 다른 패키지가 필요하기 때문에 종종 실패하며,이 주문 packagename
은 불안정한 상태로 설치하기 에 충분할 정도로 높은 우선 순위만을 제공합니다. 이것이 무엇을 의미하는지 이해하지 못한다면, 가서을 읽으십시오 man
apt_preferences
. 불안정한 종속성을 추가하여 기본 패키지를 업그레이드하지 않도록하십시오. 예를 들어 libc6 또는 X 또는 KDE 또는 Gnome 업그레이드를 시작하면 즉시 중단하십시오. 동일한 소스 패키지에서 다른 패키지를 업그레이드하려고 시도하는 경우 일반적으로 문제가되지 않습니다. 일반적으로 서로 밀접하게 연결되어 있기 때문입니다. 바이너리 패키지가 의존하는 소스 패키지를 확인하려면
apt-cache showsrc packagename
많은 것들이 GNU C 라이브러리 (libc6)에 의존하기 때문에 이것은 문제였습니다. 최근에는 API가 안정화 된 것으로 보이므로 이제 업그레이드하지 않아도되는 것이 가능해졌습니다. 패키지가 런타임 의존성을 안정적으로 만족하지만 여전히 제대로 작동하지 않으면 버그를 신고하십시오. 패키저가 버그가 아니라고 말하면 잘못된 것입니다. :-)
불안정하거나 실험적인 테스트에서 패키지를 직접 백 포트하십시오.
위에서 언급했듯이 백 포트는 하나의 옵션이지만 불안정하거나 실험적이거나 업스트림 버전에 비해 이러한 패키지가 오래되었습니다.
이것은 종종 재귀 종속성 빌드 루프 유형 일을 요구할 수 있습니다. 먼저 빌드 종속성을 가져와야합니다.
apt-get build-dep packagename
종속성 중 하나가 최근에 충분하지 않아서 실패하면 먼저 해당 종속성을 백 포트해야합니다. 이것은 통제 불능 상태가 될 수 있습니다. 나는 보통 2 단계 이상의 재귀를 다루어야한다면 포기한다. 그러나 실제 의존성이 반드시 명시된 것만 큼 엄격하지는 않습니다. 이전 버전이 작동 할 수 있습니다. 패키저는 종종 가장 오래된 빌드 (또는 실제로 런타임) 종속성의 버전을 찾으려고 시도하지 않습니다.
해당 업스트림에서 패키지의 가용성을 확인하십시오. 이상적으로는 배포 버전과 일치하지만 필요한 경우 다시 빌드 할 수도 있습니다.
테스트 / 불안정 / 실험에서 최신 패키지보다 최신 버전의 소프트웨어 패키지를 작성하십시오. 이것은 상대적으로 어려울 수 있지만 때로는 놀랍게도 가능합니다. 가장 먼저 알아 두어야 할 것은 이미 데비안에있는 패키지의 최신 버전을 패키징하려는 경우 이미 큰 이점으로 시작하고 있다는 것입니다. 즉, 기존 패키징을 사용할 수 있다는 것입니다. 그냥 해
apt-get source packagename
그리고 apt-get
데비안 하위 디렉토리 위치를 포장 생활을 포함하여, 해당 소스 패키지를 다운로드합니다. 또한,이 패키징은 종종 일부 verson 제어 저장소 (git는 데비안에게 인기가있는 것 같습니다) 안에 있으며 안정적인 apt (현재 0.8.10.3 )는 호출 할 때 이것이 어디에 있는지 알려줍니다
apt-get source
. 패키저는 출시 된 패키지에 해당하는 것보다 최신 버전의 패키징을 가질 수 있으므로이 점을 살펴보십시오. 예 :
$ apt-get source mercurial
Reading package lists... Done
Building dependency tree
Reading state information... Done
NOTICE: 'mercurial' packaging is maintained in the 'Svn' version control system at:
svn://svn.debian.org/python-apps/packages/mercurial/trunk
또는 간단하게 사용할 수 있습니다
apt-cache showsrc mercurial | grep Vcs
저장소를 나열합니다.
패키지가 오래되지 않은 경우 패키지를 수정
하고 적용된 패치를 새로 고쳐야하지만 일반적으로 여전히 좋은 출발점
입니다. 데비안에서 패키지 관리를 표준화하는 과정에있을 것 같다
당 이불 dpkg를 소스 3.0 (이불) 형식 즉 패치 상쾌에 도움이되도록.
필자는 pgf 의 데비안 패키지 를
어떻게 백 포트했는지에 대한 실제 예제로 결론을 내릴 것 입니다. pgf의 마지막 패키지 버전은 2008 년에 2.00이었으며, 그 이후로 2.10이 릴리스되었습니다. 최신 안정 버전의 pgf (2.10)로 업데이트 하십시오. 및 패치 pgf : 2.0 forbian packaging에 대한 패치로 후속 버그를 참조하십시오 . 결과적으로 pgf의 데비안 패키징은 매우 간단했으며, 2.10 패키징에서 한 줄만 바꿔야 작동했습니다. 나는 모든 lintian 불만을 진압
했다. 그러나 그것은 엄격하게 선택적이었다.