我正在为mac创建一个应用程序,该应用程序需要在mac上安装两个程序才能正常运行,所以我需要一些方法来检查程序是否已安装。 这些是:
我已经将它们安装在我的Mac上:
sudo gem install system_timer
sudo gem install shenzhen
在终端。
该应用程序将在内部分发,我不能要求每个人在他们的计算机上安装这两个程序,因此如果没有安装,我需要我的应用程序自动执行此操作。
我将如何做到这一点?
非常感谢任何帮助。
答案 0 :(得分:1)
您可以使用popen运行shell命令which system_timer
和which shenzhen
,然后检查结果。
答案 1 :(得分:0)
在理想的世界中,您可能希望找到一种方法来在应用程序包中打包必要的资源,而不是要求您的用户授予您的应用程序root权限,以使gem
程序包管理器在全局安装程序包。遗憾的是,system_timer
具有本机构建要求,shenzhen
有一堆依赖项,所以这可能不是那么容易。
假设您只想做sudo gem install ...
的等效操作,我建议使用类似代码here的提升权限执行gem
(请务必查看README文件 - - 这不是一个单行的)用root权限调用它。这将使用当前推荐的权限提升API,并向用户显示正常的对话框以输入其密码。