当前位置: 首页 > article >正文

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

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变量中,既:

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/macports/software/ 文件夹下软件包名称中的opt文件里面的路径信息查看。 brew安装的软件包信息就相对简单,我们直接通过brew info xxx即可查看软件包的安装路径和相关的配置信息。


http://www.kler.cn/news/317264.html

相关文章:

  • 【android10】【binder】【3.向servicemanager注册服务】
  • 科研小白入门工具
  • 探究RAG技术在自然语言处理领域的未来发展
  • 数学建模 第二讲 - 初等建模
  • Linux C# Day4
  • Opencv图像预处理(三)
  • MapReduce基本原理
  • 探索以太坊:从基础到应用,解锁区块链技术的无限可能
  • 基于飞腾平台的OpenCV的编译与安装
  • 基向量和投影矩阵
  • 鸿蒙OpenHarmony【轻量系统内核通信机制(互斥锁)】子系统开发
  • 面试金典题9
  • SRS流媒体服务器在宝塔面板下的安装
  • 预计2030年全球GO电工钢市场规模将达到120.6亿美元
  • centos7安装docker DokcerCompose
  • <<编码>> 第 17 章 自动操作(2)--自动加法器 示例电路
  • 筛子排序(SieveSort) - 4
  • docker如何升级MySQL为最新版本
  • 在windows上使用vs code调试Rust程序
  • 安全审计与监控的核心作用!确保网络安全等级保护的有效性
  • 设计模式--外观模式
  • 软件测试实验室如何利用GB/T25000标准建立测试技术体系
  • SiteServer 学习笔记 Day09 STL语言
  • 知识库管理系统的未来趋势:从单一平台到生态系统
  • 全栈开发(二):springBoot3连接mysql数据库
  • 双指针算法专题(2)
  • python数学运算符
  • 【设计模式】Builder设计模式详解
  • 小柴冲刺软考中级嵌入式系统设计师系列一、计算机系统基础知识(6)可靠性与系统性能评测基础
  • 【Python报错已解决】AttributeError: ‘DataFrame‘ object has no attribute ‘append‘