为什么dh_usrlocal会抛出构建错误?

ian*_*215 25 build-error deb

我正在尝试为我的服务器编译deb包.当我去构建时,一切看起来都很好,直到它到达dh_usrlocal构建停止并返回错误.问题是我第一次尝试这个,我真的不知道在哪里寻找问题.

这是我终端的输出,我还包括我在输出底部运行的命令.

make[2]: Leaving directory `/home/ian/Desktop/scst-2.1.0/src'
make[1]: Leaving directory `/home/ian/Desktop/scst-2.1.0'
   dh_install
   dh_installdocs
   dh_installchangelogs
   dh_installexamples
   dh_installman
   dh_installcatalogs
   dh_installcron
   dh_installdebconf
   dh_installemacsen
   dh_installifupdown
   dh_installinfo
   dh_pysupport
   dh_installinit
   dh_installmenu
   dh_installmime
   dh_installmodules
   dh_installlogcheck
   dh_installlogrotate
   dh_installpam
   dh_installppp
   dh_installudev
   dh_installwm
   dh_installxfonts
   dh_bugfiles
   dh_lintian
   dh_gconf
   dh_icons
   dh_perl
   dh_usrlocal
dh_usrlocal: debian/scst/usr/local/include/scst/scst.h is not a directory
dh_usrlocal: debian/scst/usr/local/include/scst/scst_user.h is not a directory
dh_usrlocal: debian/scst/usr/local/include/scst/Module.symvers is not a directory
dh_usrlocal: debian/scst/usr/local/include/scst/scst_debug.h is not a directory
dh_usrlocal: debian/scst/usr/local/include/scst/scst_const.h is not a directory
dh_usrlocal: debian/scst/usr/local/include/scst/scst_sgv.h is not a directory
rmdir: failed to remove `debian/scst/usr/local/include/scst': Directory not empty
dh_usrlocal: rmdir debian/scst/usr/local/include/scst returned exit code 1
make: *** [binary] Error 1
dpkg-buildpackage: error: debian/rules binary gave error exit status 2
ian@vm01:~/Desktop/scst-2.1.0$ sudo dpkg-buildpackage -rfakeroot
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

elh*_*ɥןǝ 31

你应该跳过运行dh_usrlocal.要做到这一点,你只需将其添加到debian/rules:override_dh_usrlocal:

一般来说,如果您遇到特定目标的问题,只需在debian/rules中添加override_ {target}即可覆盖它.
例如,你有dh_icons的问题.你只需在debian/rules中添加它

override_dh_icons:
    {insert your processing commands or do nothing to skip it when building package}
Run Code Online (Sandbox Code Playgroud)


Mar*_*ton 5

一个适当的 Debian 包不允许在那里生成内容,但空目录。这就是为什么它抱怨它不能删除目录。它不希望文件在那里。您唯一可以拥有的是 /usr/local 中的目录,这就是 dh_usrlocal 尝试处理的内容,但您不应该拥有文件

用户只将文件放在 /usr/local/ 中。

此外,我认为如果您的目录路径中有 usr/local 名称,它也会导致错误,即使它不是正确的 usr/local。也可能导致问题的示例。我认为构建软件中的正则表达式寻找 usr/local。

/var/tmp/usr/local/
Run Code Online (Sandbox Code Playgroud)

我知道这是一篇旧帖子,但它在谷歌上排名第一,所以需要一个好的答案,以便人们快速解决这个问题。