我正在使用启动板库管理器从我的源包构建包。
源包,我已经通过dput
我的 PPA 上传。
然后,Launchpad 继续构建(已完成)和安装(失败)。
当我有Makefile
这个安装目标时:
install:
cp imcat /usr/bin/
它失败了Permission denied
所以我尝试了这个:
install:
sudo cp imcat /usr/bin/
由于未找到 sudo,因此仍然失败。这是构建日志:
dh binary
dh_update_autotools_config
dh_autoreconf
dh_auto_configure
install -d /<<PKGBUILDDIR>>/debian/.debhelper/generated/_source/home
dh_auto_build
make -j4 "INSTALL=install --strip-program=true"
make[1]: Entering directory '/<<PKGBUILDDIR>>'
cc -D_POSIX_C_SOURCE=2 -std=c99 -Wall -g -o imcat imcat.c -lm
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_test
rm -fr -- /tmp/dh-xdg-rundir-U4Jl8XPG
create-stamp debian/debhelper-build-stamp
dh_prep
rm -f -- debian/imcat.substvars
rm -fr -- debian/.debhelper/generated/imcat/ debian/imcat/ debian/tmp/
dh_auto_install --destdir=debian/imcat/
install -d /<<PKGBUILDDIR>>/debian/imcat
make -j4 install DESTDIR=/<<PKGBUILDDIR>>/debian/imcat AM_UPDATE_INFO_DIR=no "INSTALL=install --strip-program=true"
make[1]: Entering directory '/<<PKGBUILDDIR>>'
sudo cp imcat /usr/bin/
make[1]: sudo: No such file or directory
make[1]: *** [Makefile:11: install] Error 127
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_install: error: make -j4 install DESTDIR=/<<PKGBUILDDIR>>/debian/imcat AM_UPDATE_INFO_DIR=no "INSTALL=install --strip-program=true" returned exit code 2
make: *** [debian/rules:18: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
什么是正确的安装目标,以便dh
可以安装二进制文件?
这是我的 debian/规则
#!/usr/bin/make -f
# Output every command that modifies files on the build system.
export DH_VERBOSE = 1
# See FEATURE AREAS in dpkg-buildflags(1).
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
# See ENVIRONMENT in dpkg-buildflags(1).
# Package maintainers to append CFLAGS.
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
# Package maintainers to append LDFLAGS.
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
%:
dh $@
答案1
解决方案是使用DESTDIR
环境变量和install
实用程序,如下所示:
install: imcat
install -d ${DESTDIR}/usr/bin
install -m 755 imcat ${DESTDIR}/usr/bin/
uninstall:
sudo rm -f ${DESTDIR}/usr/bin/imcat