在 $PATH 中安装脚本

在 $PATH 中安装脚本

我正在尝试在 Ubuntu 中使用 yeoman。一切都安装正确,但我无法使用yo来自 bash 的命令。如果我导航到适当的目录并从命令提示符运行一切,那么我认为我的问题是脚本未加载到我的变量node cli.js中。$PATH

脚本的目录是/home/qtrain/.node/lib/node_modules/yo,实际脚本是/home/qtrain/.node/lib/node_modules/yo/cli.js

我尝试使用以下命令将路径添加到 .bashrc 文件中

export PATH="$PATH:$HOME/.node/lib/node_modules/yo" 

但是当我重新启动终端并输入$PATH

这是我的输出:

/home/qtrain/Enthought/Canopy_64bit/User/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/qtrain/.rvm/bin:/home/qtrain/.rvm/bin:/home/qtrain/.node/lib/node_modules/yo: No such file or directory

显然 yo 不起作用。

我的问题:我是否没有正确添加 $PATH?我应该添加目录还是实际脚本才能使其在命令行中工作?

此外,yo 是使用安装的sudo npm install -g yo,因此它是全局安装的。任何帮助都将不胜感激。

答案1

问题是,即使您将该目录添加到 PATH,那里也没有名为“yo”的可执行程序。

我会在你的 .bashrc 中添加一个函数:

yo() ( cd ~/.node/lib/node_modules/yo && node cli.js "$@" )

答案2

我知道自己回答问题不太礼貌,但这似乎是一个非常常见的问题,所以希望这能帮助其他人。在 irc 频道 #ubuntu-pa-us 上获得了帮助。

解决方案:

授予文件可执行权限。

    cd /path/to/directory   
    chmod +x cli.js

创建一个符号链接-必须使用目录的完整路径-就我而言

    ln -s /home/user/.node/lib/node_modules/yo/cli.js /usr/bin/yo

您现在可以通过命令行来工作。

相关内容