automake가 _DATA 파일을 덮어쓰는 것을 방지하는 방법

automake가 _DATA 파일을 덮어쓰는 것을 방지하는 방법

Makefile.am에는 다음이 있습니다.

bin_PROGRAMS = sample
sample_SOURCES = main.cpp
sampleconfdir = $(sysconfdir)/sample
sampleconf_DATA = sample.cfg

설치 프로그램을 사용할 때마다 make installSample.cfg 파일을 덮어쓰게 됩니다. 파일이 이미 존재하는 경우 복사를 건너뛰도록 automake에 어떻게 지시합니까?

답변1

소프트웨어가 샘플 구성을 설치하고 사용자가 실제 설치에 사용하기 위해 이 구성을 복사하고 수정하도록 하는 것은 매우 일반적입니다. "사용자"란 말은누구나시스템 전체에 소프트웨어를 설치하는 로컬 관리자(루트)이든, $HOME시스템 내부 어딘가에 소프트웨어를 설치하는 권한 없는 사용자이든 관계없이 소프트웨어를 설치합니다.

예를 들어 샘플 구성 파일을 설치할 수 있습니다.

  1. 또는 아래에 있지만 sysconfdir파일 이름이 수정되었습니다(예: 접미사 포함 .example).
  2. examples별도의 디렉토리 입니다 docdir.

그런 다음 이 문서에서는 INSTALL사용자의 필요에 맞게 이러한 예제를 복사하고 수정하는 과정을 안내합니다.

이것의 장점은 새 버전의 소프트웨어를 설치하는 사용자가 구성 파일의 최신 예를 얻을 수 있다는 것입니다. 그런 다음 필요한 경우 새 파일을 기반으로 실제 구성을 업데이트할 수 있습니다.

새로운 구성 파일을 설치하지 마십시오.아니요예제를 설치할 때 구성 구문이나 해당 설정이 변경되면 사용자는 파일이 어떻게 생겼는지 모르기 때문에 혼란스러운 상태에 빠질 수 있습니다(유틸리티 설명서의 업그레이드 지침에 명시적으로 언급되지 않은 한). ).

관련 정보