macos macport软件包管理工具 sudo port install xxx 安装的软件的路径 与 brew install xxx 软件安装路径总结

ops/2024/9/20 11:07:50/

macos下优秀的软件包管理工具 port>macportbrew 安装软件后他们的安装路径是有区别的, port>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 安装这个软件包后他们的路径来说明区别。

port>macport软件包管理工具

查找可用软件包: port search m4

安装软件: sudo port install m4

当我们使用port安装了 同一个软件的多个软件包时,我们通过 port select --set 默认版本 安装版本  来设置默认的生效软件版本,如将python版本设置为3.12版本: port select --set python python312

port>macport包管理工具的软件包都位于 /opt/local/var/port>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变量中,既:

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来帮我们管理

对于这种路径,我们在使用的时候就需要手动配置一下对应的路径到我们的系统环境变量中。 

总结: sudo port install xxx 安装的文件都位于公共目录 /opt/local/{bin,lib,include}等路径下,如果我们需要查看某个软件的安装文件信息,可通过/opt/local/var/port>macports/software/ 文件夹下软件包名称中的opt文件里面的路径信息查看。 brew安装的软件包信息就相对简单,我们直接通过brew info xxx即可查看软件包的安装路径和相关的配置信息。


http://www.ppmy.cn/ops/113362.html

相关文章

Flutter Error: Type ‘UnmodifiableUint8ListView‘ not found

问题描述 原本我在Mac开发的项目,现在win10运行时报如下错误: ../../../AppData/Local/Pub/Cache/hosted/pub.dev/win32-3.1.4/lib/src/guid.dart:31:9: Error: Type UnmodifiableUint8ListView not found. final UnmodifiableUint8ListView bytes; ^^…

python测试开发---js基础

JavaScript (JS) 是一种广泛用于前端开发的编程语言,其主要用于实现网页的动态交互功能。要掌握 JavaScript 的基础知识,主要需要理解以下几个核心概念: 1. 变量与数据类型 JavaScript 提供了不同的数据类型,并允许通过 var、le…

Kafka集群扩容(新增一台kafka节点)

kafka集群扩容、kafka topic迁移 现有环境 IP组件角色192.168.17.51kafka01broker1192.168.17.52kafka02broker2192.168.17.53kafka03broker3 扩容之后环境 IP组件角色192.168.17.51kafka01broker1192.168.17.52kafka02broker2192.168.17.53kafka03broker3192.168.17.54ka…

本地git仓库配置远程仓库的地址

在拉取(pull)代码之前,你需要确保你的本地Git仓库已经配置了远程仓库的地址。这通常是在你克隆(clone)仓库到本地时自动完成的,但如果你是在一个已经存在的本地目录中初始化Git仓库,或者你想要将…

计算机毕业设计污染物文献共享数据库管理系统网站开发与实现

计算机毕业设计:污染物文献共享数据库管理系统网站开发与实现 1. 项目背景 随着环境问题日益严峻,对污染物的研究变得尤为重要。然而,在学术界和工业界之间存在着信息孤岛现象,即大量的研究成果被分散在不同的数据…

2024年超好用的公司加密软件分享|8款企业加密防泄密软件推荐

在数字化时代,企业数据的安全性变得尤为重要。随着网络攻击和数据泄露事件的频发,企业需要采取有效的措施来保护敏感信息。加密软件作为企业数据保护的重要工具,能够有效防止数据泄露和未经授权的访问。本文将为您推荐8款2024年超好用的企业加…

机器学习文献|基于循环细胞因子特征,通过机器学习算法预测NSCLC免疫治疗结局

今天我们一起学习一篇最近发表在Journal for immunotherapy of cancer (IF 10.9)上的文章,Machine learning for prediction of immunotherapeutic outcome in non-small-cell lung cancer based on circulating cytokine signatures[基于循环…

【Linux:共享内存】

共享内存的概念: 操作系统通过页表将共享内存的起始虚拟地址映射到当前进程的地址空间中共享内存是由需要通信的双方进程之一来创建但该资源并不属于创建它的进程,而属于操作系统 共享内存可以在系统中存在多份,供不同个数,不同进…