需要被科普下 os x 权限和文件系统相关知识

2014-06-15 20:59:37 +08:00
 shuson
事情是这样的,我直接下载的node的pkg双击安装的,过程中输入了下admin的密码,我私认为这个admin的密码就是root密码了,然后node被安装在了usr/local/bin 下,直接在terminal里键入node,也是可以启动的,但是npm安装module的话,需要sudo权限,sudo npm install之后的module,却无法在terminal启动的node下require到,提示cannot find

求讲解这种类unix系统文件系统和权限到底是怎么回事,有相关的阅读材料么?

谢过,莫笑
3026 次点击
所在节点    MacBook Pro
13 条回复
jamesxu
2014-06-15 21:17:12 +08:00
默认新建的用户是属于 admin 用户组的,这个用户组可以通过 sudo 提升权限,但跟 root 不一样,root 账户默认没有开启。

没用过 node,你看看重启 terminal 行不行,不行的话可能是要设置 node module 的路径吧,应该跟 python 之类的差不多,具体可以看 node 文档或 Google 。
little_cup
2014-06-15 21:22:16 +08:00
npm install 要加参数-g才是安装到全局,否则默认仅安装到当前目录下的node_modules文件夹。
shuson
2014-06-15 21:43:49 +08:00
@little_cup 已经-g了,可是还是不能
jsonline
2014-06-15 21:55:09 +08:00
你不应该用 root 来安装 nodejs,用 brew 比较好。
brew 会告诉你,不要用 sodu 安装应用。
jsonline
2014-06-15 21:55:33 +08:00
哎呀,是 sudo
shuson
2014-06-15 22:05:32 +08:00
@jsonline 我也发现了,node npm在的目录我没权限,所以npm install的时候还是需要sudo,这就不对了,求怎么删除用pkg安装的node 如何重新来过?
jsonline
2014-06-15 22:18:55 +08:00
@shuson 你直接用 homebrew 安装一个新的就行了。我建议你在没有完全了解的情况下先不要删。
yangg
2014-06-15 22:26:58 +08:00
Node最近改的,全局module也无法require的,要执行 node link modulename 这样当前目录就有个link了,可以require了
shuson
2014-06-15 22:48:32 +08:00
@yangg 这,,,图个啥
kfll
2014-06-15 22:55:18 +08:00
掌握了以下大概已经掌握一半了吧
多数文件系统的owner group permission
环境变量
nodejs 的 path
solupro
2014-06-16 19:10:29 +08:00
是否有设置过NODE_PATH?
shuson
2014-06-16 21:20:00 +08:00
@solupro export NODE_PATH=/usr/local/lib/node_modules:/usr/local/lib/node 对吧?可是现在npm install -g的时候还是会报错,err! EACCES mkdir '/usr/local/lib/node_modules/xx', 只有加sudo才可以。请问这个问题咋解决,为啥npm非要sudo的权限
solupro
2014-06-16 21:34:09 +08:00
@shuson 那应该就是没有目录的权限了吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/117655

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX