我已经做了一些debian软件包,以缓解在新服务器上的configuration部署,并希望把它们放在SVN源代码pipe理。 问题是SVN为源树中的每个子目录创build一个.svn目录,所以我不能在源树“dpkg-deb –build”上构build包,因为“.svn”目录将包含在结果中包。 到目前为止,当我想要构build一个包时,我必须将目录导出到不同的地方并从那里构build。
有没有一种快速的方法来使'dpkg-deb –build'忽略.svn目录?
我的理解是,你不应该首先用dpkg-deb --build
创build一个debian包。 如果使用dpkg-buildpackage
,则不必担心包中包含的.svn目录。
参见: http : //raphaelhertzog.com/2010/12/17/do-not-build-a-debian-package-with-dpkg-b/
可能有一个更好的方法,但这里有一个我没有彻底testing:
使用dh_make
创build一个骨架debian包。 把你的文件放在debian
目录的上面。
编辑生成的dirs
文件,并把你要移动文件的path,例如:
/opt/mypackage /usr/local/bin
然后在你的rules
文件中,删除$(MAKE)代码,并将install:build部分设置为如下所示:
install: build dh_testdir dh_testroot dh_clean -k dh_installdirs # Copy files into staging area rsync --exclude .svn -a mypackage/ debian/tmp/opt/mypackage/
要排除要放在源代码包中的文件,您应该创build文件:
debian/source/options
并input你想传递给dpkg-source的选项,在你的情况下:
tar-ignore = ".svn/*"
看到男人的dpkg源。
这里值得logging一下,如果你打算使用dpkg-buildpackage
,那么它有一个-i
开关来忽略一些事情。 IE,使用-i.svn
忽略.svn目录。