2013-09-26 2 views
2

Realxtend 프로젝트 (https://github.com/realXtend/naali)의 새 .deb 패키지를 만들어야합니다. 이것은 의존성이 많은 커다란 프로젝트이고 모든 deps와 실행 파일을 다운로드, 컴파일 및 설치하는 자동 bash 스크립트 (/tools/Linux/build-deps.bash)입니다. 그래서 나는 많은 튜토리얼을 시도하지만 종종 오류가 있고 자습서가 (새로운 'rules'파일을 중심으로) 구식이기 때문에 나는 꼼짝도하지 않는다. 왜냐하면 나는 dev 초기가 아니기 때문이다.데비안 패키지를 만드는 법 (데비안 패키지로 소스 또는 파일을 압축/압축하는 것)

그래서 처음에는 단순한 아카이브처럼 정확하게 .deb 파일을 만들면됩니다. 즉, 'makefile'또는 다른 것들을 해석하지 않아도됩니다. 그냥 압축/압축을 풀고 싶습니다. .deb 파일에는 이미 모든 폴더와 함께 .zip 파일과 같은 모든 종속성으로 구성된 모든 프로젝트가 들어 있습니다. 모든 아카이브의 압축을 풀면됩니다.

우분투 정밀 x64에서 build-deps.bash를 실행하여 다양한 파일 (exe, src, lib, ...)로 2 개의 폴더/naali-deps를 가지고 있습니다. 내가 dh_make, 깨끗한 실행하고 입력/데비안 파일 (변경 내역, 제어, 저작권을), 는 GPG 키를 생성하고 sudo debuild -us -uc -k0xCODE을 실행

(내가 'sudo는'이 "나쁜"입니다하지만 난없이 모르는 ... 듣고))

1 '데비안 새로운 메인테이너가'와 IRC보다)는 초보자를위한 업데이트하고 완전한 튜토리얼 (알고 다른 수행 그래서 난에 도움이 필요 ...

dpkg-buildpackage -rfakeroot -D -us -uc 
dpkg-buildpackage: warning: using a gain-root-command while being root 
dpkg-buildpackage: source package realxtend 
dpkg-buildpackage: source version 0-1 
dpkg-buildpackage: source changed by sylvain Bicherel <[email protected]> 
dpkg-source --before-build realxtend-0 
dpkg-buildpackage: host architecture amd64 
fakeroot debian/rules clean 
dh clean 
    dh_testdir 
    dh_auto_clean 
    dh_clean 
dpkg-source -b realxtend-0 
dpkg-source: info: using source format `3.0 (quilt)' 
dpkg-source: info: building realxtend using existing ./realxtend_0.orig.tar.gz 
dpkg-source: warning: ignoring deletion of file naali-deps/build/bullet-2.81-rev2613/Extras/CDTestFramework/License.txt.bak 
dpkg-source: warning: ignoring deletion of directory naali-deps/build/bullet-2.81-rev2613/autom4te.cache 
dpkg-source: warning: ignoring deletion of file naali-deps/build/bullet-2.81-rev2613/autom4te.cache/traces.1 
dpkg-source: warning: ignoring deletion of file naali-deps/build/bullet-2.81-rev2613/autom4te.cache/output.1 
dpkg-source: warning: ignoring deletion of file naali-deps/build/bullet-2.81-rev2613/autom4te.cache/requests 
dpkg-source: warning: ignoring deletion of file naali-deps/build/bullet-2.81-rev2613/autom4te.cache/traces.0 
dpkg-source: warning: ignoring deletion of file naali-deps/build/bullet-2.81-rev2613/autom4te.cache/output.0 
dpkg-source: info: building realxtend in realxtend_0-1.debian.tar.gz 
dpkg-source: info: building realxtend in realxtend_0-1.dsc 
debian/rules build 
dh build 
    dh_testdir 
    dh_auto_configure 
    dh_auto_build 
    dh_auto_test 
fakeroot debian/rules binary 
dh binary 
    dh_testroot 
    dh_prep 
    dh_installdirs 
    dh_auto_install 
    dh_install 
    dh_installdocs 
    dh_installchangelogs 
    dh_installexamples 
    dh_installman 
    dh_installcatalogs 
    dh_installcron 
    dh_installdebconf 
    dh_installemacsen 
    dh_installifupdown 
    dh_installinfo 
    dh_installinit 
    dh_installmenu 
    dh_installmime 
    dh_installmodules 
    dh_installlogcheck 
    dh_installlogrotate 
    dh_installpam 
    dh_installppp 
    dh_installudev 
    dh_installwm 
    dh_installxfonts 
    dh_installgsettings 
    dh_bugfiles 
    dh_ucf 
    dh_lintian 
    dh_gconf 
    dh_icons 
    dh_perl 
    dh_usrlocal 
    dh_link 
    dh_compress 
    dh_fixperms 
    dh_strip 
    dh_makeshlibs 
    dh_shlibdeps 
    dh_installdeb 
    dh_gencontrol 
dpkg-gencontrol: warning: Depends field of package realxtend: unknown substitution variable ${shlibs:Depends} 
    dh_md5sums 
    dh_builddeb 
dpkg-deb : construction du paquet « realxtend » dans « ../realxtend_0-1_amd64.deb ». 
dpkg-genchanges >../realxtend_0-1_amd64.changes 
dpkg-genchanges: including full source code in upload 
dpkg-source --after-build realxtend-0 
dpkg-buildpackage: full upload (original source is included) 
Now running lintian... 
warning: the authors of lintian do not recommend running it with root privileges! 
W: realxtend source: configure-generated-file-in-source naali-deps/build/celt-0.11.1/config.status 
W: realxtend source: configure-generated-file-in-source naali-deps/build/celt-0.11.1/config.log 
W: realxtend: new-package-should-close-itp-bug 
W: realxtend: empty-binary-package 
Finished running lintian. 

:

나는이 얻을/maillist와 같은 # debian-dev ... -> Phpdna 링크 및 특정 소스 패키징을 참조하십시오. 내 오류 및 사용 dpkg-source cmd : http://debian-handbook.info/browse/wheezy/sect.source-package-structure.html

2) 내 프로젝트의 '데비안 화'를 어떻게 만드나요? ->dh_make 다음 dpkg-buildpackage -rfakeroot, 그것은 좋은 방법입니다

3) 어디 까지나 나의 실수는 어디입니까? -> 빈 바이너리 - 파일 lintian 경고가 정상적인 다음 잘못된 cmd가 필요합니다 :

4) $ {shlibs : Depends}로 무엇을해야합니까? -> 자동 lib-deps-links 것, 지금은 신경 쓰지 않아요

5) 비어있는 바이너리 패키지가있는 이유는 무엇입니까? -> 사실, 모든 데이터는 이미 내 케이스에 .orig.tar.gz에 머물러 있습니다.

.deb 패키지 마법에 나를 가르쳐 주시면 많은 감사드립니다.

편집 : 그래서 나는 단지 dpkg-source -x projet-version.dsc이 필요한 최종 cmd를 찾았습니다. 나는 .deb 파일의 내용이 변경 될 뿐이라는 것을 이해하지 못했으며, 추출 소스 (및 모든 파일)를 빌드하지 않기 위해 debuilddpkg-deb -... cmds와 붙어있었습니다.

해결책 : + 올바르게 입력/데비안에서

  1. sudo apt-get install debhelper build-essential dh-make
  2. 하기에 다른 폴더/프로젝트를 폴더를 만들고이/프로젝트 버전
  3. dh_make --createorig라는 이름의 모든 프로젝트가 포함/프로젝트 버전 + rm -rf *ex *EX README*/데비안/{규칙; 저작권; 변경 로그}
  4. dpkg-buildpackage -rfakeroot-us -uc 또는 -k0x[GPG-KEY]/프로젝트 버전
  5. 항상 함께 유지 {project_version.orig.tar.gz (모든 데이터 프로젝트); project_version.debian.tar.gz (modifs); project_version_all/any.deb (modifs); project_version_arch.changes (메타); project_version.dsc (메타)}
  6. 실행 dpkg-source -x projet-version.dsc는 일부 자동 스크립트를 추가하고 즉시이 SUCCES 바와 같이, 내가 해결 표시합니다 이동, 그래서 지금 프로젝트를

를 추출합니다. 일부 정보 원에 당신이 제어 파일을 작성해야합니다 빌드 폴더에 다음 tar czvf data.tar.gz files

:

답변

2

우선 당신은 빌드 폴더와 파일의 아카이브를 만들 필요가 다음

Package: xxxxxx 
Version: 0.0.1 
Section: user/hidden 
Priority: optional 
Architecture: armel 
Installed-Size: `du -ks usr|cut -f 1` 
Maintainer: [email protected]> 

당신 preinst, postint, prerm 및 postrm 쉘 스크립트를 추가하여 .deb 파일의 사전 및 사후 설치 및 사전 및 사후 제거 동작을 제어 한 다음 tar를 사용하여 제어 아카이브를 생성 한 다음 tar로 제어 아카이브를 작성할 수 있습니다.그러면 debian-binary 파일이 필요합니다 : echo 2.0 > debian-binary. 빌드 폴더에 다음 파일이 있어야합니다 : debian-binarycontrol.tar.gzdata.tar.gz.

마지막으로 당신은 뎁 파일을 만들 ar 패키지가 필요합니다 ar -r xxx.deb debian-binary control.tar.gz data.tar.gz

출처 : https://unix.stackexchange.com/questions/30303/how-to-create-a-deb-file-manually/30330#30330

+0

덕분에 많은 Phpdna! 그래서 마침내 1.5Go 아카이브 .deb 파일을 theses 최소한의 지시문에 의해, 그것을 컨텍스트 메뉴 (또는 추출 cmd 그래서) 콘텐츠를 추출 할 경우 괜찮 았지만 'dpkg-dep -i project.deb'cmd 함께 작동하지 않습니다. 또는 우분투 소프트웨어 센터를 열려면 두 번 클릭하십시오. 그것은 정상입니까 (insall/cp 및 .desktop 파일이 필요한 디렉토리 경로가 없음)? 그리고 'deb helper'튜토리얼의 링크 부분에는 항상 거의 빈 .deb가 있습니다. 하지만 난 '덮어 쓰기 _dh_install' ''새 '규칙'파일에서 'cp'cmds에 의해 '만들기'cmds 필요가 있다고 생각합니다. 나는 이것을 곧 시도한다. –

+0

죄송합니다. 나는 우분투를 사용하지 않는다. – Bytemain

관련 문제