소스에서 Ubuntu 패키지를 어떻게 업데이트합니까?


8

Ubuntu에서 업데이트 된 버전의 network-manager-openconnect 패키지를 만들고 싶습니다. 적절하게 최신 패키지 소스를 구해야합니다.

bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head

그리고 뭐? 패키지는 git을 사용하여 최신 업스트림 코드에서 자체적으로 업데이트하는 방법이있는 것 같습니다. 하지만 어떻게해야합니까?


나는 bzr이 bazaar를 의미한다고 생각했다 -bazaar.canonical.com/en
Paul

답변:


6

bzr 브랜치에서 업데이트 된 패키지를 빌드하는 것은 브랜치를 유지 관리하는 사람 또는 패키지의 일반적인 작동 방식에 따라 공정한 금액이 다른 경향이 있습니다. 그러나 다음은 PPA로 푸시되는 거의 모든 패키지의 빠르고 더러운 업데이트에 대한 몇 가지 지침입니다.

지점을 얻으십시오 :

bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head

그런 다음 스위치로 전환하고 변경 로그를 업데이트하십시오.

dch -i

dch -i 는 debian / changelog에 새 항목을 열어 버전 개정을 1 씩 증가시킵니다. 패치를 추가하려면 완벽하지만 최신 버전의 업스트림 소프트웨어로 업데이트하려면 대시 (-) 앞에 버전 번호를 업데이트해야합니다. 예를 들어 1.2-0ubuntu1 의 버전에서 dch -i 를 시작 하면 1.2-0ubuntu2로 변경되어 패치 적용에 적합하지만 새 버전이 필요하면 1.3-0ubuntu1 로 변경하고 싶을 것 입니다.

패치해야 할 경우 이제 변경 사항을 추가 할 차례입니다. 데비안 / 디렉토리 만있는 브랜치에서는 bzr bd-do (bzr-builddeb 패키지 필요)를 사용하여 변경을 수행 할 수있는 작업 트리로 전환하고 퀼트 또는 패치 시스템을 사용한 다음 "exit 0"을 변경 사항을 다시 복사하십시오.

새로운 업스트림 버전을 원한다면 일단 변경 로그가 변경되면 다음과 유사한 명령을 실행할 수 있습니다.

debian/rules get-orig-source

일반적으로 업스트림 게시자로부터 올바른 타르볼을 다운로드하여 시작할 수 있습니다. 추가 변경이 필요한 경우 debian / 디렉토리 의 다른 파일을 "패치"하거나 변경하기 위해 위와 같이 진행하십시오 . 그렇지 않으면 거의 완료된 것입니다.

bzr bd -S

bzr bd 는 건물을 관리합니다. 인수없이 호출하면 시스템에서 빌드가 시작되고 -S로 호출하면 소스 패키지를 준비하라는 메시지가 표시됩니다. 여기에는 PPA에 업로드하려는 ..._ source.changes 파일 이 포함됩니다 ( dput 사용) . ppa : <yourname> / <ppa 이름> <파일 변경> 을 수행하십시오).


NetworkManager 패키지의 경우 약간 다릅니다. openconnect를 구체적으로 살펴 보자.

bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head network-manager-openconnect

또한 모든 빌드 종속성이 있는지 확인하십시오. sudo get-build-deps

브랜치를 검색하면 debian / control 파일을 읽고 network-manager-openconnect를 빌드하는 데 필요한 모든 것을 다운로드하려고 시도합니다. 그래도 자식이 필요할 수 있습니다. 이 작업이 완료되면 get-orig-source 를 실행 하여 git에서 최신 스냅 샷의 타르볼 만 가져옵니다.

debian/rules get-orig-source

텍스트가 날아가고 버전 번호가 긴 타르볼이 나타납니다. 이것이 nm-openconnect에 대한 최신 코드입니다.

그런 다음 -0ubuntu1 접미사를 그대로 유지하면서 tarball의 버전 번호로 변경 로그를 업데이트해야합니다 .

또는 원하는 특정 버전 번호로 debian / changelog변경 한 후 다음을 실행하십시오. debian / rules get-current-source

플러그인은 많이 변경되지 않으므로 위와 같이 bzr bd 를 사용하여 패키지를 빌드 할 수 있습니다 . 그렇지 않은 경우 위와 같이 필요한 변경 사항을 적용하십시오.

변경 한 후에는 bzr commit 을 잊지 마십시오 .

내가 먼저 (병합 제안 시스템을 사용하는 것을 망설이지 말라, 추가 깜빡 병합 제안 (가) 다른 사람을 이익을 얻을 수 당신에게있는 거 결정을 변경할 때 LP에 링크 지사의 페이지). 일반적으로 기반이되는 브랜치와의 병합을 제안 할 수 있습니다 (예 : lp : ~ network-manager / network-manager / openconnect-ubuntu.head).


패키징 수정 (패치도 포함) 인 경우 기본 패키징 브랜치에 병합하기 위해 변경 사항을 적용하여 모든 사람이 변경의 혜택을 누릴 수 있도록 두려워하지 마십시오. :)
Mathieu Trudel-Lapierre

2

실행 패드에서 코드를 가져 오는 방법에 대한 업데이트

bzr branch lp : ~ 네트워크 관리자 / 네트워크 관리자 /openconnect-ubuntu.head

이 용량은 lp (런치 패드 호스팅 서비스)에서 코드를 가져옵니다. 코드가 어디에 있는지 찾아야합니다.

man
페이지가 나타나면 man bzr 343 #type 343을 입력하십시오.

bzr branch FROM_LOCATION [TO_LOCATION]        
       If  the TO_LOCATION is omitted, the last component of the FROM_LOCATION
       will be used.  In other words, "branch ../foo/bar" will attempt to cre‐
       ate  ./bar.   If the FROM_LOCATION has no / or path separator embedded,
       the TO_LOCATION is derived from the FROM_LOCATION by stripping a  lead‐
       ing   scheme   or  drive  identifier,  if  any.  For  example,  "branch
       lp:foo-bar" will attempt to create ./foo-bar.

작업하려는 디렉토리로 변경하거나 사용자와 코드가있는 디렉토리를 추가하십시오.

cd / home / [사용자 이름] / [개발 디렉토리 경로]
또는 bzr 브랜치 lp : ~ network-manager / network-manager / openconnect-ubuntu.head / home / [사용자 이름] / [개발 디렉토리 경로]
예 : bzr branch lp : ~ network-manager / network-manager / openconnect-ubuntu.head / home / joe / projects / network-manger / dev

이미이 작업을 수행했다면 아마도 홈 디렉토리에 디렉토리가있을 것입니다


LS ~ ./openconnect-ubuntu.head

해당 디렉토리에 README 파일이 있어야 프로젝트 코드 를 볼 수 있습니다. 여기에 README.source 링크가 있습니다.

README에는 해당 개별 프로젝트를 구축하는 방법에 대한 지침이 있어야합니다.

설치할 다른 유용한 bzr 도구

sudo apt-get install bzr-builddeb bzr-builder bzr-explorer 퀼트

bzr-explorere를 사용하면 컴퓨터에서 생성 한 bzr 저장소를 GUI로 탐색 할 수 있습니다.

또 다른 메모. 하나의 구성 요소 openconnect를 구축하려면 전체 네트워크 관리자 소스를 가져와야 할 수도 있습니다. 구성 요소 간에는 많은 종속성이있을 수 있습니다.

현재 opneconnect 패키지에 대한 수정 프로그램을 작성한 다음 사용하는 모든 diff 도구를 사용하여 패치를 작성해야합니다. 그리고 패키지 관리자에게 보내십시오.

또는 수정 새 패키지를 로컬로 사용하려면 .deb 패키지 파일을 작성하십시오.

패키지를 만들려면 다음 링크를 읽으십시오.


감사. 그러나 여전히 git에서 최신 네트워크 관리자 오픈 커넥트 코드를 가져 오는 방법을 모르겠습니다. bzr로 가져온 파일에는 데비안 / 규칙에 git pull을 수행 할 수있는 스크립트가 있지만 스크립트를 올바르게 실행하는 방법을 모르겠습니다.
제임스 워드

@james 런치 패드는 그놈 커뮤니티가 호스팅 하는 nework-manager 프로젝트 의 자식 저장소에서 업스트림 소스를 가져옵니다 . 따라서 저장소를 가져 오기 위해 git을 사용할 필요가 없습니다. bzr 설명서를 읽고 bzr의 작동 방식에 대한 아이디어를 얻으려면 몇 가지 자습서를 수행하십시오. 다른 현명한 체크 아웃
스택 오버 플로우

@james simpler는 이 페이지 의 하단에있는 .tar.gz 파일을 다운로드
하거나이

bzr이 간단한 방법으로 분기하여 최신 원본으로 업데이트하는 것처럼 보입니다.
제임스 워드
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.