Software-Installation
使用 checkinstall 代替 sudo cmake?
我一直在嘗試編譯 digikam,並作為編譯 jasper 所需的過程的一部分。Jasper 開發人員使用
cmake
,我想製作一個 .deb 包——實際上是在嘗試學習如何製作一個包來共享——因此嘗試這樣做(錯誤如下):sudo checkinstall -D "sudo cmake --build '/home/username/Downloads/jasper/buildlocal' --target install"
使用 sudo 執行的 Checkinstall 會返回“未找到”錯誤(第 4 行結束),儘管傳遞給它的命令成功執行:
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 以在此處製作包。所有命令的更多細節在我的部落格上執行,但我覺得這足以回答這個問題。
IIRC 您應該使用實際的 install 命令作為參數執行 checkinstall,而不是作為單引號參數。所以:
sudo checkinstall -D cmake --build '/home/username/Downloads/jasper/buildlocal' --target install
這在手冊頁上不是很清楚,但README有一些範例:
- 執行檢查安裝:
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