linux pkg解压工具,osx – 如何解压缩和打包pkg文件?

包只是具有不同扩展名和指定文件层次结构的.xar文件。不幸的是,该文件层次结构的一部分是实际可安装文件的cpio.gz存档,通常这就是您要编辑的内容。还有一个Bom文件,包括该cpio归档文件内的信息,以及一个包含摘要信息的PackageInfo文件。

如果你真的只需要编辑一个信息文件,这很简单:

mkdir Foo

cd Foo

xar -xf ../Foo.pkg

# edit stuff

xar -cf ../Foo-new.pkg *

但是如果你需要编辑可安装的文件:

mkdir Foo

cd Foo

xar -xf ../Foo.pkg

cd foo.pkg

cat Payload | gunzip -dc |cpio -i

# edit Foo.app/*

rm Payload

find ./Foo.app | cpio -o | gzip -c > Payload

mkbom Foo.app Bom # or edit Bom

# edit PackageInfo

rm -rf Foo.app

cd ..

xar -cf ../Foo-new.pkg

我相信你可以得到mkbom(和lsbom)大多数linux发行版。 (如果你可以得到同上,这使事情更容易,但我不知道,这是几乎无处不在)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Kivy开发中,使用Buildozer工具打包APK文件时需要一个名为buildozer.spec的配置文件。buildozer.spec文件可以手动创建,也可以使用buildozer init命令自动生成。 手动创建buildozer.spec文件的方法如下: 1. 在应用程序的根目录下创建一个名为buildozer.spec的文件。 2. 在文件中添加以下内容: ``` [app] # (required) Title of your application title = My Application # (optional) Package name package.name = myapp # (optional) Package domain (needed for android/ios packaging) package.domain = org.test # (optional) Source code where the main.py live source.dir = . # (optional) Application versioning (method 1) version = 0.1 # (optional) Application versioning (method 2) # version.regex = __version__ = ['"](.*)['"] # version.filename = %(source.dir)s/main.py # (optional) Application versioning (method 3) # version.git = git describe --tags --long # version.git.branch = False # (optional) Application dependencies # comma separated e.g. requirements = sqlite3,kivy # requirements = kivy # (optional) Custom source folders for requirements # Sets custom source for any requirements with recipes # as pkg1=../my_repos/pkg1,pkg2=../my_repos/pkg2 # source.pkgs_dir = ../my_repos/ # (optional) Android specific # (optional) Minimum API required (21 by default) # android.minapi = 21 # (optional) Android specific # (optional) Target API to use, if different from minapi # android.api = 28 # (optional) Android specific # (optional) Path to a custom AndroidManifest.xml # android.manifest = ./android/AndroidManifest.xml # (optional) Android specific # (optional) Space separated list of Java .jar files to add to the libs dir # android.add_jars = foo.jar,bar.jar # (optional) Android specific # (optional) Space separated list of Java .aar files to add to the libs dir # android.add_aars = foo.aar,bar.aar # (optional) Android specific # (optional) Gradle dependencies to add (currently only supports # comma separated list of kv files) # android.gradle_dependencies = com.android.support:appcompat-v7:26.0.1 # (optional) Android specific # (optional) Android logcat filters to use # android.logcat_filters = *:S python:D # (optional) Android specific # (optional) Android additional libraries to copy into libs/armeabi # android.libs_armeabi = mylibs/armeabi/libsqlite3.so # (optional) Android specific # (optional) Android additional libraries to copy into libs/armeabi-v7a # android.libs_armeabi_v7a = mylibs/armeabi-v7a/libsqlite3.so # (optional) Android specific # (optional) Android additional libraries to copy into libs/x86 # android.libs_x86 = mylibs/x86/libsqlite3.so # (optional) Android specific # (optional) Android additional libraries to copy into libs/arm64-v8a # android.libs_arm64_v8a = mylibs/arm64-v8a/libsqlite3.so # (optional) Android specific # (optional) Add Java code to be used (can be copy/pasted) (must be valid Java) # android.add_java_to_build = # (optional) Android specific # (optional) Gradle repositories to include # android.gradle_repositories = mavenCentral() # (optional) Android specific # (optional) Force the use of a pre-built python # android.use_pure_python = False # (optional) iOS specific # ios.ipa = myapp.ipa # (optional) iOS specific # ios.codesign.allowed = mac # (optional) iOS specific # ios.codesign.p12 = myapp.p12 # (optional) iOS specific # ios.codesign.password = mypassword # (optional) iOS specific # ios.codesign.provisioning_profile = myapp.mobileprovision # (optional) iOS specific # ios.sdk = 10.1 # (optional) OSX specific # osx.python_version = 3.7.1 # (paths) Exclusions # comma separated filenames and regex values # exclude_patterns = __pycache__,*.pyc,.git,*venv*,.DS_Store,tests # (buildozer) Debugging options # log_level = 2 # warn_on_root = 1 ``` 3. 在文件中,可以根据自己的需要修改各个参数的值。 4. 保存buildozer.spec文件。 如果你想使用buildozer init命令自动生成buildozer.spec文件,在应用程序根目录下打开命令行窗口,输入以下命令: ``` buildozer init ``` 该命令会自动生成一个buildozer.spec文件,并根据你的Python环境和系统配置,自动设置各个参数的值。你可以在生成的buildozer.spec文件中修改各个参数的值以满足你的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值