我正在为 mac 创建一个应用程序,该应用程序需要在 mac 上安装两个程序才能正常运行,所以我需要一些方法来检查程序是否已安装。这些是:
- 系统定时器
- 深圳
我已经在我的 Mac 上安装了它们:
sudo gem install system_timer
sudo gem install shenzhen
在终端。
该应用程序将在内部分发,我不能要求每个人在他们的机器上安装这两个程序,所以如果没有安装,我需要我的应用程序自动执行此操作。
我该怎么做呢?
任何帮助是极大的赞赏。
您可以只使用popen运行 shell 命令which system_timer
,which shenzhen
然后检查结果。
在理想情况下,您希望找到一种方法将必要的资源打包到您的应用程序包中,而不是要求您的用户授予您的应用程序根权限以让gem
包管理器在全局范围内安装这些包。可悲的是,system_timer
它有原生构建要求,并且shenzhen
有很多依赖项,所以这可能不像它想象的那么容易。
假设您只想执行相当于sudo gem install ...
我建议使用此处gem
代码之类的提升权限执行的操作(请务必查看那里的 README 文件——这不是单行代码)以使用 root 权限调用它。这将使用当前推荐的特权提升 API,并将向用户显示用于输入密码的普通对话框。