systemd *.service 파일이 있고 CMake 빌드 시스템을 사용하여 설치하고 싶습니다.
~에 따르면무료 데스크탑 정책데비안은 이를 사용하여 In을 입력합니다 /lib/systemd/system
.Red Hat 정책이것들은 들어갑니다 /usr/lib/systemd/system
.
이것을 설정하는 CMake 기본 방법이 있습니까?
Gnu 설치 디렉토리당연히 systemd에 대한 경로를 제공하지 않습니다.
지금까지 내 솔루션은 다음과 같습니다.
option(USE_REDHAT_PATHS "Use Red Hat policy for install-paths" ON)
if ( ${USE_REDHAT_PATHS} )
set( _SYSTEMD_DIR "/usr/lib/systemd/system" )
else()
set( _SYSTEMD_DIR "/lib/systemd/system" )
endif()
install(FILES myservice.service DESTINATION ${_SYSTEMD_DIR})
작동하지만 사용자 측 구성이 필요합니다. A가 유용 CMAKE_INSTALL_SYSTEMD
할 수도 있습니다 .CMAKE_REDHAT
ExecuteProcess
호출을 사용하면 uname -v
도움이 될 수 있지만 가능한 모든 업스트림 릴리스를 지원하지 않으면 문제가 발생할 수 있는 경우가 많습니다.