【问题标题】:Problems using debuild to upload a python/GTK program to Launchpad使用 debuild 将 python/GTK 程序上传到 Launchpad 的问题
【发布时间】:2020-12-03 00:04:53
【问题描述】:

[更新,我找到了解决办法,请看下面的答案]

我为 protonvpn 制作了一个 GUI 包装器,这是一个用于 Linux 的 cmd 程序。 dpkg -b 得到我 ProtonVPNgui.deb,效果很好。但是,我使用debuild -S -sa 将其上传到Launchpad 时遇到问题。

  1. 照原样,一旦使用dput 上传,它就不会构建,参见。 error msg

  2. 我尝试使用debuild -i -us -uc -b 构建一个用于本地测试的 .deb 文件,但它返回:

    dpkg-genchanges: error: binary build with no binary artifacts found; cannot distribute

有什么想法吗?这整个过程让我发疯。 (我用这个tar.gz

【问题讨论】:

    标签: python package debian dpkg launchpad


    【解决方案1】:

    我自己想通了。在本地创建一个 .deb 包进行测试并将项目上传到 Launchchpad:

    1. 创建启动板用户account

    2. 使用包管理器安装 dh-python

    3. 创建包源目录

      mkdir myscript-0.1

    4. 将您的 python3 脚本(或下面的示例脚本)复制到源目录(不要使用 !/usr/bin/python,使用 !/usr/bin/python3!/usr/bin/python2 并在下面进行相应编辑)

      cp ~/myscript myscript-0.1

      cd myscript-0.1

      示例脚本:

      #!/usr/bin/python3
      
      if __name__ == '__main__':
          print("Hello world")
      
    5. 创建打包骨架(debian/*)

      dh_make -s --createorig

    6. 删除示例文件

      rm debian/*.ex debian/*.EX debian/README.*

    7. 添加最终的二进制文件以包含,例如获取文本 .mo 文件

      mkdir myscript-0.1/source

      echo debian/locales/es/LC_MESSAGES/base.mo > myscript-0.1/source/include-binaries

    8. 编辑 debian/控件

      将其内容替换为以下文本:

      Source: myscript
      Section: utils
      Priority: optional
      Maintainer: Name, 
      Build-Depends: debhelper (>= 9), python3, dh-python
      Standards-Version: 4.1.4
      X-Python3-Version: >= 3.2
      
      Package: myscript
      Architecture: all
      Depends: ${misc:Depends}, ${python3:Depends}
      Description: insert up to 60 chars description
       insert long description, indented with spaces
      
    9. debian/install 必须包含要安装的脚本(或几个,python,perl 等,还有用于开始菜单快捷方式的最终 .desktop 文件)以及目标目录,每个目录都在一行

      echo myscript usr/bin > debian/install

    10. 编辑 debian/规则

      将其内容替换为以下文本:

      #!/usr/bin/make -f
      
      %:
          dh $@ --with=python3
      

      注意:在 dh $@ 之前是一个制表符,而不是四个空格!

    11. 构建 .deb 包

      debuild -us -uc

      你会收到一些 Lintian 警告/错误,但你的包已经可以使用了:

      ../myscript_0.1-1_all.deb

    12. 准备上传到 Launchpad,在 -k 后插入你的 gdp 指纹

      debuild -S -sa -k12345ABC

    13. 上传到启动板

      dput ppa:[your ppa name]/ppa myscript_0.1-1_source.changes

    这是对askubuntu.com/399552 的更新。在您准备好之前,可能需要一些错误消息和谷歌搜索...... C.f. launchpad 的 ...orig.tar.gz 文件,用于完整项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-25
      • 2022-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多