【问题标题】:NPM change $PATH isnt perminent, only per terminal?NPM 更改 $PATH 不是永久的,仅针对每个终端?
【发布时间】:2016-04-23 23:10:50
【问题描述】:

最近我将操作系统更改为 Linux Ubuntu 进行开发。我已经安装了 Node.js 和 NPM 以与 Yeoman 一起使用,在安装 NPM 之后,我遵循了关于权限Docs 的官方文档。因为我显示的路径只是/usr,所以我关注了Option 2。一切顺利,我开始安装 Yeoman、Bower & Grunt,一切都很好。但是 Yeoman、Bower 和 Grunt 不能在另一个终端窗口中工作。每次打开终端时,我都必须再次关注Option 2,然后才能开始使用。 为什么我的$PATH 没有更新?我做错了什么?

另外,当我问的时候。 NPM 在安装时运行得像蜗牛,我大概花了大约 5 个小时来安装 Yeoman、Bower、Grunt 和 Webapp-gen,昨晚花了大约一个小时来创建一个新项目 yo webapp。有谁知道这可能是为什么?它今天仍然像蜗牛一样运行 - 互联网和硬件使用都正常,并且在绿色中,git、composer、bower 等都以正常速度运行。它只是 NPM。

makka@ML:~$ node --version && npm --version && git --version && yo --version && bower --version && grunt --version
v5.4.1
3.5.3
git version 2.5.0
yo: command not found
makka@ML:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
makka@ML:~$ cd //usr/local && ls -la
total 40
drwxr-xr-x 10 root root 4096 Oct 21 16:49 .
drwxr-xr-x 12 root root 4096 Jan 18 00:14 ..
drwxr-xr-x  2 root root 4096 Jan 18 01:22 bin
drwxr-xr-x  2 root root 4096 Oct 21 16:49 etc
drwxr-xr-x  2 root root 4096 Oct 21 16:49 games
drwxr-xr-x  2 root root 4096 Oct 21 16:49 include
drwxr-xr-x  5 root root 4096 Oct 21 17:00 lib
lrwxrwxrwx  1 root root    9 Jan 17 20:27 man -> share/man
drwxr-xr-x  2 root root 4096 Oct 21 16:49 sbin
drwxr-xr-x  8 root root 4096 Oct 21 17:00 share
drwxr-xr-x  2 root root 4096 Oct 21 16:49 src
makka@ML://usr/local$ ls -la ~/
total 188
drwxr-xr-x  23 makka makka  4096 Jan 18 16:19 .
drwxr-xr-x   3 root  root   4096 Jan 17 20:31 ..
drwx------   3 makka makka  4096 Jan 18 02:57 .adobe
-rw-------   1 makka makka  3012 Jan 18 16:46 .bash_history
-rw-r--r--   1 makka makka   220 Jan 17 20:31 .bash_logout
-rw-rw-r--   1 makka makka    43 Jan 18 05:01 .bash_profile
-rw-r--r--   1 makka makka  3771 Jan 17 20:31 .bashrc
drwx------  22 makka makka  4096 Jan 18 03:59 .cache
drwxrwxr-x   2 makka makka  4096 Jan 18 01:20 .composer
drwx------  24 makka makka  4096 Jan 18 05:46 .config
drwxr-xr-x   3 makka makka  4096 Jan 18 05:48 Desktop
-rw-r--r--   1 makka makka    25 Jan 17 20:56 .dmrc
drwxr-xr-x   2 makka makka  4096 Jan 17 20:56 Documents
drwxr-xr-x   4 makka makka  4096 Jan 18 02:16 Downloads
-rw-r--r--   1 makka makka  8980 Jan 17 20:31 examples.desktop
drwx------   3 makka makka  4096 Jan 18 16:19 .gconf
drwx------   3 makka makka  4096 Jan 18 00:01 .gnome
-rw-------   1 makka makka   604 Jan 18 16:19 .ICEauthority
drwx------   3 makka makka  4096 Jan 17 20:56 .local
drwx------   3 makka makka  4096 Jan 18 02:57 .macromedia
drwx------   4 makka makka  4096 Jan 17 23:31 .mozilla
drwxr-xr-x   2 makka makka  4096 Jan 17 20:56 Music
drwxrwxr-x   3 makka makka  4096 Jan 18 02:58 .node-gyp
-rw-rw-r--   1 makka makka    23 Jan 18 04:55 .node_repl_history
drwxr-xr-x 823 makka makka 36864 Jan 18 02:58 .npm
drwxrwxr-x   5 makka makka  4096 Jan 18 00:48 .npm-global
-rw-------   1 makka makka    21 Jan 18 05:19 .npmrc
drwxr-xr-x   2 makka makka  4096 Jan 17 20:56 Pictures
drwx------   3 makka makka  4096 Jan 18 00:01 .pki
-rw-r--r--   1 makka makka   675 Jan 17 20:31 .profile
drwxr-xr-x   2 makka makka  4096 Jan 17 20:56 Public
-rw-r--r--   1 makka makka     0 Jan 17 20:57 .sudo_as_admin_successful
drwxr-xr-x   2 makka makka  4096 Jan 17 20:56 Templates
drwxr-xr-x   2 makka makka  4096 Jan 17 20:56 Videos
-rw-------   1 makka makka    47 Jan 18 16:19 .Xauthority
-rw-------   1 makka makka  1576 Jan 18 16:19 .xsession-errors
-rw-------   1 makka makka  2804 Jan 18 16:16 .xsession-errors.old
makka@ML://usr/local$ npm config set prefix '~/.npm-global'
makka@ML://usr/local$ export PATH=~/.npm-global/bin:$PATH
makka@ML://usr/local$ source ~/.profile
makka@ML://usr/local$ node --version && npm --version && git --version && yo --version && bower --version && grunt --version
v5.4.1
3.5.3
git version 2.5.0
1.6.0
1.7.2
grunt-cli v0.1.13
makka@ML://usr/local$ echo $PATH
/home/makka/.npm-global/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

非常感谢, 问候,马特

【问题讨论】:

    标签: node.js ubuntu npm yeoman


    【解决方案1】:

    看起来您没有将导出命令放入 ~/.profile。

    echo   export PATH=~/.npm-global/bin:$PATH > ~/.profile
    source ~/.profile
    

    【讨论】:

    • 不幸的是,这也不是永久性的,它只能在使用的终端中工作。 cat .profile export PATH=/home/makka/.npm-global/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
    • 您关闭了其他终端吗?每个都将在打开时加载 ~/.profile 。如果它在仍然打开时发生更改,您要么需要在该终端中再次运行 source ~/.profile,要么重新打开它。
    • 还有你用的是什么终端?
    • 我猜测而不是添加到 ~/.profile 你想要做 ~/.bashrc 或 ~/.zshrc。不过取决于您的终端。基本上每个终端都有自己的风格。旧的 /bin/sh 终端使用 ~/.profile,但新的终端使用不同的东西。
    • 区别实际上只是终端约定。 /bin/sh 是一个老式的 shell,从早期的 linux 开始就已经存在。它使用了位于 ~/ (home) 文件夹下的名为 .profile 的文件。 Bash,另一个终端程序 (/bin/bash) 使用 .bashrc。它们都做同样的事情,在启动时它们将各自的文件作为 shell 脚本执行。这是每次运行时设置 shell 环境的一种方式。还有一些其他细微差别,例如登录 shell 与交互式 shell 等,但在大多数情况下,它只是每个终端实例的引导 shell 脚本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多