在 dmg C++ 中运行 pkg
Run pkg within dmg C++
尝试在谷歌上搜索,但似乎找不到任何信息。
我需要通过代码执行一个存在于 dmg 文件中的 pkg 文件。原因是软件更新。我通过我的应用程序(这是一个dmg)下载更新并需要运行它。在Windows上,这非常简单:运行exe。无法弄清楚如何在Mac上实现这一目标。
就框架而言,我正在使用wxWidgets和cocoa(如果有帮助的话)。
我不知道
直接使用 cocoa API 执行此操作的方法,但您可以使用外部命令来执行此操作:使用 /usr/bin/hdiutil attach /path/to/image.dmg
挂载磁盘映像,然后使用 /usr/sbin/installer -package /Volumes/mountedvolume/installer.pkg -target /
之类的东西来安装软件包(有关更多信息和选项,请参阅man installer
)。请注意,如果包需要管理员权限才能安装,则需要以 root 身份运行 installer
命令。
编辑:要获取挂载卷的完整路径,您可能需要解析hdiutil
的输出。它看起来像这样,尽管它在很大程度上取决于磁盘映像的格式:
/dev/disk2 Apple_partition_scheme
/dev/disk2s1 Apple_partition_map
/dev/disk2s2 Apple_HFS /Volumes/mountedvolume
相关文章:
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 代码在main()中运行,但在函数中出现错误
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何在运行中期切换GTK CSS style_context
- 如何在MS Visual Studio 2019中运行QT UI
- 如何通过cpp程序运行shell脚本
- IPC使用多个管道和分支进程来运行Python程序
- 删除指向指针的指针是运行时错误吗
- 如何用参数值调用函数(仅在运行时已知)
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- c++中的指针和运行时错误
- 在C应用程序中运行C++(带有STL)函数
- 运行程序时出现问题
- 控制允许动态运行c++的并发操作数
- 在 dmg C++ 中运行 pkg