%20%EC%84%A4%EC%B9%98%20%ED%9B%84%20%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C%20%ED%8A%B9%EC%A0%95%20%EA%B2%BD%EB%A1%9C%EC%97%90%20%ED%8A%B9%EC%A0%95%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%91%90%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
나는 다음과 같은 데비안 서버용 설치 ISO를 만들어 달라는 요청을 받았습니다:
- 특정 패키지가 사전 설치되어 있어야 합니다.
- 특정 파일(주로 Python 모듈)은 특정 디렉터리에 자동으로 위치해야 합니다.
ISO는 고객에게 제공되며 이러한 조건은 설치 후 고객이 다른 조치를 취할 필요가 없도록 하기 위해 존재합니다.
현재 나는 다음을 사용하여 첫 번째 조건을 달성했습니다.단순-CDD; 그러나 두 번째 경우에는 어떻게 달성할 수 있는지 모르겠습니다. (Simple-CDD HOWTO 페이지에서 언급된 한 가지는 필요한 파일이 프로필/NAME.extra에 나열될 수 있다는 것입니다.ISO 파일의 /simple-cdd에 추가되도록, 그러나 데비안을 설치한 후에는 데비안 자체의 파일 시스템에 해당 파일이 필요합니다.
답변1
질문 2의 경우 *.deb
패키지를 생성하고 이를 Simple-CDD에 포함할 수 있습니다. 파일이 패키지에 의해 "소유"되기 때문에 단순히 파일을 배포하거나 스크립트로 생성하는 것보다 이것을 선호하는 경우. 이는 dpkg -S $file
그들이 존재하는 이유를 이해할 수 있고 이해할 수 있음을 의미합니다.
*.deb
참고: Simple-CDD에 패키지를 추가하는 방법에 대한 지침으로 이 답변을 업데이트하는 것을 고려하십시오.
이를 설정하는 기본 방법은 with 이지만 dh_make
, cpack
이와 같은 간단한 파일 배포와 같은 사소한 경우에는 더 쉽습니다.
배포할 파일을 디렉터리에 수집합니다. 디렉토리 구조를 보존하는 것이 좋습니다. 에 관련된 모든 작업을 수행할
.
것이므로 을 배포하려면/etc/myconfig
에 복사하세요./etc/myconfig
../CMakeLists.txt
다음 콘텐츠로 만듭니다 .
cmake_minimum_required(VERSION 3.7)
project(foo)
# Repeat this for each directory or file you want to install
install(DIRECTORY etc
DESTINATION /
USE_SOURCE_PERMISSIONS
COMPONENT default
)
set(CPACK_GENERATOR "DEB")
set(CPACK_PACKAGE_NAME foo)
set(CPACK_PACKAGE_DESCRIPTION "Long description of what this package is"
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Short description")
set(CPACK_PACKAGE_VENDOR "The ones who installed your OS")
set(CPACK_PACKAGE_CONTACT "[email protected]")
set(CPACK_PACKAGE_VERSION "1.0")
set(CPACK_COMPONENT_ALL default)
set(CPACK_DEB_COMPONENT_INSTALL "ON")
include(CPack)
참고: Debian Stretch 및 이전 버전에는
cpack
구성 요소 설치에 대해 md5sum만 생성하는 버그가 있었습니다. 이로 인해debsums
. 제가COMPONENT
이곳을 이용하는 이유는 바로 이것입니다. 이 버그는 Buster에서 수정되었습니다. Buster 이상을 사용하는 경우 해당 줄이 포함된 줄을 삭제할 수 있습니다COMPONENT
.
- 패키지 구축
$ mkdir build && cd build
$ cmake ..
$ cpack
*.deb
빌드 디렉터리에 파일이 있습니다 . 이것이 Simple-CDD에 포함하고 싶은 내용입니다.
- 패키지 확인
이것을 실행하세요:
$ dpkg --contents *.deb
포함하려는 모든 파일이 표시되어야 합니다. 크기도 의미가 있어야합니다. 또한 이를 설치 dpkg -i *.deb
한 다음 대상 위치를 살펴보고 문제가 없는지 확인할 수도 있습니다 .