构建Python项目的.deb失败-dpkg buildpackage正在尝试删除作为目录的文件?

构建Python项目的.deb失败-dpkg buildpackage正在尝试删除作为目录的文件?,python,debian,ubuntu-12.04,deb,dpkg,Python,Debian,Ubuntu 12.04,Deb,Dpkg,这是我第二次尝试创建一个deb文件——第一次是我使用FPM的一个C项目——虽然是一个不可接受的包,但它工作得很好。然而,这是一个Python项目(GNS3),我更愿意正确地执行它,因为如果我要执行它,它也可能是正确的。话虽如此,现在我还是接受一个有效的.deb文件 问题是:我一直在作为一个项目修改GNS3,我需要做的最后一步是将它重新打包到一个.deb文件中。我知道这是可以做到的,因为它是在Ubuntu repos中实现的,但我的研究告诉我,Debian的一个叫Erik Wenzel的人构建了d

这是我第二次尝试创建一个deb文件——第一次是我使用FPM的一个C项目——虽然是一个不可接受的包,但它工作得很好。然而,这是一个Python项目(GNS3),我更愿意正确地执行它,因为如果我要执行它,它也可能是正确的。话虽如此,现在我还是接受一个有效的.deb文件

问题是:我一直在作为一个项目修改GNS3,我需要做的最后一步是将它重新打包到一个.deb文件中。我知道这是可以做到的,因为它是在Ubuntu repos中实现的,但我的研究告诉我,Debian的一个叫Erik Wenzel的人构建了deb,他已经不在了——而GNS3的开发者显然专注于Windows,并且不具备打包它的最新知识(“据称”)-我最近问过他们,但还没有回音-如果我问过,我会将他们提供的任何信息添加到此问题中)

我尝试了各种不同的方法来获得debian软件包,但最后一种方法似乎是最有希望的。我曾经(从:):

给了我柏油球,然后试着:

dpkg-buildpackage -rfakeroot -uc -us
这没用。此输出失败(从末端剪断):

错误是正确的(?!)-这两个文件不是目录-它们是文本文件-它们似乎没有任何异常特征:

drwxr-xr-x 2 steved swdept 4096 Feb 27 16:57 ./
drwxr-xr-x 3 steved swdept 4096 Feb 27 16:57 ../
-rw-r--r-- 1 steved swdept 3146 Feb 26 15:00 baseconfig_sw.txt
-rw-r--r-- 1 steved swdept 257 Feb 26 15:00 baseconfig.txt
看来STDEB做得很好,但我不能肯定。它可能正在执行导致dpkg buildpackage失败的操作。我希望有人会看到这一点,然后说,“当然,这不会起作用——你需要做x和y,然后它就会建立起来。”。或者至少是“试试这个和这个”

如果我能做到这一点,那么我也能够将知识贡献给GNS3项目,这将是非常棒的

谢谢你的帮助

干杯


Steve

请勿在
/usr/local
中安装任何东西。如果你想打包一个已经有官方软件包的新版本的软件,不要尝试从头开始制作一个pakcage,而是修改现有的。

只要把它放在你的debian/rules文件
override\u dh_usrlocal:
中,这将阻止dh_usrlocal运行,我认为这实际上是给你带来问题的。我遇到了类似的情况,这样做对我很有帮助。

我没有改变原始源代码的安装路径,但我相信有人谈论过在GNS3论坛上移动它的安装位置。至于修改原始包,有没有正确的方法?我不是在做一个新版本,它更像是一个叉子。@Steve使用
dch--local
添加一个新的变更日志条目,并进行您需要的任何修改。我可能做错了,但我使用AR来解包deb,使用python setup.py--command packages=stdeb.command bdist_deb创建一个新的归档文件来替换data.tar.gz,然后用AR重新打包,但它似乎不再是dpkg的deb文件。我还没有机会深入研究它,但我走对了吗?Cheers@Steve完全错了。从
...
dh_python2 -O--buildsystem=python_distutils
dh_usrlocal -O--buildsystem=python_distutils
dh_usrlocal: debian/python-gns3/usr/local/share/examples/gns3/baseconfig.txt is not a directory
dh_usrlocal: debian/python-gns3/usr/local/share/examples/gns3/baseconfig_sw.txt is not a directory
rmdir: failed to remove `debian/python-gns3/usr/local/share/examples/gns3': Directory not empty
dh_usrlocal: rmdir debian/python-gns3/usr/local/share/examples/gns3 returned exit code 1
make: *** [binary] Error 25
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
drwxr-xr-x 2 steved swdept 4096 Feb 27 16:57 ./
drwxr-xr-x 3 steved swdept 4096 Feb 27 16:57 ../
-rw-r--r-- 1 steved swdept 3146 Feb 26 15:00 baseconfig_sw.txt
-rw-r--r-- 1 steved swdept 257 Feb 26 15:00 baseconfig.txt