如何防止`debuild`将`etc`文件夹移出配置的`--prefix`文件夹?

时间:2017-04-10 11:15:44

标签: ubuntu debian deb

我想构建一个Debian / Ubuntu软件包,在./configure' d --prefix下安装一个应用程序。

当我运行./configure --prefix=/opt/d-ph/my_app && make && sudo make install时,我最终得到以下文件夹结构:

/opt/d-ph/my_app
 |- bin/(my binaries)
 |- etc/(my configuration)
 |- include/
 |- lib/
 |- share/

但是当我使用以下debuild覆盖运行debian/rules时:

override_dh_auto_configure: 
    dh_auto_configure -- --prefix=/opt/d-ph/my_app

然后我最终得到以下包结构:

 |- /DEBIAN
 |- /etc/(my configuration)
 |- /opt/d-ph/my_app
     |- bin/(my binaries)
     |- include/
     |- lib/
     |- share/
 |- /share/

我不希望我的软件包在/etc根目录下安装其配置(即/etc文件夹)。即我希望配置驻留在--prefix选项指定的目录中。即我想要生成以下包结构:

|- /DEBIAN
|- /opt/d-ph/my_app
    |- bin/(my binaries)
    |- etc/(my configuration)
    |- include/
    |- lib/
    |- share/     
|- /share/

在准备程序包目录结构时,如何阻止debuildetc文件夹移出已配置的--prefix文件夹?

1 个答案:

答案 0 :(得分:0)

我最终覆盖了dh_installdeb构建步骤。我基本上还原了etc文件夹在配置的--prefix下的移动。

APP_PREFIX=/opt/d-ph/my_app
ETC_DIR_PATH=$(CURDIR)/debian/my_app/etc

(...)

override_dh_installdeb:
    dh_installdeb

    # move the /etc folder
    if [ -d $(ETC_DIR_PATH) ]; then mv $(ETC_DIR_PATH) $(CURDIR)/debian/my_app$(APP_PREFIX); fi

    # tell dpkg not to look for the etc files anymore
    > $(CURDIR)/debian/my_app/DEBIAN/conffiles

正如@tripleee在这个问题上所评论的那样,这样做可能并不好,所以这需要你自担风险。不过,它对我有用,而这一切对我来说都很重要(由此产生的.deb包仅供我个人使用)