我正在尝试升级到最新版本的节点.我按照http://davidwalsh.name/upgrade-nodejs上的说明进行操作
但当我这样做时:
sudo npm install -g n
Run Code Online (Sandbox Code Playgroud)
我收到错误:
sudo: npm: command not found
Run Code Online (Sandbox Code Playgroud)
npm没有sudo.当我做:
whereis node
Run Code Online (Sandbox Code Playgroud)
我知道了:
node: /usr/bin/node /usr/lib/node /usr/bin/X11/node /usr/local/node
Run Code Online (Sandbox Code Playgroud)
运行:
which npm
Run Code Online (Sandbox Code Playgroud)
显示:
/usr/local/node/bin/npm
Run Code Online (Sandbox Code Playgroud)
我在/sf/answers/354390291/上尝试了该解决方案
但我仍然得到同样的错误.我还查看了/ etc/sudoers文件,相关的行是:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Run Code Online (Sandbox Code Playgroud)
这看起来很好.我怎样才能让NPM使用sudo命令?
为什么使用sudo时找不到命令"bundle":
[root@desktop gitlab]# sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
sudo: bundle: command not found
[root@desktop gitlab]#
Run Code Online (Sandbox Code Playgroud)
但是在不使用sudo时确实存在:
[root@desktop gitlab]# bundle exec rake gitlab:setup RAILS_ENV=production
Warning
You are running as user root, we hope you know what you are doing.
Things may work/fail for the wrong reasons.
For correct results you should run this as user git.
This will create the necessary database tables and seed the database.
You will lose any previous data stored in the database. …Run Code Online (Sandbox Code Playgroud) 我使用以下命令在我的 ubuntu 16.04 机器上安装了 Letencrypt。
sudo apt-get install letsencrypt
Run Code Online (Sandbox Code Playgroud)
现在,我想定义一个 cronjob 以使用以下行自动更新我的证书。
certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start"
Run Code Online (Sandbox Code Playgroud)
但我总是收到错误,即找不到命令 certbot。
如果我使用 letencrypt 而不是 certbot 一切正常,只要我不使用--pre-hook和--post-hook。
如何安装certbot或是否有让letsencrypt 定义此类钩子的替代命令?
谢谢
在编写sh脚本时,在脚本末尾取消设置所有先前定义的全局变量是不是一种好的做法?
例如,我myscript使用.执行我的脚本.(来源)内置,就像这样
. myscript
Run Code Online (Sandbox Code Playgroud)
执行脚本后,shell会使用脚本中定义的变量进行操作.这似乎非常糟糕(特别是如果被其他人使用).
如果可以的话,我会完全摆脱sh(或bash)中的全局变量,但更常见的是它们不是最差的解决方案:-).
我有雪豹,显然有预装梨的PHP.我启用了php,但找不到任何PEAR的迹象.所以我安装了它,现在phpinfo()显示它的安装
include_path .:/usr/lib/php/share/pear
Run Code Online (Sandbox Code Playgroud)
当我输入任何梨命令时
$ sudo pear
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:sudo:pear:command not found
我错过了什么?
我正在 Mac 上学习 bash:
我的 Mac 中有一个最简单的 bash 脚本,它命名为untitled.sh:
#!/bin/bash
echo "hello"
Run Code Online (Sandbox Code Playgroud)
但是在我的终端中我想运行它,我失败了:
$ sudo ./untitled.sh
Password:
sudo: ./untitled.sh: command not found
Run Code Online (Sandbox Code Playgroud)
我不知道为什么会出现错误,一切正常。
Pip并且sudo不在我的机器上的同一条路径上,因此,当(基本上一直都是)我需要运行这两个命令时,就像这样:
sudo pip install xxx
Run Code Online (Sandbox Code Playgroud)
我得到:
sudo: pip: command not found
pip 下载软件包,但是由于安装结束时访问被拒绝,因此最终失败。
通过执行pip -V(不which pip返回任何内容),我知道pip在哪里:
pip 1.5.4 from /Library/Python/2.7/site-packages/pip-1.5.4-py2.7.egg (python 2.7)
Run Code Online (Sandbox Code Playgroud)
然后sudo bash -c 'echo $PATH',
我得到:
/usr/bin:~/bin:/bin:/usr/local/bin:/usr/local/sbin:/Applications/Zed.app/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/MacGPG2/bin
Run Code Online (Sandbox Code Playgroud)
我试图将pip符号链接到sudo的目录中,如下所示:
$ sudo ln -s /usr/local/bin/pip /usr/bin/pip,无济于事。
我怎么穿上sudo一样path?请帮助,我在这里迷路了。