V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
selfcreditgiving
V2EX  ›  问与答

centos 安装完 node, /usr/local/bin 下有 node 却无法执行?

  •  
  •   selfcreditgiving · 2020-08-10 23:02:56 +08:00 · 3445 次点击
    这是一个创建于 1567 天前的主题,其中的信息可能已经有所发展或是发生改变。

    安装方式是通过下载编译好的 node 二进制文件来安装。

    安装:

    cd ~
    
    wget https://nodejs.org/dist/v12.18.3/node-v12.18.3-linux-x64.tar.xz
    
    sudo tar --strip-components 1 -xvJf node-v* -C /usr/local
    

    检查环境变量 /usr/local/bin 是有的:

    /usr/local/bin/node --version 可以执行,node --version 却不可以。

    
    # ls /usr/local/bin
    node  npm  npx
    
    # echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    
    # /usr/local/bin/node --version
    v12.18.3
    
    # node --version
    -bash: /usr/bin/node: No such file or directory
    
    
    22 条回复    2020-08-11 09:49:34 +08:00
    whenov
        1
    whenov  
       2020-08-10 23:04:07 +08:00
    # which node
    swulling
        2
    swulling  
       2020-08-10 23:05:56 +08:00 via iPhone
    这是因为 /usr/bin/node 是一个丢失了引用的软连接,把这个删了就行
    selfcreditgiving
        3
    selfcreditgiving  
    OP
       2020-08-10 23:15:53 +08:00
    @swulling #2 好像这个都不是 软连接,是一个实际的执行文件?

    # ls -al /usr/local/bin
    total 47516
    drwxr-xr-x. 2 1001 1001 4096 Aug 10 23:13 .
    drwxr-xr-x. 13 root root 4096 Aug 10 22:48 ..
    -rwxr-xr-x 1 1001 1001 48646656 Jul 22 23:00 node
    lrwxrwxrwx 1 1001 1001 38 Jul 22 23:00 npm -> ../lib/node_modules/npm/bin/npm-cli.js
    lrwxrwxrwx 1 1001 1001 38 Jul 22 23:00 npx -> ../lib/node_modules/npm/bin/npx-cli.js
    vuuv
        4
    vuuv  
       2020-08-10 23:27:46 +08:00 via Android
    先确认 `/usr/bin/node`是否存在。如果存在,那么检查文件类型是否正确,包括 ELF 是 32 位还是 64 位。
    如果文件不存在,那么 `hash -r`命令清空 bash 的命令路径缓存。也可以直接开始清空,毕竟 path 里 /usr/local/bin 目录比 /usr/bin 优先。
    swulling
        5
    swulling  
       2020-08-10 23:58:25 +08:00 via iPhone
    @selfcreditgiving 那就是他引用的动态链接库不存在
    jtnwm
        6
    jtnwm  
       2020-08-10 23:59:16 +08:00 via Android
    也许缺失依赖? ldd /usr/bin/node 看看是不是缺了啥
    swulling
        7
    swulling  
       2020-08-11 00:01:09 +08:00 via iPhone
    这种自行安装的方式真的很不好,不适合初级用户,瞎装一通只是一两句也没法修。

    简单点选一个源从源里装最合适
    selfcreditgiving
        8
    selfcreditgiving  
    OP
       2020-08-11 00:04:48 +08:00
    @swulling #7 主要是 那个什么 update 源没更新, 我一装是 node v4.2 ? 太老了 ,我又卸载了。 但是 那个 yum update 我是有阴影了, 执行一次要等很久。 而且我担心会影响到现有环境。
    selfcreditgiving
        9
    selfcreditgiving  
    OP
       2020-08-11 00:06:27 +08:00
    @jtnwm #6 帮忙看看了 多谢
    # ldd /usr/local/bin/node
    linux-vdso.so.1 => (0x00007ffeb23d4000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f93c65ac000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f93c62a5000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f93c5fa2000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f93c5d8c000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f93c5b70000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f93c57a2000)
    /lib64/ld-linux-x86-64.so.2 (0x0000561e91325000)
    leo108
        10
    leo108  
       2020-08-11 00:11:09 +08:00
    1 、2 、4 、6 楼的兄弟都在说 /usr/bin/node,楼主一个劲地操作 /usr/local/bin/node,能找出问题才怪。特别是 1 楼的命令有 90% 的概率能找到问题,不知道为什么楼主选择性忽略。
    calmzhu
        11
    calmzhu  
       2020-08-11 00:17:17 +08:00
    这是没找到,跟动态链接库没关系。

    ls -la `which node`
    看一下,如果不是指向 /usr/local/bin/node 直接删掉。

    如果是,关掉 shell 重新开一下。
    selfcreditgiving
        12
    selfcreditgiving  
    OP
       2020-08-11 00:29:02 +08:00
    @leo108 #10 我想可能是打错了, /usr/bin/node 是没有的

    # ls -al /usr/bin/node
    ls: cannot access /usr/bin/node: No such file or directory


    @calmzhu #11 是指向这个 /usr/local/bin/node

    # ls -la `which node`
    -rwxr-xr-x 1 1001 1001 48646656 Jul 22 23:00 /usr/local/bin/node

    重启 shell 指的是重启 笔记本上的 终端吗, 还是服务器上面的 shell,笔记本我已经重启过了的。服务器的东西我尽量不想动, 这个上面还跑着好几个 应用的 docker 容器呢
    vuuv
        13
    vuuv  
       2020-08-11 00:32:02 +08:00 via Android
    @selfcreditgiving 那么看下 #4 我的回复,谢谢。
    calmzhu
        14
    calmzhu  
       2020-08-11 00:37:09 +08:00
    不用重启服务器。重启过的话。那么文件位置对的。

    看下这个文件类型。
    file /usr/local/bin/node
    看一下文件类型是 elf 还是 ascii text

    如果是 ASCII text,用文本打开看看第一行的内容。
    selfcreditgiving
        15
    selfcreditgiving  
    OP
       2020-08-11 00:48:49 +08:00
    @vuuv #13
    @calmzhu #14

    # file /usr/local/bin/node
    /usr/local/bin/node: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=48b59ee612c13e556e0b1fae84c06398f4fc942a, not stripped

    好像是 64 的,elf
    calmzhu
        16
    calmzhu  
       2020-08-11 00:50:50 +08:00
    @calmzhu
    不用看了。之前是怀疑 node 用脚本管理。然后里面第一行指向了#!/usr/bin/node

    但是看你 ls -la 出来的大小应该是二进制。


    用 strace 跟一下调用看看

    strace node --version
    selfcreditgiving
        17
    selfcreditgiving  
    OP
       2020-08-11 01:07:16 +08:00
    @calmzhu #16

    我试一下,node --version 又可以了,,, 记起来 我重启 mac pro 后, 没有试过 node --version 能不能用

    重启的原因其实主要是上网很慢,各种操作都卡 ssh 远程连接 阿里云服务器,wget 下载文件 node 安装包 也很慢。

    而且我在 终端里输入命令 特别的卡, 所以重启了一下, 重启后网速快多了, 而且输入也不卡顿。

    但是我奇怪的是, 我连接 阿里云服务器下载, 那个下载是 阿里云服务器去下载, 和我 mac pro 的网速有什么关系呢?

    我记得昨天 mac pro 开了很多 软件没关( IDEA 、Chrome 、Evernote 那些),就合上盖休眠了, 可能是这个原因
    selfcreditgiving
        18
    selfcreditgiving  
    OP
       2020-08-11 01:08:53 +08:00
    @calmzhu #16 顺便附上 命令结果, 不过应该没关系了

    # strace node --version
    execve("/usr/local/bin/node", ["node", "--version"], [/* 22 vars */]) = 0
    brk(NULL) = 0x4aee000
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5ce4a71000
    access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
    open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
    fstat(3, {st_mode=S_IFREG|0644, st_size=28662, ...}) = 0
    mmap(NULL, 28662, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f5ce4a6a000
    close(3) = 0
    open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\r\0\0\0\0\0\0"..., 832) = 832
    fstat(3, {st_mode=S_IFREG|0755, st_size=19288, ...}) = 0
    mmap(NULL, 2109712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5ce464d000
    mprotect(0x7f5ce464f000, 2097152, PROT_NONE) = 0
    mmap(0x7f5ce484f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f5ce484f000
    close(3) = 0
    open("/lib64/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \262\5\0\0\0\0\0"..., 832) = 832
    fstat(3, {st_mode=S_IFREG|0755, st_size=991616, ...}) = 0
    mmap(NULL, 3171168, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5ce4346000
    mprotect(0x7f5ce442f000, 2093056, PROT_NONE) = 0
    mmap(0x7f5ce462e000, 40960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe8000) = 0x7f5ce462e000
    mmap(0x7f5ce4638000, 82784, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f5ce4638000
    close(3) = 0
    open("/lib64/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20S\0\0\0\0\0\0"..., 832) = 832
    fstat(3, {st_mode=S_IFREG|0755, st_size=1137016, ...}) = 0
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5ce4a69000
    mmap(NULL, 3150120, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5ce4044000
    mprotect(0x7f5ce4145000, 2093056, PROT_NONE) = 0
    mmap(0x7f5ce4344000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x100000) = 0x7f5ce4344000
    close(3) = 0
    open("/lib64/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220*\0\0\0\0\0\0"..., 832) = 832
    fstat(3, {st_mode=S_IFREG|0755, st_size=88776, ...}) = 0
    mmap(NULL, 2184192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5ce3e2e000
    mprotect(0x7f5ce3e43000, 2093056, PROT_NONE) = 0
    mmap(0x7f5ce4042000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7f5ce4042000
    close(3) = 0
    open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260l\0\0\0\0\0\0"..., 832) = 832
    fstat(3, {st_mode=S_IFREG|0755, st_size=141968, ...}) = 0
    mmap(NULL, 2208904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5ce3c12000
    mprotect(0x7f5ce3c29000, 2093056, PROT_NONE) = 0
    mmap(0x7f5ce3e28000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7f5ce3e28000
    mmap(0x7f5ce3e2a000, 13448, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f5ce3e2a000
    close(3) = 0
    open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340$\2\0\0\0\0\0"..., 832) = 832
    fstat(3, {st_mode=S_IFREG|0755, st_size=2151672, ...}) = 0
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5ce4a68000
    mmap(NULL, 3981792, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5ce3845000
    mprotect(0x7f5ce3a07000, 2097152, PROT_NONE) = 0
    mmap(0x7f5ce3c07000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c2000) = 0x7f5ce3c07000
    mmap(0x7f5ce3c0d000, 16864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f5ce3c0d000
    close(3) = 0
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5ce4a67000
    mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5ce4a65000
    arch_prctl(ARCH_SET_FS, 0x7f5ce4a65780) = 0
    selfcreditgiving
        19
    selfcreditgiving  
    OP
       2020-08-11 01:09:45 +08:00
    一次贴不了太长,分两次:

    mprotect(0x7f5ce3c07000, 16384, PROT_READ) = 0
    mprotect(0x7f5ce3e28000, 4096, PROT_READ) = 0
    mprotect(0x7f5ce4042000, 4096, PROT_READ) = 0
    mprotect(0x7f5ce4344000, 4096, PROT_READ) = 0
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5ce4a64000
    mprotect(0x7f5ce462e000, 32768, PROT_READ) = 0
    mprotect(0x7f5ce484f000, 4096, PROT_READ) = 0
    stat("/etc/sysconfig/64bit_strstr_via_64bit_strstr_sse2_unaligned", 0x7fff97bd7750) = -1 ENOENT (No such file or directory)
    mprotect(0x2c7e000, 12288, PROT_READ) = 0
    mprotect(0x7f5ce4a72000, 4096, PROT_READ) = 0
    munmap(0x7f5ce4a6a000, 28662) = 0
    set_tid_address(0x7f5ce4a65a50) = 6852
    set_robust_list(0x7f5ce4a65a60, 24) = 0
    rt_sigaction(SIGRTMIN, {0x7f5ce3c18790, [], SA_RESTORER|SA_SIGINFO, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGRT_1, {0x7f5ce3c18820, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
    getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
    futex(0x7f5ce464a8ac, FUTEX_WAKE_PRIVATE, 2147483647) = 0
    futex(0x7f5ce464a8b8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
    brk(NULL) = 0x4aee000
    brk(0x4b0f000) = 0x4b0f000
    brk(NULL) = 0x4b0f000
    futex(0x2c9ae50, FUTEX_WAKE_PRIVATE, 2147483647) = 0
    getuid() = 0
    geteuid() = 0
    getgid() = 0
    getegid() = 0
    rt_sigprocmask(SIG_SETMASK, [USR1], NULL, 8) = 0
    fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
    fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
    fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
    rt_sigaction(SIGHUP, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGQUIT, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGILL, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGTRAP, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGABRT, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGBUS, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGFPE, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGUSR1, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGSEGV, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGUSR2, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGPIPE, {SIG_IGN, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGALRM, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGTERM, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGSTKFLT, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGCHLD, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGCONT, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGTSTP, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGTTIN, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGTTOU, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGURG, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGXCPU, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGXFSZ, {SIG_IGN, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGVTALRM, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGPROF, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGWINCH, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGIO, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGPWR, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGSYS, {SIG_DFL, [], SA_RESTORER, 0x7f5ce3c215d0}, NULL, 8) = 0
    fcntl(0, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
    ioctl(0, TCGETS, {B9600 opost isig icanon echo ...}) = 0
    ioctl(0, TCGETS, {B9600 opost isig icanon echo ...}) = 0
    fcntl(1, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
    ioctl(1, TCGETS, {B9600 opost isig icanon echo ...}) = 0
    ioctl(1, TCGETS, {B9600 opost isig icanon echo ...}) = 0
    fcntl(2, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
    ioctl(2, TCGETS, {B9600 opost isig icanon echo ...}) = 0
    ioctl(2, TCGETS, {B9600 opost isig icanon echo ...}) = 0
    rt_sigaction(SIGINT, {0x9d6080, ~[RTMIN RT_1], SA_RESTORER|SA_RESETHAND, 0x7f5ce3c215d0}, NULL, 8) = 0
    rt_sigaction(SIGTERM, {0x9d6080, ~[RTMIN RT_1], SA_RESTORER|SA_RESETHAND, 0x7f5ce3c215d0}, NULL, 8) = 0
    getrlimit(RLIMIT_NOFILE, {rlim_cur=65535, rlim_max=65535}) = 0
    ioctl(0, FIOCLEX) = 0
    ioctl(1, FIOCLEX) = 0
    ioctl(2, FIOCLEX) = 0
    ioctl(3, FIOCLEX) = -1 EBADF (Bad file descriptor)
    ioctl(4, FIOCLEX) = -1 EBADF (Bad file descriptor)
    ioctl(5, FIOCLEX) = -1 EBADF (Bad file descriptor)
    ioctl(6, FIOCLEX) = -1 EBADF (Bad file descriptor)
    ioctl(7, FIOCLEX) = -1 EBADF (Bad file descriptor)
    ioctl(8, FIOCLEX) = -1 EBADF (Bad file descriptor)
    ioctl(9, FIOCLEX) = -1 EBADF (Bad file descriptor)
    ioctl(10, FIOCLEX) = -1 EBADF (Bad file descriptor)
    ioctl(11, FIOCLEX) = -1 EBADF (Bad fi
    calmzhu
        20
    calmzhu  
       2020-08-11 01:15:39 +08:00 via Android
    嗯。那应该是重启后恢复的。bash 的 path 缓存导致的。。网速那个,阿里云的下载是本身就很慢吧﹉我的阿理云访问这种国外的经常十几 kb
    ysc3839
        21
    ysc3839  
       2020-08-11 01:57:27 +08:00 via Android
    推荐使用 nvm 安装,nvm 也是从官网下载编译好的包,但是自动帮你处理安装流程了。
    ruanimal
        22
    ruanimal  
       2020-08-11 09:49:34 +08:00
    @ysc3839 n 比 nvm 好用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3376 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:32 · PVG 20:32 · LAX 04:32 · JFK 07:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.