저는 지난 2주 동안 여러 막다른 골목에 부딪히면서 제가 가고 싶은 곳으로 데려갈 길을 찾으려고 노력했습니다. 그러나 나는 마침내 내 답변이 어디에도 명시적으로 게시되지 않았음을 인정해야 했으며 여기에 있습니다.
명확히 하는 것부터 시작하겠습니다. 저는 "플러그인"을 의미하는 것처럼 보이는 재배포 가능한 Django "애플리케이션"을 구축하고 싶지 않습니다. 이것은 Python 플러그인이 아니며 FCGI 서버, /etc/init가 포함된 전체 웹사이트입니다. d 스크립트, /etc/djangoapps의 구성 파일, 내 웹 사이트에서 사용되는 플러그인용 요구 사항.txt.
빌드 서버에서 개발 및 프로덕션 서버로 배포할 수 있는 deb 패키지를 빌드하고 싶습니다. (Bamboo를 사용하고 있지만 Jenkins도 동일한 원칙을 사용해야 합니다.)
나는 또한 Ubuntu가 아닌 Debian 7 Wheezy에서 이 작업을 수행하고 싶습니다. PKGME는 Ubuntu 및 Debian 8에서 해당 작업을 수행하는 것으로 보이지만 Wheezy에서는 작동하는 상태로 설치되지 않으며 이를 해결할 방법을 찾을 수 없습니다.
그래서 setuptools, steb 및 debuild를 사용하여 패키지를 만들려고 시도했는데 결과적으로 /etc 또는 /usr 파일이 전혀 포함되지 않은 deb에 계란이 생겼습니다.
그렇다면 여기서 올바른 접근 방식은 무엇입니까?
답변1
하나의 .deb
파일을 분명히 설치 /etc
하고 다운로드 할 수 있습니다 /usr
. 그렇지 않으면 데비안 7 시스템이 이 파일을 사용하여 설치할 수 없으므로 그렇게 해야 합니다.
문제는 작업을 수행하려고 할 때 사용하는 도구에서 발생하는 것 같습니다. 도구를 잘못된 방식으로 사용하거나 "사용 편의성"으로 인해 .deb
작업을 수행하는 데 필요한 기본 패키지의 기능이 숨겨집니다.
파일 .deb
은 단지ar
3개의 파일이 포함된 아카이브: 버전 번호 파일 1개와 tar
아카이브 2개(보통 압축됨). 일부 명령을 사용하여 (별도로) 압축을 풀고 다시 ( 별도로 ) 결합하는 ar x ...
것은 쉽습니다 . `debian_version 파일을 먼저 아카이브로 이동해야 합니다.tar xvf ..
tar cvzf ...
ar mc ....
패키지를 만들어야 할 때 .deb
필요한 부분을 이미 수행하고 있는 기존 패키지로 시작하고 필요에 따라 항목을 추가/변경합니다.
더세부물론 설치 프로그램이 패키지의 다양한 특수 스크립트를 실행하고 종속성을 추가하는 방법을 알아야 하는 경우 사용할 수 있습니다.