ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

asdf 如何把工具版本设为 system 回退到系统自带版本

asdf 如何把工具版本设为 system 回退到系统自带版本 asdf 如何把工具版本设为 system 回退到系统自带版本【免费下载链接】asdfExtendable version manager with support for Ruby, Node.js, Elixir, Erlang more项目地址: https://gitcode.com/GitHub_Trending/as/asdf在 asdf可扩展的工具版本管理器中项目目录下的.tool-versions文件声明各个工具使用 asdf 安装的哪个版本。但有些工具系统本身已经安装过——python是文档中给出的常见例子。当你不希望在某个目录或家目录下所有目录让 asdf 接管某个工具而是直接用系统自带的那一份时可以把该工具的版本设为特殊值systemasdf 就会把执行 passthrough 给系统上不由 asdf 管理的版本。前提条件getting-started 指南asdf 核心已安装shims 目录默认~/.asdf/shims已在$PATH中对应的工具插件已通过asdf plugin add添加因为 asdf 通过插件管理具体工具。下面以python为例说明设置system的三种方式和验证方法。system在 asdf 中的含义docs/manage/configuration.md 说明.tool-versions的版本字段支持以下格式10.15.0— 具体版本号ref:v1.0.2-a或ref:39cb398vb39— 从 GitHub 下载并编译的 tag/commit/branchpath:~/src/elixir— 指向自定义编译版本的路径system— 让 asdf passthrough 到系统上不由 asdf 管理的工具版本多个版本可以空格分隔写在同一行按顺序依次尝试。configuration 文档给出的示例python 3.7.2 2.7.15 system含义是优先用 Python3.7.2回退到2.7.15最后回退到系统的 Python。FAQ 还补充了两点system是允许出现在.tool-versions文件中的特殊值它实际上等于在给定目录里为这个工具禁用了 asdf同一个system在不同机器上可能解析到不同版本。用asdf set设置 system 版本主路径在希望生效的目录下执行asdf set name system # asdf set python systemasdf set会把版本写入当前目录的.tool-versions文件文件不存在时自动创建。versions 文档说它纯粹是方便起见等价于执行echo tool version .tool-versions。两个位置参数控制写入位置命令写入位置asdf set python system当前目录的.tool-versions不存在则创建asdf set -u python system$HOME/.tool-versions-u/--home不存在则创建asdf set -p python system最近的父目录中已存在的.tool-versions-p/--parent-p要求父目录里已经有.tool-versions文件文档原文是 set in existing.tool-versionsfile in a parent dir没有该文件时会报错。想让家目录下所有目录默认使用系统版本时用-u写入$HOME/.tool-versionsasdf set -u python system按 getting-started 指南家目录下的任意目录都会使用这个版本除非某个目录在自己的.tool-versions里另设了其他版本。直接编辑.tool-versions等效方式.tool-versions是纯文本文件每行一个工具支持注释。直接加入或修改对应行即可python system声明版本的.tool-versions文件对其所在目录及所有子目录生效。项目里如果已经声明了其他工具只需改动python这一行不要动其他工具的行。版本解析时机asdf 在执行它管理的工具时才做查找从当前目录开始逐级向上到$HOME寻找.tool-versions。getting-started 指南同时警告如果某个受管工具在任何.tool-versions中都未列出执行该工具会报错可以用asdf current观察哪些工具解析不到。用环境变量在当前会话临时回退到 system可选分支不想改文件、只在当前 shell 会话试用的话使用ASDF_${TOOL}_VERSION模式的环境变量。它的取值格式与.tool-versions相同一旦设置会覆盖该工具在任何.tool-versions文件中声明的版本。文档示例Elixirexport ASDF_ELIXIR_VERSION1.18.1让当前 shell 会话使用 Elixir1.18.1。同样地回退到系统版本可以写export ASDF_PYTHON_VERSIONsystem也可以只在单条命令前缀中临时生效文档示例ASDF_ELIXIR_VERSION1.4.0 mix test文档明确提醒因为这是环境变量它只在设置它的会话中生效其他正在运行的 shell 会话仍然使用.tool-versions里的版本。验证切换是否生效先运行asdf current # 或 asdf current python它会显示每个工具当前解析到的版本以及决定该版本的.tool-versions文件位置。versions 文档中的示例输出文档示例非固定预期结果# asdf current # erlang 17.3 /Users/kim/.tool-versions # nodejs 6.11.5 /Users/kim/cool-node-project/.tool-versions再直接执行该工具本身system的定义就是 passthrough 到系统上不由 asdf 管理的版本因此此时运行python应执行系统自带的那一份。限制与如何改回system是特殊值它允许写在.tool-versions里但可能在不同机器上解析到不同版本FAQ。目录作用域某目录的.tool-versions只影响该目录及其子目录$HOME/.tool-versions是家目录下所有目录的默认值会被更深层目录的声明覆盖。改回 asdf 管理的版本用asdf set写回一个具体版本例如asdf set python 3.7.2或直接编辑.tool-versions中对应行。确认不再需要某个 asdf 安装版本后可以用asdf uninstall name version如asdf uninstall erlang 17.3清理该命令会移除 asdf 安装的对应版本versions 文档执行前确认该版本确实不再被使用。相关文档docs/manage/versions.md、docs/manage/configuration.md、docs/guide/getting-started.md、docs/more/faq.md。【免费下载链接】asdfExtendable version manager with support for Ruby, Node.js, Elixir, Erlang more项目地址: https://gitcode.com/GitHub_Trending/as/asdf创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表