어떻게 데비안 시스템을 최신 패키지로 최신 상태로 유지하나요?

어떻게 데비안 시스템을 최신 패키지로 최신 상태로 유지하나요?

서버에 설치하는 대부분의 "소프트웨어"는 최신 버전(Java, Tomcat, MySQL-Cluster)이어야 합니다. 그래서 나는 사전 구축된 데비안 패키지를 (배포판에서) 사용할 수 있을 만큼 운이 좋았던 적이 없습니다. 따라서 모든 소프트웨어는 프로젝트 웹페이지에서 다운로드되고 소스 코드로 빌드됩니다.

이제 내 질문은 내 데비안 시스템에 설치하는 올바른 방법은 무엇입니까?

내 주요 문제는 소스에서 직접 설치할 때 패키지 관리(적성을 사용하여)에 포함되지 않는다는 것입니다. Checkinstall은 실제로 권장되지 않는 것 같으며 Equiv에는 단점이 있습니다. 이 문제를 처리하는 유일한 올바른 방법은 dh_make 및 dpkg-buildpackage를 사용하여 자체 패키지를 구축하는 것입니까?

항상 최신 버전이 필요하다면 어떻게 하시겠습니까?

답변1

소프트웨어 패키지를 업데이트하려는 것은 모든 운영 체제에서 흔히 발생하는 문제입니다. 데비안의 릴리스 주기는 최근 몇 년간 평균 2년이므로 이 주기가 끝날 무렵에는 이것이 더욱 긴급한 문제가 될 수 있습니다. 이를 완화하는 한 가지 방법은 다음 버전이 거의 안정적일 때 안정적인 릴리스 주기가 끝날 때 테스트하는 것입니다. 테스트 및/또는 불안정성에 대해 더 광범위하게 이야기하고 있는지 여부는 질문에서 명확하지 않습니다. 그럼에도 불구하고, 최신 버전이 아직 패키징되지 않았을 수 있기 때문에 불안정하게 실행되더라도 최신 버전을 갖는 것은 문제가 될 수 있습니다. 데비안 개발자/패키지는 자원봉사자이므로 지루해지거나 다른 일로 바빠서 패키지가 중단될 수 있습니다.

간단하고 구체적으로 유지하기 위해 앞으로의 계획은 패키지를 안정적인 릴리스로 백포트하는 것이라고 가정하지만 이는 보다 일반적인 경우에 적용됩니다. 따라서 안정적인 버전에 없는 최신 버전의 소프트웨어를 원할 경우 대략적인 순서대로 다음을 수행합니다.

  1. 다음에서 패키지 찾기데비안 백포트. 때로는 귀하의 목적에 맞는 새로운 패키지를 찾을 수 있습니다. 그러나 이러한 패키지는 불안정하거나 실험적이거나 업스트림 버전에 비해 오래된 경우가 많습니다.

  2. 테스트, 불안정 또는 실험에서 직접 패키지를 설치해 보세요. 안정 버전이 설치하려는 버전과 크게 다르지 않으면 이 방법이 작동할 수 있습니다. 시스템이 최신 버전에서 기본 패키지를 설치하거나 업그레이드하려고 시도하기 시작하면 이 접근 방식이 좋지 않다는 것을 알게 될 것입니다. 불안정한 버전에서 설치하려고 한다고 가정하면

    apt-get install packagename/unstable
    

    가장 먼저 시도하는 것입니다. 이는 불안정한 버전의 추가 패키지가 필요하기 때문에 안정적인 버전의 경우 일반적으로 실패하며 이 주문은 packagename불안정한 버전에 설치할 수 있을 만큼만 기본 설정을 높입니다 . 이것이 무엇을 의미하는지 이해하지 못한다면, 가서 계속 읽으십시오 man apt_preferences. 계속해서 불안정한 종속성을 추가하여 기본 패키지를 업그레이드하려고 시도하지 않는지 확인하세요. 예를 들어, libc6, X, KDE, Gnome 업그레이드 시도가 시작되면 즉시 중단하세요. 일반적으로 패키지는 서로 밀접하게 결합되어 있으므로 동일한 소스 패키지에서 다른 패키지를 업그레이드하려고 하면 일반적으로 문제가 없습니다. 바이너리 패키지가 의존하는 소스 패키지를 확인하려면 다음을 수행하십시오.

    apt-cache showsrc packagename
    

    많은 것들이 GNU C 라이브러리(libc6)에 의존했기 때문에 이것은 문제가 되었습니다. 최근에는 API가 안정화된 것 같아서 이제는 일반적으로 업그레이드할 필요가 없습니다. 패키지가 stable에 대한 런타임 종속성을 충족하지만 여전히 작동하지 않는 경우 버그를 신고하세요. 패키저가 이것이 버그가 아니라고 말한다면, 그들은 잘못된 것입니다. :-)

  3. 테스트, 불안정 또는 실험적 릴리스의 패키지를 직접 백포트합니다.

    위에서 언급했듯이 백포팅은 옵션이지만 이러한 패키지는 불안정하거나 실험적이거나 업스트림 버전에 비해 오래된 경우가 많습니다.

    일반적으로 재귀적 종속성 빌드 루프 유형이 필요합니다. 먼저 빌드 종속성을 가져와야 합니다.

    apt-get build-dep packagename    
    

    종속성 중 하나가 충분히 새롭지 않아 실패하는 경우 먼저 해당 종속성을 백포트해야 합니다. 이것은 손에서 벗어날 수 있습니다. 2개 이상의 재귀 수준을 처리해야 하면 대개 포기합니다. 그러나 실제 종속성은 명시된 것만큼 엄격할 필요는 없습니다. 이전 버전이 작동할 수 있습니다. 패키저는 일반적으로 작동하는 빌드(또는 실제로는 런타임) 종속성의 가장 오래된 버전을 찾으려고 시도하지 않습니다.

  4. 해당 업스트림에서 패키지의 가용성을 확인하세요. 이상적으로는 배포판과 일치하지만 필요한 경우 다시 빌드할 수 있습니다.

  5. Testing/Unstable/experimental에서 최신 패키지보다 최신 소프트웨어 버전용 패키지를 생성합니다. 이는 상대적으로 어려울 수 있지만 때로는 놀라울 정도로 실행 가능합니다. 가장 먼저 주목해야 할 점은 데비안에 이미 존재하는 패키지의 업데이트 버전을 패키징하려고 하면 이미 기존 패키지를 사용할 수 있다는 점에서 큰 이점을 갖기 시작한다는 것입니다. 그냥 해

    apt-get source packagename
    

    그리고 apt-get패키지가 있는 debian 하위 디렉터리를 포함하여 해당 소스 코드 패키지가 다운로드됩니다. 또한 요즘 이 패키지는 일부 버전 제어 저장소(git은 데비안에서 인기 있는 것 같습니다)와 stable 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-source 3.0(퀼트) 형식, 패치 새로 고침에 도움이 됩니다.

    백포트 방법에 대한 실제 사례로 마무리하겠습니다.데비안 패키지~의 PGF. pgf의 마지막 패키지 버전은 2008년 2.00이었으며, 그 이후 2.10이 출시되었습니다. 의 토론을 참조하세요.최신 안정 버전의 pgf(2.10)로 업데이트하세요., 그리고 후속 오류 패치,pgf: 2.0 Debian용 패치 패키지. pgf의 데비안 패키징은 매우 간단하다는 것이 밝혀졌습니다. 2.10 패키징에서 한 줄만 변경하면 작동하게 되었습니다. 마침내 모든 것과 화해했어요 린 티안불만 사항도 있지만 이는 전적으로 선택 사항입니다.

답변2

물론 자신만의 패키지를 만들 수도 있고 그렇게 하면 작동할 것입니다. 하지만 나는 사용하는 것이 좋습니다백포트첫째, 원하는 것이 있다면.

백포트는 Debian에서 관리하며 백포트에서 보안 업데이트를 받을 수 있습니다.

답변3

자신만의 패키지를 만드는 것이 올바른 접근 방식입니다(IMHO). 패키지의 데비안 버전의 수명과 변경 사항에 따라 이는 패키지 설명에서 소스 tarball의 파일 이름을 바꾸는 것만큼 간단할 수 있으며, 최악의 경우에도 이를 템플릿으로 사용할 수 있습니다. 버전.

답변4

항상 최신 버전이 필요하다면 어떻게 하시겠습니까?

  1. ~처럼이미 언급됨, 백포팅을 사용합니다.

  2. 데비안 패키지의 작은 하위 집합만 백포트되므로 다음을 사용하는 것이 좋습니다.데비안 테스트. 이는 롤링 릴리스와 같은 의미에서 안정성과 최근성 사이의 적절한 균형을 제공합니다.

  3. 좀 더 모험심이 있다면 다음을 사용할 수 있습니다.데비안은 불안정하다. 상당히 안정적이라고 합니다. 일부는 다른 배포판의 "안정적인" 버전보다 더 안정적이라고 주장하기도 합니다. 불안정성은 일반적으로 새로운 패키지 버전이 들어오는 곳입니다. 그들은 일반적으로 테스트를 위해 이동되기 전 테스트를 위해 약 10일 동안 그곳에 머물게 됩니다.

  4. 이 두 가지를 사용하더라도 최신 버전이 없을 수도 있습니다. 이 상황 좀 보세요데비안 실험 버전. 일반적으로 새 패키지가 일반 보관에 너무 지장을 줄 때(불안정하고 테스트할 때) 사용됩니다.

  5. 실험에 여전히 충분한 새 소프트웨어 버전이 없는 경우 다음을 확인하세요.우분투 PPA. 그곳에서 위의 모든 아카이브에서 누락된 것보다 더 새로운 소프트웨어 버전을 보았습니다. 하지만 우분투는 데비안과 100% 호환되지 않으므로 주의해서 사용하세요(그러나 대부분의 경우에는 문제가 없습니다).

  6. 위의 방법이 실패하면 나만의 패키지를 만들어 보세요.상술 한 바와 같이.

관련 정보