xuanfour / xuanfour.github.io

blog
0 stars 0 forks source link

| 轩的博客 #15

Open xuanfour opened 5 years ago

xuanfour commented 5 years ago

https://blog.wozouwokan.com/2019/03/22/2019-03-22-macports/

1 安装 MacPorts 1.1 安装 XCode XCode 是由苹果公司提供的开发包,它包含了编译器、代码库和其他用于开发 Mac OS X 应用的工具。 可以通过 Mac App Store 或 Apple developer website 下载 XCode,你也可以在网上搜索相关资源。 注意:请确保你的 Mac OS X 版本安装了和它匹配的最新的 XCode,使用过期版本会造成 port 安装失败。 1.2 安装 XCode 命令行工具 xcode-select --install # 已经安装命令行工具的可以选择路径 sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer 1.3 许可 XCode sudo xcodebuild -license 1.4 安装 MacPorts 如果你使用的是 Mac OS X,你最好使用 Mac OS X Package Installer 来安装 MacPorts,除非你不想将 MacPorts 安装到它的默认目录(/opt/local/)。 1.4.1 Mac OS X Package Installer Mac OS X Package Installer 能自动安装 MacPorts,设置 shell environment,并且运行 selfupdate 命令来更新 ports tree 和 MacPorts base。 你可以从 MacPorts Download 下载最新的 MacPorts Installer。 下载完成后,直接双击 Package Installer 执行默认安装即可,安装完毕后,设置环境变量 export PATH=/opt/local/bin:/opt/local/sbin:$PATH 。 打开一个新的终端,执行: port version ,如果安装成功,则可以看见版本号,如果出现 command not found,可以尝试在这里 MacPorts and the Shell 查找原因。 2 使用 MacPorts MacPorts port 命令是与 MacPorts 交互的主要手段。它用于更新 Portfiles、MacPorts 基础部件,安装和管理 ports。 help帮助命令。如果给出操作名称,则显示该操作的简要说明,如果没有给出操作名称,则显示 port 命令使用方法的基本说明。 selfupdate该操作用于更新 MacPorts,该操作应该经常执行,来将本地的 ports tree 和全球 MacPorts ports 仓库同步以便你保持最新的 port 版本。同时它也会检查 MacPorts base,并及时更新它。 注意:selfupdate 操作只适用于 Mac OS X。如果你在其他平台运行 MacPorts,你需要通过 sync 操作来更新 ports tree,安装最新的 MarPorts 来更新当前 MarPorts base。 sudo port selfupdate - 更新当前 ports tree 和 MacPorts base。 sudo port -d selfupdate - Debug 模式更新,会显示更新详情。 sync同步 ports tree,但不检查 MacPorts base。 list列出给定的 ports 的当前有效版本,如果未给定 ports,则列出全部有效 ports。因为全部的列表很长,如果你知道某个 port 名称,最好使用 search 操作。 search该操作会搜索与给定名称或描述相匹配的结果。 info获取 port 详细信息:描述,维护者等等。 deps显示 port 的依赖包,这些依赖包需要在 Portfile 中明确列出才行。 variants该操作让你可以在安装 port 前检查它的不同变体。Variants 是 port 的作者提供一些参数,让 MacPorts 在安装过程中使用。 port variants nmap nmap has the variants: no_pcre: build without pcre support no_ssl: build without ssl support universal: Build for multiple architectures zenmap: build zenmap in addition to nmap install安装 port,如果该 port 有 variants,可以通过增加 variants 或者去除默认 variants 来进行安装。 # 普通安装 sudo port install nmap # 添加 variant 安装 sudo port install nmap +no_ssl # 去除 variant 安装 sudo port install fetchmail -ssl clean清理操作,用于删除 MacPorts 在 build 一个 port 时产生的临时文件。它还经常用于 fetch 操作失败后的清理崩溃了的文件。 uninstall卸载操作,卸载 port。 注意:要同时递归删除 port 所依赖的开发包,使用–follow-dependencies 标记。如果该开发包有其他开发包依赖于它,它将不会被删除。 sudo port uninstall --follow-dependencies vile 要在删除当前 port 前删除所有依赖于它的开发包,使用–follow-dependents。 sudo port uninstall --follow-dependents ncurses 如果要删除一个 port,但这个 port 又是其他 ports 所依赖的对象,那么 MacPorts 不会删除它,除非你先删除那些依赖于此包的开发包。你可以使用-f 参数来强制执行删除。但谨慎使用,除非你真的很确定你在做什么。 contents内容操作,显示某个 port 安装过的文件。 installed列出已安装 port。显示已安装的版本、变体和激活状态。使用 -v 参数显示该 port 是在哪个平台哪个 cpu 结构下 build 的。 outdated列出过期 port。使用该操作前先 selfupdate 或者 sync 一下,以便对比当前已安装 port 是否都是最新版本。 upgrade更新操作。当一个 Portfile 发生更新时,使用该命令来更新它对应的 port 及其依赖包。如果你只想更新 port,不想更新它的依赖包,那么可以使用 -n 参数,但记住,这样往往会有故障发生。 # 普通更新 sudo port upgrade gnome # 只更新 port,不更它的依赖包 sudo port -n upgrade gnome # 更新所有过期 port sudo port upgrade outdated upgrade 默认更新行为是下载新的版本并启用它,但不会删除旧的版本。如果你要更新新版本同时卸载旧版本,使用 -u 参数。 sudo port -u upgrade vile dependents列出所有依赖本包的开发包。 livecheck检查远程仓库该 port 是否有更新。 lint检查 Portfile 是否符合规范。 select在指定的分组,选择一个默认版本并创建链接。例如,python 可能被链接到 python 2.6。可用的 select 分组被安装在 ${prefix}/etc/select/ 的子目录中,使用 –summary 参数列出所有分组。要列出分组中的可用版本,使用 –list。查看当前分组选择的版本,使用 –show。要变更分组中选择的版本使用 –set。 port select --summary port select --show python port select --list python port select --set python python34 3 References 本文是我的学习笔记,内容参考了网上资源,为了方便自己查询使用,做了一些修改整理。 笔记内容摘录于下列文章,相应权利归属原作者,如有未列出的或有不妥,请联系我立即增补或删除。 http://www.cnblogs.com/ifantastic/p/3677066.html