题外话

软件的安装在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. 使用 Hive装载数据的几种方式

    装载数据 1.以LOAD的方式装载数据 LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION( ...

  2. 泛型(java菜鸟的课堂笔记)

                1. 泛型的简单运 用和意义   2. 泛型的上限与下限   3. 泛型和 子类继承的限制   4. 泛型类和泛型 方法   5. 泛型嵌套和泛型擦除             ...

  3. 论文笔记 Network In Network

    这篇论文思路简单.易实现.效果好,是一篇难得的佳作.从实现的角度理解,就是做了以下两个替换: 将线性卷积替换为多层感知机(某种程度上,线性卷积可以认为识一层感知机). 将全连接层用global ave ...

  4. Vivado简单调试技能

    Vivado简单调试技能 1.关于VIO核的使用 首先配置VIO核: 配置输入输出口的数量5,5 配置输入口的位宽 配置输出口位宽和初始值. 例化与使用: vio_0 U1 ( .clk(clk_27 ...

  5. 加载jquery插件注意了

    1.尽量放在</body>之前,不要放在</head>标签之前,如果执意要放也要放在css之后,例如: <link href="style.css" ...

  6. JavaWeb系列:Servlet

    个人整理,欢迎转载与批评建议,转载请添加索引,谢谢. ---------------------------------------------------------------2017.06.10 ...

  7. Codeforces Round #419 (Div. 2)

    1.题目A:Karen and Morning 题意: 给出hh:mm格式的时间,问至少经过多少分钟后,该时刻为回文字符串? 思路: 简单模拟,从当前时刻开始,如果hh的回文rh等于mm则停止累计.否 ...

  8. Kafka 源代码分析之Message

    这里主要分析一下message的格式. 一条message的构成由以下部分组成 val CrcOffset = 0 //crc校验部分和字长 val CrcLength = 4 val MagicOf ...

  9. OpenCV学习1-----打开摄像头并在画面上添加水印

    一直对视频或者图像添加水印很感兴趣,查找资料后用OpenCV尝试了一下. 记录下来. 1.首先是打开摄像头. 找到OpenCV官方文档给出的例子. 例子中实现的是,打开摄像头,并对画面进行高斯滤波,使 ...

  10. 【LeetCode】217. Contains Duplicate

    题目: Given an array of integers, find if the array contains any duplicates. Your function should retu ...