macos - 通过 Homebrew 软件安装应用程序或安装 "normal"有什么区别?

标签 macos homebrew package-managers inkscape

比如说你想安装 Inkscape。您可以通过从 inkscape 网站下载应用程序或通过 Homebrew 下载来安装它。

两种方法的优缺点是什么?如果我通过 Homebrew 安装它,Inkscape 会像普通应用程序一样运行,例如它会显示在应用程序文件夹中吗?

最佳答案

homebrew(如 Macports)是一个包管理器。它允许您管理包(更新、删除等)。最重要的是, Homebrew 软件将在您的平台上编译应用程序。这对于端口尤其重要,例如来自 Linux。

homebrew 将使您对安装的内容、位置、要使用的编译属性等进行更大、更细粒度的控制。但这是以更复杂和需要了解命令行方式为代价的。

到目前为止,下载二进制文件并将其放入 Applications 文件夹更容易,而且通常工作正常。如果您不是开发人员并且不需要管理许多不同的工具,那么我建议您坚持使用二进制下载。但是,如果您是开发人员,如果您需要 Tex、ghostscript、ImageMagick 等工具,您很可能无法绕过包管理器。

也回答你的最后一个问题:不,应用程序不会自动显示在 Applications 文件夹中(至少 Macports 是这种情况)。如果需要,您必须自己创建一个符号链接(symbolic link),例如

$ ln -s /opt/local/bin/python /Applications/myPython

编辑:

@内德迪利

Your example above doesn't make a lot of sense. /opt/local/bin/python is not an app bundle in the OS X sense (rather, it is something you run from a shell command line) so why would you create a symlink to it in /Applications?



那是真实的。这只是作为(可以说是坏的)例子突然出现在我脑海中的第一件事。

Also, MacPorts does install app bundles into /Applications using the subfolder MacPorts



也是真的。但是包维护者有责任告诉 MacPorts 这样做(我认为......),所以不要指望它。我通过 MacPorts 安装了 Inkscape。这会安装一个需要 -g 的可运行文件使用 GUI 运行的选项(但我没有 X-Server ...)。所以在应用程序中安装应用程序包不走运。

@user2426316
简短的回答是肯定的,可以同时拥有已编译的二进制文件和应用程序包。更准确地说,我会安装一个或另一个。根据应用程序的编写方式,两个安装可能会以不可预见的方式相互交互。很可能两者都共享配置文件,因此甚至“知道”在另一个实例中所做的更改。但如果开发人员不小心,这种行为可能会导致覆盖。另一方面,他们可能会使用一组单独的配置文件,如果您花一些时间来配置应用程序,您将不得不在另一个实例中第二次这样做。

要考虑的另一点是,这两个实例可能会不时获得更新。您会始终保持实例同步吗?这甚至可能吗(也许没有包含相同更改的新应用程序包)?

总而言之,我看到了更多的麻烦,坦率地说没有任何好处(也许除了眼睛糖果)。而是创建一个脚本来运行二进制文件或符号链接(symbolic link),并为该文件分配一个精美的图标。

关于macos - 通过 Homebrew 软件安装应用程序或安装 "normal"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17265226/

相关文章:

java - Apple Java 源代码可用

ios - 内存管理目标 - C

ruby - 在 Ubuntu 上安装 Ruby 1.9.1?

java - 在 MacOS 上的 AdoptOpenJDK 上链接 JNA 库时出错

macos - Launchd 无法访问 Mac OS 钥匙串(keychain)

homebrew - Brew 更新失败 : untracked working tree files would be overwritten by merge

c++ - 为 Homebrew 软件构建 C++ 公式

javascript - JavaScript 的依赖管理和构建工具

homebrew - Homebrew 安装后尝试从终​​端运行 Python 3.10

c++ - 在 Mac Mavericks 上使用 Homebrew 安装 Armadillo