macOS asdf 工具版本管理器

ops/2025/1/15 21:33:09/

一、区别于Homebrew

"asdf"和"Homebrew"都是用于管理软件包的工具,但它们的主要区别在于适用范围和管理的内容:

1.适用范围:

  • asdf:是一个通用的版本管理工具,可以用来管理多种不同的软件工具和语言的版本,例如编程语言(如Node.js、Python、Ruby)、数据库(如PostgreSQL、MySQL)、编辑器(如Vim、Emacs)等。
  • Homebrew:是针对 macOS操作系统的软件包管理器,主要用于安装和管理 macOS上的开源软件包,包括命令行工具、开发工具、应用程序等。

2.管理的内容:

  • asdf:主要用于管理不同软件工具和语言的版本,可以通过插件扩展来支持不同类型的软件包。每个软件包都有自己的插件,因此它们的版本管理是相互独立的。
  • Homebrew:专注于管理 macOS
    系统上的开源软件包,可以安装和更新命令行工具、库文件等,但不包括编程语言、数据库等其他类型的软件包。

总的来说,如果你需要管理多种不同类型的软件包,包括编程语言、数据库等,那么 asdf 可能更适合你。如果你只需要在 macOS 上安装和管理开源软件包,那么 Homebrew 可能更适合你。

二、如何安装使用asdf 工具版本管理器

可参照:asdf官网

1. 安装依赖

OS|PackageCommand
linux |Aptitudeapt install curl git
linux |DNFdnf install curl git
linux|Pacmanpacman -S curl git
linux |Zypperzypper install curl git
macOS | Homebrewbrew install coreutils curl git
macOS |Spackspack install coreutils curl git

2. 下载 asdf

Official Download

git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.0

Community Supported Download Methods
We highly recommend using the official git method.

Method Command
Homebrew brew install asdf
Pacman git clone https://aur.archlinux.org/asdf-vm.git && cd asdf-vm && makepkg -si or use your preferred AUR helper

MethodCommand
Homebrewbrew install asdf
Pacmangit clone https://aur.archlinux.org/asdf-vm.git && cd asdf-vm && makepkg -si or use your preferred AUR helper

3.macOS 环境变量

注意:正确的路径是 /opt/homebrew/opt/asdf/libexec/asdf.sh。你可以在 .bash_profile 或者 .zshrc 文件中添加以下行来初始化 asdf:

安装了brew install coreutils curl git 执行了asdf list-all nodejs,报错了:zsh: command not found: asdf

  • 你可以尝试打开 .bash_profile 文件,看看是否存在。你可以使用以下命令来打开它:
 open ~/.bash_profile
  • 或者使用命令行编辑器打开:
 nano ~/.bash_profile
vim ~/.bash_profile
  • 将这个配置写入:
. /opt/homebrew/opt/asdf/libexec/asdf.sh
  • 运行
    在 macOS 上,更改了 .bash_profile 文件后,你可以通过执行以下命令来使更改生效:
source ~/.bash_profile
  • 或者简写为:
. ~/.bash_profile

这将重新加载你的配置文件,使新的更改生效。

  • 如果.zshrc 文件中配置了 source ~/.bash_profile,以上生效后则安装完成。
  • 运行 asdf --version 命令来查看 asdf 的版本信息,如果输出了版本号,则说明 asdf 已经生效。

4.指定的 nodejs 版本运行环境

要在特定的 Node.js 版本下运行项目,可以使用 asdf 管理器来管理 Node.js 版本。首先,确保已经安装了 asdf。然后,按照以下步骤进行操作:

  • 安装 Node.js 插件:
asdf plugin add nodejs
  • 安装所需的 Node.js 版本:
asdf install nodejs <version>
  • 替换 为你想要安装的 Node.js 版本号。 设置全局 Node.js 版本:
asdf global nodejs <version>

这将把指定的 Node.js 版本设置为全局版本,使其对所有项目生效。
在你的项目目录下创建一个 .tool-versions 文件,指定项目所需的 Node.js 版本:

nodejs <version>

替换 为你的项目所需的 Node.js 版本号。

  • 如何确保项目中使用特定的 Node.js 版本
    要确保项目中使用特定的 Node.js 版本,您可以使用 asdf 的 local 命令来设置项目的本地 Node.js 版本。以下是设置项目本地 Node.js 版本的步骤:
  • 在项目目录中打开终端。 运行以下命令来设置项目的本地 Node.js 版本:
asdf local nodejs <version>
  • 请将 替换为您希望项目使用的特定 Node.js 版本。例如:
asdf local nodejs 16.18.1

这将在项目的根目录中创建一个名为 .tool-versions 的文件,并将指定的 Node.js 版本写入其中。这个文件会告诉 asdf 在该项目中使用哪个 Node.js 版本。

确保您的终端会话中 asdf 的版本管理功能已启用,并且已正确配置以在项目目录中查找 .tool-versions 文件。

总结就是:

// 切换:设置全局运行的node版本
asdf global nodejs <version>

现在,您可以在项目目录中使用 node -v 和 npm -v 等命令来验证项目中使用的 Node.js 和 npm 版本是否与您设置的本地版本相匹配。

5.只想在当前项目中指定特定的 Node.js 版本

如果您只想在当前项目中指定特定的 Node.js 版本,而不影响全局环境,可以使用 asdf local 命令来设置项目的本地 Node.js 版本。这样做的好处是,只有在当前项目中才会使用指定的 Node.js 版本,而全局环境的 Node.js 版本不会受到影响。

以下是设置项目本地 Node.js 版本的步骤

在项目目录中打开终端。
运行以下命令来设置项目的本地 Node.js 版本

asdf local nodejs <version>

请将 <version> 替换为您希望项目使用的特定 Node.js 版本。例如:

asdf local nodejs 16.18.1

这将在项目的根目录中创建一个名为 .tool-versions 的文件,并将指定的 Node.js 版本写入其中。这个文件会告诉 asdf 在该项目中使用哪个 Node.js 版本。

确保您的终端会话中 asdf 的版本管理功能已启用,并且已正确配置以在项目目录中查找 .tool-versions 文件。

现在,您可以在项目目录中使用 node -v 和 npm -v 等命令来验证项目中使用的 Node.js 和 npm 版本是否与您设置的本地版本相匹配。

通过这些步骤可以确保当前项目中使用特定的 Node.js 版本,而不影响全局环境

6.关于项目使用node版本问题

关于项目使用node版本问题,目前项目根目录下增加了.tool-versions来指定当前项目使用node版本,约定统一
.tool-versions文件来源于 asdf 工具版本管理器,感兴趣可以阅读官网
优势:
1、可指定全局版本和某个文件下node版本
2、不同版本全局的隔离
3、如果开发者本地没有使用asdf,.tool-versions不影响项目任何内容,可当作提示使用,如果使用了asdf工具,本地没有当前所需node版本会提示安装,如果有会自动将当前文件作用域下的node切换为.tool-versions 指定的版本

5.如下是安装中的一些问题,供参考
homebrew下载,脚本无法下载,使用pkg下载https://github.com/Homebrew/brew/releases/tag/4.2.19
m3芯片下载地址在 /opt/homebrew/bin/,在.zprofile中配置eval “$(/opt/homebrew/bin/brew shellenv)”
运行source ~/.zprofile
安装asdf:brew install coreutils curl git 官网 https://asdf-vm.com/zh-hans/guide/getting-started.html
因为使用zsh,可以参考 ZSH & Homebrew 配置
安装nodejs 前安装brew install gpg gawk
安装nodejs 插件 asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
使用asdf list-all nodejs 查看所有可安装版本,安装 asdf install nodejs [version]
安装pnpm 插件 asdf plugin-add pnpm
版本安装同nodejs
可通过 asdf global [name] [version] 设置全局版本


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

相关文章

基于ZYNQ7020的ARM+FPGA模块化仪器

模块化仪器平台基于 FPGA控制器&#xff0c; 搭配丰富灵活的仪器模块&#xff0c;如万⽤表、⽰波器、信 号发⽣器、数据记录仪、⾳频分析仪等&#xff0c;涵盖了⾼精度信号、⾼速与射频信号测试测量与处理&#xff0c;提供了从验证到试产到量产的全过程测试测量技术与解决⽅案&…

如何安全可控的进行跨区域数据交换,提高数据价值?

跨区域数据交换指的是在不同地理位置或不同网络环境下的数据传输和共享。随着数字化转型的加速&#xff0c;企业及组织越来越依赖于数据的流动来优化业务流程、增强决策制定和推动创新。然而&#xff0c;跨区域数据交换也带来了一系列的挑战和风险&#xff0c;主要包括&#xf…

23 重构:烟囱式、平台化、中台化的架构

上一讲里&#xff0c;我们介绍了两大类型的系统升级重构方案&#xff0c;还介绍了如何进行重构版本的上线&#xff0c;以及如何平滑地完成新老版本切换的方案。在本讲里&#xff0c;将会具体介绍如何判断系统发展到什么阶段需要重构&#xff0c;以及如何实施重构。 系统稳定性…

【Vue 2.x】学习vue之一基础部分

文章目录 Vue 一基础部分第一章1、git两个分支主分支子分支 使用方法方式1&#xff1a;采用命令的方式操作分支方式2&#xff1a;在idea中使用git的分支 向git远程仓库提交时忽略文件使用git时的一些冲突注意事项 2、Vue问题1&#xff1a;什么是Vue&#xff1f;问题2&#xff1…

HCIA-题目解析1

0x00 前言 遇到这样一道题,这种题目对于我来说还是比较复杂的,所以记录一下。主要还是和熟练度有关系。 0x01 题目 路由器RouterID邻居关系如下,下列说法正确的是 A:本路由器和Router-lD为10.0.3.3的路由器不能直接交换链路状态信息 B:DR路由器的Router-lD为10.0.1.2 C:…

浮子式水位计施工细则

1浮子式水位计应安装在水位测井内&#xff0c;安装示意图见下图。 2设备安装要求 以测井中心为基准参考点&#xff0c;将水位计底板放在工作平台上。将悬索与平衡锤固定或锁紧&#xff0c;慢慢将平衡锤放至井底。 3&#xff09;悬索另一端绕于水位轮&#xff0c;留长1m&#…

阿里云详细介绍,与AWS和GCP比较

一、阿里云详解 阿里云&#xff08;Alibaba Cloud&#xff09;&#xff0c;也被称为阿里巴巴云计算&#xff0c;是中国最大的云服务提供商&#xff0c;同时在全球范围内也具有显著的市场影响力。自2009年成立以来&#xff0c;阿里云已经发展成为一个提供全方位服务的云平台&am…

使用 Microsoft 成本管理 + 计费控制 Azure 支出和管理账单

原文&#xff1a;Control Azure spending and manage bills with Microsoft Cost Management and billing learning path - Training | Microsoft Learn Azure Well-Architected Framework 是一个设计框架&#xff0c;可通过帮助工作负载执行以下操作来提高工作负载的质量&…