在构建 Debian 软件包时,我们使用 debian/mypackagename.install 文件来告诉 debhelper 打包工具将文件和文件夹复制到哪里。
问题是文件夹包含一个 .svn 文件夹,该文件夹被复制到包树中,最后进入目标机器!在构建包时是否有排除 .svn 文件夹的标准方法?
在构建 Debian 软件包时,我们使用 debian/mypackagename.install 文件来告诉 debhelper 打包工具将文件和文件夹复制到哪里。
问题是文件夹包含一个 .svn 文件夹,该文件夹被复制到包树中,最后进入目标机器!在构建包时是否有排除 .svn 文件夹的标准方法?
我不知道您的构建系统的详细信息如何,但要排除 .svn(CVS、.git 等),您可以使用以下-X
选项dh_install
:
$ dh_install -X .svn
debian/rules
或在文件中导出 DH_ALWAYS_EXCLUDE 变量:
$ cat debian/rules
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
# Uncomment this to turn on verbose mode.
# export DH_VERBOSE=1
export DH_ALWAYS_EXCLUDE=CVS:.svn
%:
dh $@
正如@JB_Nizet 正确写的那样,您可以svn export
用来获取没有所有 .svn 文件夹的目录。如果不能使用导出,可以使用find -name .svn -and -type d -exec rm -rf {} +
递归删除目录中的所有 .svn 文件夹。