2016-03-21 53 views
2

我的具体情况如何编写可以下载和安装很多软件包(C++)的程序?

我想实现在C迷宫求解++,它接受一个灰度图像和输出与解决路径相同的画面。我在网上查看,发现我应该使用OpenCV,它也需要其他包。我希望我的程序的用户能够运行该程序,该程序将检查这些程序包是否已安装。如果未安装所需的软件包,我希望能够在机器上安装这些程序(Linux)。我的程序的其余部分将使用这些软件包来解决迷宫问题。

一般情况

如何创建在执行时,安装所需的程序包的程序的程序,以供以后使用?这可能吗?这是什么叫(如果存在),所以我可以读它?最后,对于第一年级的C++学生来说这难道难度会很大吗?

感谢您的回复,我试图自己寻找答案,但找不到一个答案。

+0

为什么你想要?当然列出你需要的东西是足够的 - 适用于诸如'yum install A B C D E F'? –

+4

大多数基于Linux的发行版在他们的软件库中都有OpenCV,并且还具有完全的依赖关系跟踪功能。所以如果你安装了OpenCV开发包,那么所有需要的包都会自动安装。 –

+0

如果您真的需要自动执行此操作,请编写一些能够理解它的发行版,并运行相关的'yum/apt-get/rpm install' –

回答

3

在Linux上,这个问题通常由所谓的软件包管理器解决。

不同的发行版使用不同的包管理器。例如,基于Debian的发行版使用Debian软件包(.deb文件)。 RedHat和它的子项目Fedora使用RPM软件包(.rpm文件)。根据您的发行版,您可以为您的项目创建适当的软件包,并在软件包的控制文件中列出它的依赖项。

如果您使用的是基于Debian的发行版,我强烈建议您使用Aptly。它将允许您创建本地回购,反映现有回购,并在亚马逊的S3上托管您自己的回购。

我也应该提到Docker。 Docker也可以被认为是各种包管理器。它基本上允许您的应用程序随其运行其操作系统配置,这将允许您将应用程序部署到几乎任何泊坞员都可以运行的地方。如果您与相机硬件绑定,可能会有一些限制,但这绝对值得考虑。此外,使用Docker Hub,您可以自由地将其部署到您的所有同学/学生机器。

希望有帮助!

相关问题