确定包在机器之间更新/复制软件的文件
如何确定哪些文件包含应用程序(从源代码构建而不是从存储库构建),以便我可以复制它?
我从源代码构建了一个应用程序,但由于它需要构建的库与运行它的系统不兼容,我不得不在VM中构建它。 (我确信有一些方法可以维护两组不同的库,但我不知道如何)。
它不需要运行那些更新的库,所以我需要找出我需要复制的内容。
我想要捕获sudo make install
的输出,但这似乎不起作用。 我可以在整个系统上做一个文件差异,但必须有一个更简单的方法吗? 也许如果我将它打包成.deb或其他东西?
如何确定哪些文件包含应用程序(从源代码构建而不是从存储库构建),以便我可以复制它?
对于大多数情况,简单的解决方案是简单地使用checkinstall
,它将创建一个.deb文件,您不仅可以在其他(兼容的)系统上安装该文件,还可以卸载该软件包。
-
sudo apt-get install checkinstall -y
- 完成
make
,运行checkinstall
而不是make install
- checkinstall将安装您的应用程序并在当前(源)文件夹中为您提供一个.deb文件,您可以使用
dpkg -i
在其他系统上复制和安装该文件 - 使用
dpkg -r application-name
可以随时删除应用程序(也应该从Synaptic运行)
如果您需要更多信息,请参阅此社区帮助页面和作者主页 。