![确定软件包更新哪些文件/在机器之间复制软件](https://linux22.com/image/818389/%E7%A1%AE%E5%AE%9A%E8%BD%AF%E4%BB%B6%E5%8C%85%E6%9B%B4%E6%96%B0%E5%93%AA%E4%BA%9B%E6%96%87%E4%BB%B6%2F%E5%9C%A8%E6%9C%BA%E5%99%A8%E4%B9%8B%E9%97%B4%E5%A4%8D%E5%88%B6%E8%BD%AF%E4%BB%B6.png)
我如何确定哪些文件组成了一个应用程序(从源代码构建,而不是从存储库构建),以便我可以复制它?
我从源代码构建了一个应用程序,但由于它需要构建的库与运行它的系统不兼容,所以我必须在虚拟机中构建它。(我确信有某种方法可以维护两组不同的库,但我不知道如何)。
它不需要那些更新的库来运行,所以我需要找出我需要复制的内容。
我考虑过捕获 的输出sudo make install
,但似乎行不通。我可以对整个系统的文件进行差异分析,但一定有更简单的方法吗?也许我可以将其打包成 .deb 或类似的东西?
答案1
我如何确定哪些文件组成了一个应用程序(从源代码构建,而不是从存储库构建),以便我可以复制它?
大多数情况下,简单的解决方案就是使用checkinstall
,它将创建一个 .deb 文件,您不仅可以将其安装在其他(兼容)系统上,还允许您卸载该软件包。
sudo apt-get install checkinstall -y
- 完成后
make
,运行checkinstall
而不是make install
- 检查安装将安装你的应用程序,并在当前(源)文件夹中为你提供一个 .deb 文件,你可以简单地将其复制并安装在其他系统上
dpkg -i
dpkg -r application-name
可随时使用来删除应用程序(Synaptic 也支持)