题外话

软件的安装在linux下主要分为两种。一种是通过包管理器例如ubuntu的apt-get xxx,另一种是自己手动安装。通过包管理器安装的,基本开箱即用,无需配置,但是存在一个问题,有时候无法安装最近的程序。例如,我现在用的是ubuntu14.04,在安装nodejs的时候,就无法安装到v8这个版本。此时就需要使用手动安装。

由于是自己下载binary文件手动安装的,难免会有配置上的问题。

问题描述

由于node安装在/opt上,所以在使用npm安装node package时,可能会出现permission denied的error。这个时候大多数人的做法是sudo npm install xxx。这时候问题来了,terminal提示sudo npm:command not found。显然root用户无法使用npm命令。

问题解决

回想一下我们在安装nodejs的时候,曾今在~/.bashrc中配置过环境变量,所以在个人用户的情况下就可以使用node和npm命令了。

因此,我们在terminal中输入echo $PATH可以发现PATH中包含nodejs的安装目录。而sudo echo $PATH可以发现,root用户的PATH中并没有包含nodejs的安装目录,这就是sudo时提示command not found的原因。

所以我们要做的,就是在root用户中添加上nodejs的环境变量。

  1. su进入root用户。
  2. 执行subl ~/.bashrc此时用sublime打开的就是root的~/.bashrc
  3. 在root的~/.bashrc的末尾添加source /home/[your username]/.bashrc。保存退出。
  4. source ~/.bashrc。此时问题就解决了。

感觉这个问题也不限于nodejs,所有sudo xxx:command not found的问题,也许都可以用这个方法解决。

网上其他的解决方法

使用软链接的方式。博主没有试过,不过据说也是可以的。

chmod -R 755 /opt/node
sudo ln -s /opt/node/bin/node  /usr/bin/node
sudo ln -s /opt/node/lib/node  /usr/lib/node
sudo ln -s /opt/node/bin/npm  /usr/bin/npm

参考文献

[问题解决]linux sudo xxx:command not found的更多相关文章

  1. Linux下提示 bash: xxx command not found

    今天在虚拟机上安装了CentOS5.5,发现运行一些很正常的诸如:init,shutdown,fdisk 等命令时,悍然提示: bash: xxx command not found. 那么,首先就要 ...

  2. linux命令存放 bash: xxx command not found

    参考资料:http://blog.sina.com.cn/s/blog_688077cf01013qrk.html 提示:bash: xxx command not found 首先就要考虑root ...

  3. Linux sudo命令——sudoers文件的配置

    Linux sudo命令与其配置文件/etc/sudoers   对linux有一定了解的人多少也会知道点关于sudo命令.sudo命令核心思想是权限的赋予 ,即某个命令的所属用户不是你自己,而你却有 ...

  4. Linux sudo 命令的应用

    .note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeit ...

  5. linux sudo命令

    Sudo”是Unix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的“权利”,让他们执行一些只有超级用户或其他 特许用户才能完成的任务,比如:运行一些像mount,ha ...

  6. 示sudo: cd: command not found

    执行sudo cd 时出现 sudo: cd: command not found 原因shell shell是一个命令解析器 所谓shell是一个交互式的应用程序. shell执行外部命令的 时候, ...

  7. sudo: cd: command not found

    事件起因 今天在aws ubutun上忽然发现的一个问题,执行sudo cd 时出现 sudo: cd: command not found 原因 shell shell是一个命令解析器 所谓shel ...

  8. Linux sudo 命令使用简介

    Linux sudo 命令使用简介 by:授客 QQ:1033553122 基本语法: $ sudo [-u username] [command] -u:将身份变成username的身份 #编辑/e ...

  9. Ubuntu解决sudo: source: command not found错误

    Ubuntu Server上执行以下命令,可以看到默认打开的文件数限制为1024个. $ ulimit -n 1024 编辑/etc/profile配置文件,在最后添加一行: ulimit -SHn ...

随机推荐

  1. 《算法4》2.1 - 插入排序算法(Insertion Sort), Python实现

    排序算法列表电梯: 选择排序算法:详见 Selection Sort 插入排序算法(Insertion Sort):非常适用于小数组和部分排序好的数组,是应用比较多的算法.详见本文 插入排序算法的语言 ...

  2. css3 linear-gradient渐变效果及兼容性处理

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. JVM-7.Java内存模型与高效并发

    更多内容参见<并发与同步>系列 一.引子 二.JMM 三.Java中的线程 四.线程安全 五.锁优化       一.引子 运算能力 摩尔定律:晶体管数量,代表的CPU的频率 Amdahl ...

  4. JSON数据解析:Gson(谷歌)和fastjson(阿里巴巴)的异同点

    Gson和fastjson分别为谷歌和阿里巴巴对JSON数据进行处理封装的jar包 Gson(谷歌)和fastjson(阿里巴巴)两者异同点: 相同点:都是根据JSON数据创建相应的类 不同点: 1. ...

  5. Java经典编程题50道之三十三

    打印出杨辉三角形(要求打印出10行如下图)11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1 public class Example33 { public static v ...

  6. 发布高性能迷你React框架anu

    anu, 读作[安努],原意为苏美尔的主神. anu是我继avalon之后又一个新框架(github仓库为https://github.com/RubyLouvre/anu, 欢迎加星与试用) 此框架 ...

  7. 与我们息息相关的internet服务(1)---域名服务

    在起步一个公司,从组建的技术上,可能要准备很多东西,其中一个就是我们熟悉的域名-----域名可以用在邮箱中.网站中等等 域名,听起来很怪的一个词(他类似于电话本的作用),但理解起来很简单,想法也很简单 ...

  8. winfrom DataSet和实体类的相互转换

    最近做WInfrom项目,对表格和控件的数据绑定非常喜欢用实体类对象来解决,但是绑定以后 又怎么从控件中拿到实体类或者转换为datatable 或者dataset呢 经过在网上的搜索以及自己的改进 完 ...

  9. django 自定义过滤器(filter)处理较为复杂的变量的实例

    简述:django 在views中有数据需要通过字典(dict)的方式传递给template,该字典中又包含了字典,而且字典中的键值还是一个对象,在template中处理传递过来的数据的时候,字典不能 ...

  10. 【原创】源码角度分析Android的消息机制系列(一)——Android消息机制概述

    ι 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.为什么需要Android的消息机制 因为Android系统不允许在子线程中去访问UI,即Android系统不允许在子线程中更新UI. 为什 ...