2012-05-14 1 views
-1

몇 주간의 고생 끝에 패키지의 설치 및 제거에서 잘 작동하는 보통 기본 패키지 데비안 패키지를 만들 수 있습니다. 이러한 초보자를위한 아주 좋은 자료입니다 http://www.quietsche-entchen.de/cgi-bin/wiki.cgi/-wiki/CreatingDebianPackages 데비안 위키 http://wiki.debian.org/HowToPackageForDebianhttp://www.debian.org/doc/manuals/maint-guide/으로패키지를 업데이트하는 동안 필요한 파일 만 업데이트하는 데비안 패키지를 만드는 방법

,

나는 모든 파일 data.tar.gz 기본적으로 업데이트 패키지를 업데이트에서 기본 문제가 있습니다.

모든 파일에 저장된 키 변수를 기반으로 data.tar.gz에서 업데이트 할 파일이 거의 없기를 바랍니다. , data.tar.gz에있는 모든 파일이 이미 업데이트 PREINST 스크립트를 실행 포장을 해체 한 후

..

내 생각은 intially 패키지를 업그레이드하기 전에 다시 파일을 소요하고, 키를 확인하는 것이 었습니다 키 변수가 현재의 변수보다 큰 경우 파일의 변수는 .. 대체 .. 난 .. 간단한 백업 스크립트를 작성하고는 postinst 파일에서 실행하고 의미

..

을 나는이 생각이 donot 좋은 생각입니다 .. 대쉬 스크립트의 제한 사항 이상으로 매우 힘든 일입니다 ..

답변

1

여기서 무엇을하려고합니까? 데비안 패키지를 다시 설치 (또는 업그레이드)하는 동안 모든 비 conffiles를 최신 버전으로 바꾸는 일은 이 정확히 일 것이라고 가정합니다. 파일이 패키지의 마지막으로 설치된 버전 이후에 변경되지 않은 경우 어쨌든 업데이트에 아무런 해가 없습니다. 이 있으면 업데이트해야합니다.

사용자가 수정할 수 있고 업그레이드를 통해 보존해야하는 특정 파일이있는 경우 conf 파일을 만듭니다. 패키지 시스템은 사용자에게 메시지를 표시하고 패키지 유지 관리자의 버전 또는 로컬로 수정 된 버전을 유지할 것인지 묻습니다.

(하지만 당신은 모든 파일 conf의 파일을 만들려고하는 경우에, 당신은 아마 뭔가 잘못하고 있습니다.)

debian/conffiles에 목록, 파일 설정 화일하려면. 그러나 파일이 /etc 아래에 설치 될 경우 dh_installdeb이 대신 수행하므로이 작업을 수행 할 필요가 없습니다. 코멘트에서

편집 다음과 같은 추가 정보는 :

당신이 당신의 패키지 파일 (다른 사람의 사이에서) test1.shtest2.sh 있다고 가정합시다. 데비안 세계에서 그들은 conffiles가 최종 사용자에 의해 수정되도록 의도되었거나 그렇지 않은 것입니다.

conffiles는 패키지 유지자가 변경 한 내용과 최종 사용자가 변경 한 사항을 조정해야하는 부담을 최소화하기 위해 비교적 적은 수로 가능한 한 짧아야합니다.

최종 사용자가 조정할 가능성이있는 코드에 혼합되어 있으면 구성 파일에 요소를 포함시켜보십시오. 이 파일을 /etc에 넣으면 직접 수동으로 지정하지 않아도됩니다.

최종 사용자가 비 Conffile을 변경해야 할 경우 dpkg-divert 프로토콜을 사용하여 (1) 원본 파일을 옆으로 옮기고 (2) 복사본을 편집해야합니다. 전환 된 파일은 패키지 업그레이드를 통해 존중됩니다. dpkg-divert을 사용하는 최종 사용자는 패키지 관리자가 최종 사용자가 이러한 파일을 수정하지 않으며 로컬로 수정 된 버전이 새로 업그레이드 된 버전과 호환되지 않을 수 있으므로 업그레이드 후에 문제가 발생할 수 있음을 알고 있어야합니다. 다른 파일. dpkg-divert은 신중하고 조심스럽게 사용해야합니다.

+0

간단한 예제에서 내가 원하는 것을 설명하려고 노력할 것입니다. data.tar.gz에 두 개의 파일이 있다고 가정 해 봅시다. test1.sh, test2.sh 및 debain 패키지 버전이 2.0이고 시스템의 파일에서 test2를 업데이트했고 2.1 버전의 새로운 debian 패키지를 만들었습니다. test1.sh의 일부 변경 사항. 만약 내가 내 패키지를 업데이트했다면, 나는 두 개의 파일이 업데이트 될 것이고, 나는 단지 test1.sh를 업데이트하기를 원할 것이다. 위의 설명은 내가 몇개의 파일 만 가지고 있다면 작동 할 것이다. 죄수 파일을 만드는 것보다 100 파일보다 .. –

+0

대답에있는 추가 정보를보십시오 – Celada

+0

@Celeda는 다만 dpkg-divert에 관하여 또 다른 포스트를 보았다는 것을 알고있다 그러나 이것은 최종 사용자가 결코 dpkg-divert를 사용하지 않을 나의 대본에서 작동하지 않을 것이다 파일을 변경하려면 .... 이전 버전의 파일을 모두 삭제하고이 그림에서 "postrm upgrade"및 "posinst configure"호출에 새 버전을 설치하는 다른 방법이 있습니까? wiki.debian.org/MaintainerScripts 또는 설치와 관련된 기본 동작을 제어하는 ​​다른 방법 –