是否可以在 postinst 中读取 CMAKE_INSTALL_PREFIX 变量的值?
Is it possible to read the value of CMAKE_INSTALL_PREFIX variable in postinst?
只是想问一下是否可以读取CMAKE_INSTALL_PREFIX variable in postinst脚本的值?目标是让 postinst
脚本读取 ${CMAKE_INSTALL_PREFIX}/share/myapp
文件夹中的文件,并根据读取的文件内容在 ${CMAKE_INSTALL_PREFIX}/etc/myapp
文件夹中生成文件。我想避免依赖绝对路径。
提前致谢!
编辑
从 postinst
调用 env
提供了很好的信息:
DPKG_MAINTSCRIPT_DEBUG=0
DPKG_COLORS=never
DPKG_MAINTSCRIPT_NAME=postinst
DPKG_MAINTSCRIPT_PACKAGE=myapp
DPKG_RUNNING_VERSION=1.19.0.5
DPKG_FRONTEND_LOCKED=true
DPKG_ROOT=
DPKG_MAINTSCRIPT_ARCH=armhf
DPKG_ADMINDIR=/var/lib/dpkg
DPKG_MAINTSCRIPT_PACKAGE_REFCOUNT=1
DPKG_ROOT
可能是我需要的。好像CMAKE_INSTALL_PREFIX
和postinst
没有关系。
一般来说,在执行时 postinst
没有 CMake 变量(它们绝对不会出现在 env
输出中)。所以,做你想做的事情的方法是使用 configure_file
函数 生成 你的 postinst
脚本(来自 postinst.in
文件)。在模板文件中,您可以引用 CMake 变量,因此呈现的脚本将包含 "hardcoded" 文字。这很正常。
但是,请考虑以下几点:
cpack
使用 CPACK_PACKAGING_INSTALL_PREFIX
变量
只是想问一下是否可以读取CMAKE_INSTALL_PREFIX variable in postinst脚本的值?目标是让 postinst
脚本读取 ${CMAKE_INSTALL_PREFIX}/share/myapp
文件夹中的文件,并根据读取的文件内容在 ${CMAKE_INSTALL_PREFIX}/etc/myapp
文件夹中生成文件。我想避免依赖绝对路径。
提前致谢!
编辑
从 postinst
调用 env
提供了很好的信息:
DPKG_MAINTSCRIPT_DEBUG=0
DPKG_COLORS=never
DPKG_MAINTSCRIPT_NAME=postinst
DPKG_MAINTSCRIPT_PACKAGE=myapp
DPKG_RUNNING_VERSION=1.19.0.5
DPKG_FRONTEND_LOCKED=true
DPKG_ROOT=
DPKG_MAINTSCRIPT_ARCH=armhf
DPKG_ADMINDIR=/var/lib/dpkg
DPKG_MAINTSCRIPT_PACKAGE_REFCOUNT=1
DPKG_ROOT
可能是我需要的。好像CMAKE_INSTALL_PREFIX
和postinst
没有关系。
一般来说,在执行时 postinst
没有 CMake 变量(它们绝对不会出现在 env
输出中)。所以,做你想做的事情的方法是使用 configure_file
函数 生成 你的 postinst
脚本(来自 postinst.in
文件)。在模板文件中,您可以引用 CMake 变量,因此呈现的脚本将包含 "hardcoded" 文字。这很正常。
但是,请考虑以下几点:
cpack
使用CPACK_PACKAGING_INSTALL_PREFIX
变量