商业 Debian 打包

商业 Debian 打包

我正在向 Ubuntu 软件中心提交商业软件,我使用的打包格式是 Debian。我希望有人能告诉我如何创建一个 debian 软件包,以便在提交软件包时尽可能少地处理错误。打包商业 debian 软件包的方法(分步说明)是什么?

如果有帮助的话,软件包包含类似于如下的路径树:

usr/
usr/share
usr/share/APP-NAME
usr/share/APP-NAME/file.sh
usr/share/APP-NAME/icon.png
usr/share/APP-NAME/file.desktop
usr/bin
usr/bin/file.sh

答案1

  • muru 在您的其他问题中提到的链接是最好的开始:
    https://developer.ubuntu.com/en/publish/other-forms-of-submitting-apps/

  • 打包商业软件与免费软件几乎相同。只有一些区别,例如您只发布二进制 deb 包(没有源代码,没有公共 ppa)。因此 Debian 包的构建几乎相同(如果您要在本地构建它)

    如果您使用pbuilder或任何其他构建助手,它将默认运行名为的 QA 工具lintian。仔细检查日志,您将看到一些来自其中的消息。

    您可以随时针对最终的二进制 deb 重新运行它,这里有一个在 teamviewer 上运行的示例:

    $ lintian Downloads/teamviewer_10.0.41499_amd64.deb
    W: teamviewer: hardening-no-relro opt/teamviewer/tv_bin/RTlib/libQtCore.so.4
    W: teamviewer: hardening-no-relro opt/teamviewer/tv_bin/RTlib/libQtGui.so.4
    E: teamviewer: embedded-library opt/teamviewer/tv_bin/RTlib/libQtNetwork.so.4: openssl
    W: teamviewer: hardening-no-relro opt/teamviewer/tv_bin/RTlib/libQtNetwork.so.4
    E: teamviewer: embedded-library opt/teamviewer/tv_bin/RTlib/libQtWebKit.so.4: sqlite
    W: teamviewer: hardening-no-relro ... use --no-tag-display-limit to see all (or pipe to a file/program)
    E: teamviewer: embedded-library opt/teamviewer/tv_bin/TVGuiDelegate: libjsoncpp
    E: teamviewer: embedded-library ... use --no-tag-display-limit to see all (or pipe to a file/program)
    E: teamviewer: statically-linked-binary opt/teamviewer/tv_bin/wine/bin/wine-preloader
    E: teamviewer: changelog-file-missing-in-native-package
    E: teamviewer: no-copyright-file
    E: teamviewer: description-starts-with-package-name
    W: teamviewer: extended-description-line-too-long
    W: teamviewer: extended-description-line-too-long
    W: teamviewer: unknown-section non-free/internet
    E: teamviewer: dir-or-file-in-opt opt/teamviewer/
    E: teamviewer: dir-or-file-in-opt opt/teamviewer/config/
    E: teamviewer: dir-or-file-in-opt opt/teamviewer/doc/
    E: teamviewer: dir-or-file-in-opt ... use --no-tag-display-limit to see all (or pipe to a file/program)
    W: teamviewer: extra-license-file opt/teamviewer/doc/License.txt
    W: teamviewer: extra-license-file opt/teamviewer/tv_bin/wine/COPYING.LIB
    W: teamviewer: extra-license-file opt/teamviewer/tv_bin/wine/LICENSE
    W: teamviewer: extra-license-file ... use --no-tag-display-limit to see all (or pipe to a file/program)
    W: teamviewer: duplicate-font-file opt/teamviewer/tv_bin/wine/share/wine/fonts/marlett.ttf also in fonts-wine-development
    W: teamviewer: duplicate-font-file opt/teamviewer/tv_bin/wine/share/wine/fonts/symbol.ttf also in fonts-wine-development
    W: teamviewer: duplicate-font-file opt/teamviewer/tv_bin/wine/share/wine/fonts/tahoma.ttf also in fonts-wine-development
    W: teamviewer: duplicate-font-file ... use --no-tag-display-limit to see all (or pipe to a file/program)
    W: teamviewer: file-in-unusual-dir var/log/teamviewer
    W: teamviewer: binary-without-manpage usr/bin/teamviewer
    E: teamviewer: maintainer-script-does-not-check-for-existence-of-updatemenus postrm:22
    W: teamviewer: postrm-has-useless-call-to-update-menus
    W: teamviewer: script-not-executable opt/teamviewer/tv_bin/script/tvw_aux
    W: teamviewer: script-not-executable opt/teamviewer/tv_bin/script/tvw_config
    W: teamviewer: script-not-executable opt/teamviewer/tv_bin/script/tvw_daemon
    W: teamviewer: script-not-executable ... use --no-tag-display-limit to see all (or pipe to a file/program)
    W: teamviewer: executable-not-elf-or-script opt/teamviewer/tv_bin/RTlib/doc/Qt4/TeamViewerNote.txt
    W: teamviewer: executable-not-elf-or-script opt/teamviewer/tv_bin/RTlib/doc/Qt4/WEBKIT-LICENSE.LGPL
    W: teamviewer: maintainer-script-ignores-errors postinst
    W: teamviewer: maintainer-script-ignores-errors postrm
    W: teamviewer: maintainer-script-ignores-errors preinst
    W: teamviewer: maintainer-script-ignores-errors ... use --no-tag-display-limit to see all (or pipe to a file/program)
    E: teamviewer: shlib-with-non-pic-code opt/teamviewer/tv_bin/RTlib/libQtNetwork.so.4
    E: teamviewer: shlib-with-executable-bit opt/teamviewer/tv_bin/wine/lib/libwine.so.1.0 0755
    

相关内容