如果您的应用程序依赖于正在安装的其他应用程序,理想情况下您希望安装程序自动找到该依赖关系路径。在Windows上,您可以使用注册表,但是Mac / Linux呢?在这种特殊情况下,它是一个C ++应用程序,如果这会产生影响。
答案 0 :(得分:1)
如果您尝试通过Linux(apt,yum)上的任何常见程序包管理器分发应用程序,则可以将该应用程序添加为依赖项。
如果你沿着自定义安装脚本的路线走下去,你需要诉诸某种hackery。要么找出系统中正在使用的软件包管理器,并尝试使用它进行查询(如果没有软件包管理器安装了其他应用程序,则可能会失败)或尝试类似which required_app
的内容。
如果你想做的话,先去第一个。
答案 1 :(得分:1)
在Mac OS X中,如果您正在寻找捆绑在典型.app
捆绑包中的应用程序,则可以使用Spotlight使用命令行实用程序mdfind(1)
从其捆绑ID中查找它。例如,要查明是否已安装Firefox(以及在何处),请运行以下命令:
mdfind 'kMDItemCFBundleIdentifier == org.mozilla.firefox'
答案 2 :(得分:0)
通常,在UNIX系统上,您可以预期所有程序都驻留在$ PATH中,而不是分布在愚蠢命名和部分本地化目录的hodge-podge集合中。所以,基本上你不需要找到任何依赖路径 - 你只需通过execvp调用另一个“app”(程序),并且libc负责遍历$ PATH的条目并找到可执行文件。
在传统的UNIX模型中,您不检查安装程序中的任何内容,只是在运行时检查可执行文件是否可用(例如,可用)。
答案 3 :(得分:0)
Linux软件包管理器等同于Windows Installer。程序包管理器处理依赖性并进行安装(如果系统上尚不存在)。应用程序的依赖项信息存储在包文件中。每个发行版都有自己的Package Manager,尽管概念相同。
在线上有大量资源可用于有关软件包管理器的详细信息。但是,如果您想获得与Windows Installer相比的概述,请查看application management in GNU/Linux for Windows users。