데비안(서버)을 설치한 후 특정 파일을 특정 경로에 자동으로 배치하는 방법은 무엇입니까?

데비안(서버)을 설치한 후 특정 파일을 특정 경로에 자동으로 배치하는 방법은 무엇입니까?

다음을 위해 Debian 서버용 설치 ISO를 만들라는 요청을 받았습니다:

  1. 특정 패키지에는 사전 설치가 필요합니다.
  2. 특정 파일(주로 Python 모듈)은 특정 디렉터리에 자동으로 위치해야 합니다.

ISO는 고객이 설치 후 추가 작업을 수행할 필요를 없애기 위해 이러한 조건을 고객에게 제공했습니다.

현재는 다음을 사용하여 첫 번째 조건을 구현했습니다.SimpleCDD; 그런데 두 번째는 어떻게 구현해야 할지 모르겠습니다. (Simple-CDD HOWTO 페이지에서 언급한 한 가지는 필수 파일이 profile/NAME.extra에 나열될 수 있다는 것입니다.이렇게 하면 ISO 파일의 /simple-cdd에 추가됩니다., 그러나 설치 후에는 데비안 자체 파일 시스템에 이 파일이 필요합니다.

답변1

질문 2번의 경우 *.deb패키지를 생성하여 Simple-CDD에 포함할 수 있습니다. 단순히 파일을 배포하거나 스크립트를 사용하여 파일을 생성하는 대신 이 방법을 선호하는 경우 이러한 파일은 패키지에 의해 "소유"되기 때문입니다. 이는 당신이 dpkg -S $file그것이 존재하는 이유를 이해할 수 있고 이해할 수 있음을 의미합니다.

참고: *.debSimple-CDD에 패키지를 추가하는 방법에 대한 지침으로 이 답변을 업데이트하는 것을 고려하십시오.

이를 설정하는 기본 방법은 을 사용하는 것이지만 , 이와 같은 간단한 파일 배포와 같은 사소한 경우에는 더 쉽다는 것을 dh_make알았습니다 .cpack

  1. 배포할 파일을 디렉터리에 수집합니다. 디렉토리 구조를 유지하는 것이 좋습니다. 이에 관련된 모든 내용을 살펴볼 것이므로 .배포를 원할 경우 /etc/myconfig에 복사하세요 ./etc/myconfig.

  2. ./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해당 행을 삭제할 수 있습니다.

  1. 패키지 구축
$ mkdir build && cd build
$ cmake ..
$ cpack

*.deb빌드 디렉터리에서 파일을 찾을 수 있습니다. 이것이 Simple-CDD에 포함하려는 내용입니다.

  1. 패키지 확인

이것을 실행하세요:

$ dpkg --contents *.deb

포함하려는 모든 파일이 표시되어야 합니다. 치수도 의미가 있어야 합니다. 설치한 다음 dpkg -i *.deb대상을 확인하여 모든 것이 괜찮은지 확인할 수도 있습니다.

답변2

Simple-CDD를 사용하여 CD에 추가 파일을 전송하는 방법을 알아냈습니다. 이제 일종의 아카이브(적절한 패키지도 포함)를 보내고 추출하여 사용할 수 있습니다 /target.프로필설치 후 스크립트올바른 장소에 넣으십시오.

모든 옵션을 제공할 필요는 없으며 설치를 수행하는 사용자로부터 얻고 싶은 옵션만 제공하면 됩니다.

관련 정보