使用 Makefile 安装 nvm

使用 Makefile 安装 nvm

我设置了一个 Makefile,如下所示:

NVM := $(shell command -v nvm 2> /dev/null)

setup:

ifndef NVM
    @echo "Installing NVM"
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
    nvm install node
endif

# do setup here

我的目标是安装 nvm(如果尚未安装)。每次运行make setup脚本都会进入nvm安装,即使 nvm 已经安装。事实上,如果在新的终端中运行,command -v nvm我会看到:

非易失性

知道为什么会发生这种情况吗?

答案1

NVMinstall.sh脚本默认安装到~/.nvm.它不会安装名为的实际二进制文件或脚本非易失性。相反,非易失性命令是定义的函数,~/.nvm/nvm.sh其中源自交互式终端配置文件(例如,~/.bashrc)。测试 NVM 安装的一个简单方法是检查源文件是否存在。

NVM := $(shell test -f "$(HOME)/.nvm/nvm.sh"; echo $$?)

setup:

ifneq ($(NVM),0)
        @echo "NVM not installed"
else
        @echo "NVM installed"
endif

请注意,我们将退出代码存储在非易失性存储器0意味着它被发现了。

相关内容