我一直在尝试编译 digikam 并作为编译 jasper 所需过程的一部分。 Jasper 开发人员使用cmake
,我想制作一个 .deb 包 - 事实上是试图学习如何制作一个共享包 - 因此尝试这样做(错误如下):
sudo checkinstall -D "sudo cmake --build '/home/username/Downloads/jasper/buildlocal' --target install"
尽管传递给它的命令成功运行,但使用 sudo 运行 Checkinstall 仍返回“未找到”错误(第四行末尾):
Installing with sudo cmake --build '/home/username/Downloads/jasper/buildlocal' --target install...
========================= Installation results ===========================
/var/tmp/tmp.miGWYgiNzT/installscript.sh: 4: sudo cmake --build '/home/username/Downloads/jasper/buildlocal' --target install: not found
**** Installation failed. Aborting package creation.
Cleaning up...OK
Bye.
重复一下,命令
sudo cmake --build '/home/username/Downloads/jasper/buildlocal' --target install
是成功的,但无论sudo checkinstall
是sudo cmake
使用普通的 checkinstall 还是使用 sudo 都不起作用。
如何将 write 调用传递给 checkinstall 以在此处制作包。更多详情所有命令都运行在我的博客上,但我觉得这足以回答这个问题。
答案1
IIRC 您应该使用实际的安装命令作为参数运行 checkinstall,而不是作为单个带引号的参数。所以:
sudo checkinstall -D cmake --build '/home/username/Downloads/jasper/buildlocal' --target install
从联机帮助页来看这不是很清楚,但是自述文件有一些例子:
运行检查安装:
checkinstall
注意:如果您没有给 checkinstall 提供任何参数,它将运行“make install”。如果您提供参数,第一个非选项参数将用作安装命令。当安装命令不是“make install”而是其他命令(例如“make install_packages”或“setup”或其他命令)时,这很有用,即
checkinstall make install_packages checkinstall make modules_install checkinstall install.sh checkinstall setup checkinstall rpm -i my-package-1.0.i386-1.rpm