debian/ubuntu.deb包实用程序

debpkgr的Python项目详细描述


DEBPKGR

debian/ubuntu打包和存储库实用程序的纯python实现。

允许在 非Debian系统,在没有提供典型系统的情况下 公用设施(如apt)。

示例

检查包装

fromdebpkgr.debpkgimportDebPkgpkg=DebPkg.from_file('/path/to/foo.deb')print(pkg.name)print(pkg.nevra)print(pkg.md5sum)print(pkg.package)

创建回购

fromdebpkgr.aptrepoimportcreate_reponame='test_repo_foo'arches=['amd64','i386']description='Apt repository for Test Repo Foo'files=[]forroot,_,flinos.walk(temp_dir):forfinfl:iff.endswith('.deb'):files.append(os.path.join(root,f))repo=create_repo(self.new_repo_dir,files,name=name,arches=arches,desc=description)

签名支持

可以使用包装脚本对存储库元数据进行签名/ 围绕gpg或另一个gpg签名工具(如[hardware security module](https://en.wikipedia.org/wiki/Hardware_security_module)执行。

为此,您需要将signoptions对象传递到较低级别 aptrepo将其分类为gpg\u符号选项参数:

gpg_sign_options=SignOptions(cmd="/usr/local/bin/sign.sh",key_id="45BA0816")repo=AptRepo(repo_dir,repo_name,gpg_sign_options=gpg_sign_options)

提供的sign命令必须是可执行的。

它将提供要签名的版本文件的路径,并且 应在与 发布文件。

此外,sign命令将在以下环境中传递 变量:

  • gpg\u命令
  • gpg_key_id(如果在配置文件中指定的话)
  • GPG存储库名称
  • gpg_dist

sign命令可以根据存储库名称决定要使用的密钥id 或者正在签名的dist。

使用gpg的最小符号命令可以是:

#!/bin/bash -e
KEYID=${GPG_KEY_ID:-45BA0816}

gpg --homedir /var/lib/debpkgr/gpg-home \
    --detach-sign --default-key $KEYID\
    --armor --output ${1}.gpg ${1}

您可以导入这样的无密码GPG密钥:

mkdir /var/lib/debpkgr/gpg-home
chmod 0700 /var/lib/debpkgr/gpg-home
gpg --homedir /var/lib/debpkgr/gpg-home --import <path-to-secret-keys>

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaBridge errno=10054被Remotehost关闭   javafx如何在每次调用方法中的变量时更新它?(爪哇)   java mod_群集在发现后未平衡负载   Java软件编辑器/语法高亮   java为什么不能强制转换数组的结果。asList()到ArrayList?   java HIBERNATE:无法使用HIBERNATE从MySQL中提取数据   java在Google地图片段上添加布局   java在AbstractTableModel中执行setValueAt之前,我如何做一些事情?   java在整个Tomcat运行时保存变量   java如何在Thymeleaf模板中获取环境变量的值?   java Selenium Chrome驱动程序针对属性的标签   java正则表达式捕获未知数量的重复组