macos下优秀的软件包管理工具 macport 和brew 安装软件后他们的安装路径是有区别的, macport包管理工具的 sudo port install xxx安装的软件的路径一般位于 /opt/local路径下的 bin, include, lib, share 文件夹内 ,而 通过brew install xxx 安装后的软件的路径一般位于**/usr/local/Cellar/xxx/版本号/ ,**了解这点对于我们正确使用包管理工具很重要。 下面我们就以 使用sudo port install m4 和brew install m4 安装这个软件包后他们的路径来说明区别。
macport软件包管理工具
查找可用软件包: port search m4
安装软件: sudo port install m4
当我们使用port安装了 同一个软件的多个软件包时,我们通过port select --set 默认版本 安装版本 来设置默认的生效软件版本,如将python版本设置为3.12版本**:**port select --set python python312
macport包管理工具的软件包都位于**/opt/local/var/macports/software/文件夹下, 安装后的文件默认都存储于公共的 /opt/local**/bin 等文件夹下。
从上图中我们可以得知,我们使用sudo port install m4 安装的这个m4软件包安装后的主要文件路径信息如下:
/opt
└── local
├── bin
│ └── gm4
├── libexec
│ └── gnubin
│ ├── m4 -> /opt/local/bin/gm4
│ └── man
│ └── man1
│ └── m4.1.gz -> /opt/local/share/man/man1/gm4.1.gz
└── share
通过上面的路径信息我们可以看出, 我们通过port安装的m4软件包安装后不需要单独设置PATH即可运行,因为gm4 这个可执行文件默认位于公共的路径/opt/local/bin/ 中, 当然,如果我们要执行m4的话还是需要将路径 /opt/local/libexec/gnubin 添加到系统的PATH变量中,既:
bash
echo 'export PATH="/opt/local/libexec/gnubin:$PATH"' >> ~/.zshrc
brew包管理工具
查找软件包: brew search m4
安装软件包: brew install m4
当我们使用brew安装了 同一个软件的多个软件包时, 我们可以通过 brew link xxx 来让brew帮我们创建默认的软件包的软连接。
brew安装的软件包,可以通过 brew info xxx 来查看当前安装的软件的信息,包含路径信息等, 如:
从上图中我们可以看出 brew 安装的软件包的路径相对于port 更直观一些, 因为他使用软件包的名称和版本作为文件夹来单独存储软件包的文件信息 。 同时brew会自动帮我们创建一个当前软件的默认版本的软链接到 /usr/local/opt/xxx , 如: /usr/local/opt/m4 自动帮我们链接到了 /usr/local/Cellar/m4/1.4.19 文件夹下,这样我们在配置环境变量的时候就不用带版本号,版本就由brew来帮我们管理
对于这种路径,我们在使用的时候就需要手动配置一下对应的路径到我们的系统环境变量中。