1

我正在为 mac 创建一个应用程序,该应用程序需要在 mac 上安装两个程序才能正常运行,所以我需要一些方法来检查程序是否已安装。这些是:

  • 系统定时器
  • 深圳

我已经在我的 Mac 上安装了它们:

sudo gem install system_timer
sudo gem install shenzhen

在终端。

该应用程序将在内部分发,我不能要求每个人在他们的机器上安装这两个程序,所以如果没有安装,我需要我的应用程序自动执行此操作。

我该怎么做呢?

任何帮助是极大的赞赏。

4

2 回答 2

1

您可以只使用popen运行 shell 命令which system_timerwhich shenzhen然后检查结果。

于 2013-09-24T10:53:13.593 回答
0

在理想情况下,您希望找到一种方法将必要的资源打包到您的应用程序包中,而不是要求您的用户授予您的应用程序根权限以让gem包管理器在全局范围内安装这些包。可悲的是,system_timer它有原生构建要求,并且shenzhen有很多依赖项,所以这可能不像它想象的那么容易。

假设您只想执行相当于sudo gem install ...我建议使用此处gem代码之类的提升权限执行的操作(请务必查看那里的 README 文件——这不是单行代码)以使用 root 权限调用它。这将使用当前推荐的特权提升 API,并将向用户显示用于输入密码的普通对话框。

于 2013-09-24T12:06:41.517 回答