我想用一个简单的脚本(/ usr / bin /中的my_fancy_script.sh)创建一个debian包,它执行必须首先安装的三个库的命令。
问题是,这三个依赖项仅作为tarball(.tar.gz)文件提供
显然,我无法在我的debian / control文件中添加库作为依赖项,因为它们不能在任何apt-repository中找到,但必须在客户端本身进行编译和安装。
创建以下debian-source-folder:
fancy_debian_package/
├── src/
├── debian/
├── changelog
├── control
└── postinst
└── usr/
└── bin/
└── my_fancy_script.sh <--- Executes commands which are installed by tpm2-* libraries
└── temporary/
├── tpm2-tss-1.3.0.tar.gz
├── tpm2-abrmd-1.3.0.tar.gz
└── tpm2-tools-3.0.3.tar.gz
├── LICENSE
└── README.md
我的debian / control文件目前看起来像这样:
Package: debian-package
Version: 0.1
Section: base
Priority: optional
Architecture: all
Essential: no
Depends: <list of dependencies needed to build the tpm2-* libraries>
Installed-Size: 1000
Maintainer: ...
Description: ...
我的debian / postinst文件目前看起来像这样:
# Change into /temporary/
cd /temporary/
# Unpack
tar axf tpm2-tss-1.3.0.tar.gz -C .
# Remove tarball
rm tpm2-tss-1.3.0.tar.gz
# Change into dir
cd tpm2-tss-1.3.0
# Configuration
CONFIG_SITE=$(pwd)/lib/default_config.site ./configure
# Install
make && make install
.
.
# continues with tpm2-abrmd and tpm2-tools
.
.
# remove /temporary/ after installation done
rm -rf /temporary/
要构建包,我执行:sudo dpkg-deb -b fancy_debian_package/ fancy_debian_package_all_0.1.deb
我觉得我的方法不是最好的,而且与官方方式有很大不同。在这些方法中,作者建议使用dh_make
命令。但是,如果您想要更改我不想要的现有tarball文件,那么这只是有意义的。我想创造自己的东西。