我正在尝试在 Launchpad 中构建冰棒(我从 GitHub 克隆了存储库,并尝试使用此包配方构建它),但构建失败。
这是构建日志的相关部分
dpkg-buildpackage: info: source package popsicle
dpkg-buildpackage: info: source version 1.1.0-0~202008031810~ubuntu20.04.1
dpkg-buildpackage: info: source distribution focal
dpkg-source --before-build .
dpkg-buildpackage: info: host architecture amd64
fakeroot debian/rules clean
dh clean
debian/rules override_dh_auto_clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
make clean
make[2]: Entering directory '/<<PKGBUILDDIR>>'
cargo clean
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
if ! ischroot; then \
make vendor; \
fi
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_clean
debian/rules build
dh build
dh_update_autotools_config
dh_auto_configure
debian/rules override_dh_auto_build
make[1]: Entering directory '/<<PKGBUILDDIR>>'
env CARGO_HOME="$(pwd)/target/cargo" \
dh_auto_build
make -j1
make[2]: Entering directory '/<<PKGBUILDDIR>>'
tar pxf vendor.tar
tar: vendor.tar: Cannot open: No such file or directory
这是完整的构建日志。
但是,当我尝试在我的 Kubuntu 18.04 机器上构建它时,我得到了
name@pc:~/popsicle$ debuild -us -uc
dpkg-buildpackage -rfakeroot -us -uc -ui
dpkg-buildpackage: info: source package popsicle
dpkg-buildpackage: info: source version 1.1.0
dpkg-buildpackage: info: source distribution focal
dpkg-buildpackage: info: source changed by Ian Douglas Scott <[email protected]>
dpkg-source --before-build popsicle
fakeroot debian/rules clean
dh clean
debian/rules override_dh_auto_clean
make[1]: Entering directory '/home/archisman/popsicle'
make clean
make[2]: Entering directory '/home/archisman/popsicle'
cargo clean
make[2]: Leaving directory '/home/archisman/popsicle'
if ! ischroot; then \
make vendor; \
fi
make[2]: Entering directory '/home/archisman/popsicle'
mkdir -p .cargo
cargo vendor | head -n -1 > .cargo/config
Updating crates.io index
Downloading crates ...
Downloaded bitflags v1.2.1
并且构建继续进行。
如何在 Launchpad 中构建它?
正如 OMG!Ubuntu! 中的评论所指出的,Pop!OS PPA 的源代码包比 GitHub 中的代码大得多。在将源上传到 Launchpad 之前,开发人员很可能会使用 cargo 打包源中的所有依赖项。