这是我第二次尝试创建 deb 文件 - 第一次是我使用 FPM 的 C 项目 - 这工作得很好,尽管是一个不可接受的包 - 它工作正常。然而,这是一个 Python 项目 (GNS3),我更愿意正确地完成它,因为如果我要这样做 - 它也可能是正确的。话虽如此,现在我会接受一个有效的 .deb 文件。
问题:我一直在将 GNS3 修改为一个项目,我需要做的最后一步是将它重新打包成一个 .deb 文件。我知道这是可以做到的,因为它在 Ubuntu 存储库中,但我的研究让我了解到 Debian 的一个叫 Erik Wenzel 的人构建了 deb 并且他不再可用 - 而 GNS3 的开发人员显然专注于 Windows并且没有当前的知识来打包它(“据称”-我最近问过他们但还没有收到回复-如果我这样做了,我会将他们提供的任何信息添加到这个问题中)。
我尝试了各种不同的方法来获取 debian 软件包,但我尝试的最后一种方法似乎最有希望。我用过(来自:https ://pypi.python.org/pypi/stdeb ):
python setup.py --command-packages=stdeb.command bdist_deb
这给了我压缩包,然后尝试:
dpkg-buildpackage -rfakeroot -uc -us
这没有用。此输出失败(从末尾截断):
...
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
看来 STDEB 正在正确地发挥其作用——但我不能肯定地说。它可能正在做一些导致 dpkg-buildpackage 失败的事情。我希望有人会看到这个然后说,“当然那是行不通的——你需要做 x 和 y,然后它就会建立起来”。或者至少是“试试这个和这个”。
如果我能做到这一点,那么我也可以将知识贡献回 GNS3 项目,这将是很棒的。
任何帮助表示赞赏。
干杯
史蒂夫