Ubuntu 14.04(64ビット)で.debのインストール中にターゲットシステムにディレクトリをコピーする

Ubuntu 14.04(64ビット)で.debのインストール中にターゲットシステムにディレクトリをコピーする

.debのインストール中に、ターゲット/opt/myProjectNameコンピュータのUbuntu 14.04(64ビット)パスにディレクトリ(一部のファイルを含む)をコピーしたいと思います。

.debCMakeLists.txt以下のように、インストール中にファイルを使用してターゲットコンピュータにファイルを正常にインストールしました。

INSTALL(FILES myShFile.sh   DESTINATION /opt/myProjectName)

ターゲットシステムのパスにあるディレクトリ(一部のファイルを含む)をコピーする方法/opt/myProjectName

答え1

Ubuntu 14.04のCMake 2.8はDIRECTORY署名をサポートしています。インストールコマンド、簡単に書くことができますinstall(DIRECTORY test/ DESTINATION /opt/myProjectName/test)

CMakeにはスタンドアロンのDebianパッケージジェネレータもあります(CPackDeb)。これはデプロイ用のdebパッケージを作成するのに非常に便利な方法ですが(ビルドするDebianホストさえありません)、公式のDebianデプロイメントパッケージングポリシーには全く準拠していません。

以下の内容がありますCMakeLists.txt

cmake_minimum_required(VERSION 2.8)
project(myProjectName)
install(FILES myShFile.sh DESTINATION /opt/myProjectName)
install(DIRECTORY test/ DESTINATION /opt/myProjectName/test)

set(CPACK_GENERATOR DEB)
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "you [email protected]")
include(CPack)

myProjectName-0.1.1-Linux.debこれで作成できます。

$ touch myShFile.sh
$ mkdir test
$ touch test/myTest
$ cmake .
-- The C compiler identification is GNU 4.8.2
-- The CXX compiler identification is GNU 4.8.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/yaegashi/cmake

$ make package
Run CPack packaging tool...
CPack: Create package using DEB
CPack: Install projects
CPack: - Run preinstall target for: myProjectName
CPack: - Install project: myProjectName
CPack: Create package
CPack: - package: /home/yaegashi/cmake/myProjectName-0.1.1-Linux.deb generated.

$ dpkg --contents myProjectName-0.1.1-Linux.deb 
drwxrwxr-x root/root         0 2015-07-04 03:43 ./opt/
drwxrwxr-x root/root         0 2015-07-04 03:43 ./opt/myProjectName/
-rw-r--r-- root/root         0 2015-07-04 03:36 ./opt/myProjectName/myShFile.sh
drwxr-xr-x root/root         0 2015-07-04 03:43 ./opt/myProjectName/test/
-rw-r--r-- root/root         0 2015-07-04 03:36 ./opt/myProjectName/test/myTest

$ dpkg --info myProjectName-0.1.1-Linux.deb 
 new debian package, version 2.0.
 size 728 bytes: control archive=328 bytes.
     190 bytes,     9 lines      control              
     128 bytes,     2 lines      md5sums              
 Package: myprojectname
 Version: 0.1.1
 Section: devel
 Priority: optional
 Architecture: amd64
 Installed-Size: 0
 Maintainer: you <[email protected]>
 Description: myProjectName built using CMake

関連情報