大家好,又见面了,我是你们的朋友全栈君。 在macOS上管理软件包,MacPorts和homebrew是不错的选择。但有网友说MacPorts倾向于在自己电脑上编译,而homebrew倾向于使用已经编译好的。这些暂且不论,但有一点,MacPorts是个老牌的工具,它支持的库确实比homebrew多,这让我不得不选择MacPorts.下面简单介绍下MacPorts
MacPorts官方文档:https://guide.macports.org/#reference.phases
1.MacPorts安装与卸载
1.1安装
只讲最简单的,从源代码安装和clone分支的安装方式请参考官网。
代码语言:javascript复制1.从App Store安装Xcode
2.在terminal执行
3.安装MacPorts安装包 https://distfiles.macports.org/MacPorts/MacPorts-2.3.3-10.10-Yosemite.pkg
1.2卸载
代码语言:javascript复制sudo port -fp uninstall installed
sudo rm -rf
/opt/local
/Applications/DarwinPorts
/Applications/MacPorts
/Library/LaunchDaemons/org.macports.*
/Library/Receipts/DarwinPorts*.pkg
/Library/Receipts/MacPorts*.pkg
/Library/StartupItems/DarwinPortsStartup
/Library/Tcl/darwinports1.0
/Library/Tcl/macports1.0
~/.macports
2.常用命令
MacPorts的使用格式通常为: [sudo] port [command] [options] [item] 如 sudo port install gcc MacPorts中将被管理的软件统称为port. 接下来说几个最常用的:
2.1 软件安装与卸载
代码语言:javascript复制port install # 安装软件,如sudo port install gcc. 注:可添加编译选项
port uninstall # 卸载软件,如sudo port uninstall gcc.
port clean # 删除临时文件,通常用于安装失败时。如果正常安装,系统会自动调用。
2.2 软件查询
代码语言:javascript复制port list # 输出可安装的软件
port installed # 输出已经安装的软件
port outdated # 输出版本过旧的软件
port search # 查询某个软件,如 port search gcc
选项如下: --name # 在软件名字中查找(默认开启)
--description, --long_description # 在软件介绍中查找(默认开启)
--line # 按行输出查询结果(每个软件的结果只占一行)
--glob # 使用模糊查找
--regex # 启用正则表达式
--case-sensitive # 启用大小写敏感查询
--exact # 启用精确查找
--homepage # 按官网网址查找
--category, --categories # 按类型查找
--variant, --variants # 按编译选项查找
--maintainer, --maintainer # 按软件维护者查找
--depends, --depends_build, --depends_extract, --depends_fetch, --depends_lib, --depends_run # 按依赖查找
port info # 查看详细软件介绍,如port info gcc.
port contents # 输出软件的所有内容,包括头文件、库等在系统中的安装位置。如port contents gcc.
port dependents # 查找软件依赖
port deps # 查看软件依赖库,如port deps apache2. 注:添加编译选项时可能会获得不同的依赖库
port variants # 查看软件编译选项,如port varians gcc.
2.3 软件更新
代码语言:javascript复制port selfupdate # 更新MacPorts和MacPorts管理的软件列表(即被管理的软件及其版本),如sudo selfupdate
port upgrade # 更新软件。写软件名时,只更新这个软件,如sudo port upgrade gcc.否则更新所有软件
port doctor # 检查MacPorts是否出问题及问题所在
port reclaim # 删除无用的文件和软件来释放空间
2.4 软件打包
代码语言:javascript复制port pkg # 打包软件为pkg格式,如sudo port pkg gcc。其他支持的格式为:dmg,mpkg,mdmg.
port work # 显示安装包路径。指定软件可获得某个软件的打包路径,如port work gcc。如无打好的包,则会输出路径
2.5 其他
代码语言:javascript复制port lint # 查看软件配置文件(portfile)是否合法,通常在用户手动修改软件配置文件后使用
3 MacPorts工作流程
MacPorts将软件的配置分为几个流程,然后将各个软件的配置写到各自的文件中,其中某些子流程视情况可以缺失。大致流程大致如下:
代码语言:javascript复制fetch # 从官网下载源代码或编译好的文件,并放到指定目录
checksum # 校验下载文件的正确性
extract # 解压下载的文件到指定目录
patch # 使用可选的patch文件配置源文件
configure # 配置软件
build # 编译软件
test # 测试软件
destroot # 将编译好的软件放到某个目录,这个功能可用于处理多个版本的软件
install # 将软件安装到指定目录,默认为/opt/local。注如之前使用过destroot,这一步会直接安装destroot的软件,否则可能会下载编译好的文件,这视这个软件的portfile而定
activate # 激活软件,激活之后才能会配置到软件列表中,默认在install后自动调用
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/190961.html原文链接:https://javaforall.cn