V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shuson
V2EX  ›  MacBook Pro

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

  •  
  •   shuson · 2014-06-15 20:59:37 +08:00 · 3087 次点击
    这是一个创建于 3801 天前的主题,其中的信息可能已经有所发展或是发生改变。
    事情是这样的,我直接下载的node的pkg双击安装的,过程中输入了下admin的密码,我私认为这个admin的密码就是root密码了,然后node被安装在了usr/local/bin 下,直接在terminal里键入node,也是可以启动的,但是npm安装module的话,需要sudo权限,sudo npm install之后的module,却无法在terminal启动的node下require到,提示cannot find

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

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

    没用过 node,你看看重启 terminal 行不行,不行的话可能是要设置 node module 的路径吧,应该跟 python 之类的差不多,具体可以看 node 文档或 Google 。
    little_cup
        2
    little_cup  
       2014-06-15 21:22:16 +08:00
    npm install 要加参数-g才是安装到全局,否则默认仅安装到当前目录下的node_modules文件夹。
    shuson
        3
    shuson  
    OP
       2014-06-15 21:43:49 +08:00
    @little_cup 已经-g了,可是还是不能
    jsonline
        4
    jsonline  
       2014-06-15 21:55:09 +08:00
    你不应该用 root 来安装 nodejs,用 brew 比较好。
    brew 会告诉你,不要用 sodu 安装应用。
    jsonline
        5
    jsonline  
       2014-06-15 21:55:33 +08:00
    哎呀,是 sudo
    shuson
        6
    shuson  
    OP
       2014-06-15 22:05:32 +08:00
    @jsonline 我也发现了,node npm在的目录我没权限,所以npm install的时候还是需要sudo,这就不对了,求怎么删除用pkg安装的node 如何重新来过?
    jsonline
        7
    jsonline  
       2014-06-15 22:18:55 +08:00
    @shuson 你直接用 homebrew 安装一个新的就行了。我建议你在没有完全了解的情况下先不要删。
    yangg
        8
    yangg  
       2014-06-15 22:26:58 +08:00 via Android
    Node最近改的,全局module也无法require的,要执行 node link modulename 这样当前目录就有个link了,可以require了
    shuson
        9
    shuson  
    OP
       2014-06-15 22:48:32 +08:00
    @yangg 这,,,图个啥
    kfll
        10
    kfll  
       2014-06-15 22:55:18 +08:00 via Android
    掌握了以下大概已经掌握一半了吧
    多数文件系统的owner group permission
    环境变量
    nodejs 的 path
    solupro
        11
    solupro  
       2014-06-16 19:10:29 +08:00
    是否有设置过NODE_PATH?
    shuson
        12
    shuson  
    OP
       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
        13
    solupro  
       2014-06-16 21:34:09 +08:00
    @shuson 那应该就是没有目录的权限了吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   960 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 19:54 · PVG 03:54 · LAX 11:54 · JFK 14:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.