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第三方库


热门话题
box api如何使用box Java SDK从图像文件中获取特定大小的缩略图?   java无法从JNA使用python cffi调用DLL中定义的函数   java在linux中通过Jar文件发送电子邮件   使用lucene+hibernate的java查询时间连接   java在带有循环的arrayList中设置值   java为什么ImageReader返回错误的BuffereImage?   c#TCP数据有时接收顺序错误且不完整   java如果发生IOException,该InputStream是否会正确关闭?   tcp在Java中,如果不使用IP,如何获取MAC地址?   java从批处理方法调用中收集结果   java Android Studio RecyclerView在滚动图像时严重滞后   java如何使用OOP进行retrofti调用?   记录FileAppender在Java中如何工作   与S3连接期间收到java异常   java找不到JNDI资源Tomcat 7