我的具体案例:
我正在尝试用c ++实现一个迷宫求解器,它接收一个灰度图像,并用解决的路径输出相同的图像。我在网上看了一下,发现我应该使用OpenCV,这也需要其他软件包。我希望我的程序的用户能够运行程序,该程序检查是否已安装这些程序包。如果未安装所需的软件包,我希望能够在机器上安装这些程序(Linux)。我的程序的其余部分将使用这些包来解决迷宫。
一般情况:
如何创建一个程序,在执行时,为以后使用的程序安装所需的程序包?这可能吗?这叫什么(如果它存在)所以我可以阅读它?最后,对于一年级的c ++学生来说,这会非常困难吗?
感谢您的回复,我试图自己寻找答案,但找不到答案。
答案 0 :(得分:3)
在Linux上,这个问题通常由所谓的包管理器解决。
不同的发行版使用不同的包管理器。例如,基于Debian的发行版使用Debian包(.deb
文件)。 RedHat和它的子项目Fedora使用RPM包(.rpm
文件)。根据您的发行版,您可以为项目创建适当的包,并在包的控制文件中列出它的依赖项。
如果您使用的是基于Debian的发行版,我强烈推荐Aptly。它将允许您创建本地回购,镜像现有回购,并在亚马逊S3上托管您自己的回购。
我还应该提到Docker。 Docker也可以被认为是各种各样的包管理器。它基本上允许您的应用程序随身携带其操作系统配置,这将允许您将应用程序部署到几乎任何docker将运行的地方。如果你绑定相机硬件可能会有一些限制,但它绝对值得考虑。此外,使用Docker Hub,您也可以自由地将其部署到所有同学/学生机器上。
希望有所帮助!