Software-Installation

使用 checkinstall 代替 sudo cmake?

  • January 14, 2022

我一直在嘗試編譯 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

引用自:https://unix.stackexchange.com/questions/684651