데비안 시스템을 최신 패키지로 유지하는 방법은 무엇입니까?


9

서버에 설치 한 대부분의 "소프트웨어"는 최신 릴리스 (Java, Tomcat, MySQL-Cluster) 여야합니다. 따라서 운 좋게도 사전 빌드 된 데비안 패키지 (배포판)가 있습니다. 따라서 모든 소프트웨어는 프로젝트 웹 페이지에서 다운로드하여 소스에서 빌드합니다.

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

내 주요 문제는 소스에서 직접 설치할 때 패키지 관리에 포함되지 않습니다 (적절한 상태). Checkinstall은 실제로 사용하도록 제안되지 않은 것으로 보이며 equiv에도 단점이 있습니다. dh_make 및 dpkg-buildpackage를 사용하여 자체 패키지를 빌드하여이를 처리하는 올바른 방법입니까?

항상 최신 버전이 필요한 경우 어떻게합니까?

답변:


10

최신 패키지를 원하는 것은 모든 OS에서 일반적인 문제입니다. 데비안의 릴리스주기는 최근 몇 년 동안 평균 2 년이므로이주기가 끝날 무렵에는 더 시급한 문제 일 수 있습니다. 이를 완화하는 한 가지 방법은 다음 버전이 거의 안정적인 안정된 릴리스주기의 끝을 향해 테스트로 이동하는 것입니다. 테스트에 대해보다 일반적으로 안정적이고 불안정한 것에 대해 이야기하고 있는지는 확실하지 않습니다. 그럼에도 불구하고 가장 최신 버전은 아직 패키지화되지 않았기 때문에 불안정한 경우에도 최신 버전을 사용하는 것이 문제가 될 수 있습니다. 데비안 개발자 / 패키지는 자원 봉사자이므로 지루하거나 다른 것들로 바 빠져서 패키지가 무너질 수 있습니다.

단순성과 구체성을 위해 패키지를 안정적으로 백 포트하는 것이 계획이지만 더 일반적으로 적용된다고 가정합니다. 따라서 안정적으로 존재하지 않는 최신 버전의 소프트웨어를 대략적인 순서로 원한다면 여기에 내가하는 일이 있습니다.

  1. 데비안 백 포트 에서 패키지를 찾으십시오 . 때로는 목적을 만족시키기에 충분한 최신 패키지를 찾을 수 있습니다. 그러나 이러한 패키지가 불안정하거나 실험적이거나 업스트림 버전에 비해 구식 인 경우가 종종 있습니다.

  2. 테스트, 불안정 또는 실험에서 직접 패키지를 설치하십시오. 안정적인 버전을 설치하려는 버전과 크게 다르지 않으면 작동 할 수 있습니다. 시스템이 최신 버전에서 기본 패키지를 설치 또는 업그레이드하려고 시도하면이 방법이 나쁜 방법이라는 것을 알게 될 것입니다. 불안정한 상태에서 설치하려고한다면

    apt-get install packagename/unstable
    

    시도하는 첫 번째 것입니다. apt의 버전이 안정적이면 불안정한 다른 패키지가 필요하기 때문에 종종 실패하며,이 주문 packagename은 불안정한 상태로 설치하기 에 충분할 정도로 높은 우선 순위만을 제공합니다. 이것이 무엇을 의미하는지 이해하지 못한다면, 가서을 읽으십시오 man apt_preferences. 불안정한 종속성을 추가하여 기본 패키지를 업그레이드하지 않도록하십시오. 예를 들어 libc6 또는 X 또는 KDE 또는 Gnome 업그레이드를 시작하면 즉시 중단하십시오. 동일한 소스 패키지에서 다른 패키지를 업그레이드하려고 시도하는 경우 일반적으로 문제가되지 않습니다. 일반적으로 서로 밀접하게 연결되어 있기 때문입니다. 바이너리 패키지가 의존하는 소스 패키지를 확인하려면

    apt-cache showsrc packagename
    

    많은 것들이 GNU C 라이브러리 (libc6)에 의존하기 때문에 이것은 문제였습니다. 최근에는 API가 안정화 된 것으로 보이므로 이제 업그레이드하지 않아도되는 것이 가능해졌습니다. 패키지가 런타임 의존성을 안정적으로 만족하지만 여전히 제대로 작동하지 않으면 버그를 신고하십시오. 패키저가 버그가 아니라고 말하면 잘못된 것입니다. :-)

  3. 불안정하거나 실험적인 테스트에서 패키지를 직접 백 포트하십시오.

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

    이것은 종종 재귀 종속성 빌드 루프 유형 일을 요구할 수 있습니다. 먼저 빌드 종속성을 가져와야합니다.

    apt-get build-dep packagename    
    

    종속성 중 하나가 최근에 충분하지 않아서 실패하면 먼저 해당 종속성을 백 포트해야합니다. 이것은 통제 불능 상태가 될 수 있습니다. 나는 보통 2 단계 이상의 재귀를 다루어야한다면 포기한다. 그러나 실제 의존성이 반드시 명시된 것만 큼 엄격하지는 않습니다. 이전 버전이 작동 할 수 있습니다. 패키저는 종종 가장 오래된 빌드 (또는 실제로 런타임) 종속성의 버전을 찾으려고 시도하지 않습니다.

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

  5. 테스트 / 불안정 / 실험에서 최신 패키지보다 최신 버전의 소프트웨어 패키지를 작성하십시오. 이것은 상대적으로 어려울 수 있지만 때로는 놀랍게도 가능합니다. 가장 먼저 알아 두어야 할 것은 이미 데비안에있는 패키지의 최신 버전을 패키징하려는 경우 이미 큰 이점으로 시작하고 있다는 것입니다. 즉, 기존 패키징을 사용할 수 있다는 것입니다. 그냥 해

    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 불만을 진압 했다. 그러나 그것은 엄격하게 선택적이었다.


첫 번째 단락의 마지막 문장은 오해의 소지가 있습니다. 때때로 문제가 발생한다는 점을 분명히하십시오 . 당신이 넣는 방식은 DD가 일반적으로 그런 것처럼 보입니다.
tshepang

@Tshepang : 좋은 지적입니다. 지금은 괜찮습니까?
Faheem Mitha

예, 훨씬 낫습니다
tshepang

5

당신은 확실히 자신의 패키지를 만들 수 있으며, 그것은 작동합니다. 그러나 원하는 것이 있으면 백 포트를 먼저 사용하는 것이 좋습니다 .

백 포트는 데비안에서 유지 관리되며 보안 업데이트를받습니다.


3

자신 만의 패키지를 만드는 것이 좋습니다 (IMHO). 데비안 버전의 패키지 버전과 변경된 내용에 따라 패키지 설명에서 소스 타르볼의 파일 이름을 바꾸는 것만 큼 쉬울 수 있으며 최악의 경우 여전히 자신의 버전에 대한 템플릿으로 사용할 수 있습니다.


1

항상 최신 버전이 필요한 경우 어떻게합니까?

  1. 로서 이미 언급 , 사용 백 포트.

  2. 데비안 패키지의 작은 하위 집합 만 백 포트되므로 Debian Testing 을 사용하는 것이 좋습니다 . 안정성과 최신 성 사이의 균형이 잘 맞으며 롤링 배포판과 같은 의미입니다.

  3. 좀 더 대담하다면 데비안 불안정을 사용하십시오 . 상당히 안정적이라고 주장합니다. 일부는 다른 배포판의 "안정된"릴리스보다 더 안정적이라고 주장하기까지합니다. 어쨌든, 불안정은 새로운 패키지 버전이 정상적으로 도착하는 곳입니다. 그들은 보통 시험으로 이주하기 전에 시험을 허용하기 위해 약 10 일 동안 거기에 앉아 있습니다.

  4. 이 두 가지를 사용해도 최신 버전을 가지고 있지 않을 수 있습니다. 이 경우 데비안 실험을 살펴보십시오 . 일반적으로 새 패키지가 일반 아카이브에 불안정한 경우 (불안정 및 테스트)에 사용됩니다.

  5. Experimental에 아직 충분한 소프트웨어 버전이 없다면 Ubuntu의 PPA를 살펴보십시오 . 위의 모든 아카이브에없는 것보다 최신 버전의 소프트웨어가 있습니다. 우분투는 데비안과 100 % 호환되지 않기 때문에주의해서 사용하십시오 (그러나 대부분의 경우 문제가 없어야합니다).

  6. 위의 방법으로 실패하면 언급 한대로 자체 패키지를 빌드하는 것 같습니다 .


데비안의 불안정이 다른 배포판의 안정이 농담보다 더 안정적이라고 말하는 사람들. 매일 불안정한 변화, 안정은 고정 된 저장소입니다. 불안정하다고해서 충돌한다는 의미는 아니지만 개발자가 패키지를 많이 변경한다는 의미입니다. 안정은 릴리스되었으며 보안 수정 만 추가됨을 의미합니다. 불안정한 충돌이 발생하지 않았습니다. 나는 tho 업그레이드 후 패키지가 깨지고 의존성 문제가 있음을 보았습니다. 이 맥락에서 "보다 안정적인"것은 없습니다. 변경되거나 변경되지 않습니다.
Arjan Drieman

@ArjanDrieman : 실제로 그 사람들은 농담을하지 않으며, 그러한 맥락에서 그들은 더 충돌 방지를 의미합니다.
tshepang

그들은 여전히 ​​최선을 다하고 있습니다. 나는 사람들이 그것에 대해 농담하는 것을 정말로 보았다. 미세 분포 화염 ;-) 시간이 지남에 따라 몇 개의 배포판을 사용해 왔으며 다른 어느 쪽도 실행되는 이상한 충돌이 없었습니다. 무지, 오만, 편견 등이있을 수 있지만 농담보다 낫습니까? 이 신비로운 "일부"가 누구인지 말해 줄 수 있습니까? 그래서 그들에게 조사를 요청할 수 있습니까? "어떤 사람들은 먼 길을 간다"... 족제비 단어입니다. 답변, 사실 또는 대중의 의견과 모호한 주장에서 무엇을 원하십니까?
Arjan Drieman

1
@Arjan Drieman : 저는 실제로 불안정하다고 동의합니다. 'somtimes'는 그 이름에 부응 할 수 있습니다. 그렇지 않다고 주장하는 사람은 최선을 다하지 않는다고 주장하는 사람은 가장자리에 더 가까이 다가 가기 위해 안정성을 거래합니다. 전반적으로 놀랍도록 안정적이지만 불안정성이 가장 우선시되는 것은 아닙니다. 나는 또한 '미끄러운'문구와 관련하여 당신에게 동의하는 경향이 있습니다. 절대 / 직접적인 진술이 즉시 공격 당하기 때문에 거의 방어 수단입니다.
JM 베커
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.