相关疑难解决方法(0)

为什么sudo会改变PATH?

这是PATH没有sudo 的变量:

$ echo 'echo $PATH' | sh 
/opt/local/ruby/bin:/usr/bin:/bin
Run Code Online (Sandbox Code Playgroud)

这是PATHsudo 的变量:

$ echo 'echo $PATH' | sudo sh
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
Run Code Online (Sandbox Code Playgroud)

据我所知,sudo应该PATH保持不变.这是怎么回事?我该如何改变?(这是在Ubuntu 8.04上).

更新:据我所知,没有任何脚本PATH以任何方式作为root更改.

来自man sudo:

为了防止命令欺骗,当在用户的PATH中搜索命令时(如果一个或两个都在PATH中),sudo会检查``.''和``''(都表示当前目录).但请注意,实际的PATH环境变量未被修改,并且不会更改地传递给sudo执行的程序.

sudo path environment-variables

279
推荐指数
7
解决办法
13万
查看次数

Capistrano和环境变量

我已经切换到使用环境变量进行配置,它运行得很好 - 除非我必须使用capistrano部署或运行​​任务.

Capistrano 3似乎执行每个命令前缀,/usr/bin/env它会删除我设置的任何环境变量.bashrc.

编辑 - 在进行更多的研究时,这可能不是问题,问题可能是因为capistrano作为非登录,非交互式shell执行而且不加载.bashrc.bash_profile.但仍然陷入困境.

当capistrano执行任务时,确保设置环境变量的最佳方法是什么?

capistrano ruby-on-rails environment-variables capistrano3

42
推荐指数
3
解决办法
3万
查看次数

如何指示Capistrano 3加载我在远程主机上设置的shell环境变量?

我想指示Capistrano加载在远程服务器上定义的环境变量.我怎样才能做到这一点?

似乎当我在环境变量中导出我的环境变量时.bashrc,它们不会被Capistrano考虑在内.Capistrano似乎正在执行a /usr/bin/env来创建执行远程命令的环境,但这似乎并没有从中加载环境变量.bashrc.

我也告诉你我也在使用rvm-capistrano(以防万一它可能有帮助).

任何线索?

ruby rvm-capistrano capistrano3

12
推荐指数
2
解决办法
5591
查看次数

缺少'secret_token`和`secret_key_base`用于'生产'环境

我看到了这个解决方案的所有答案,但没有为我工作.

1 - 我的配置部署与DigitalOcean(Capistrano 3,Nginx和Puma)的本教程相同,部署成功,我的网页出错:

发生了未处理的低级错误.应用程序日志可能包含详细信息

在日志中:

机架应用程序错误:#<RuntimeError:缺少secret_tokensecret_key_base'生产'环境,请在config/secrets.yml>中设置这些值

2 - 在我的Droplet或VPN中,我使用rake secret文件中的key()创建了变量./bashrc

export SECRET_KEY_BASE=XXXXXX
Run Code Online (Sandbox Code Playgroud)

文件 /config/secrets.yml是默认的

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
Run Code Online (Sandbox Code Playgroud)

有了这个env变量,我检查了比这工作(echo $SECRET_KEY_BASEprintenv | grep SECRET_KEY_BASE)

3 - 重新启动Puma和Nginx并且此错误未解决后,我不知道检查或调试此错误的最佳方法是什么.

是否本教程不使用此解决方案的工作?

deployment capistrano ruby-on-rails nginx environment-variables

5
推荐指数
1
解决办法
3411
查看次数

capistrano 3的环境变量

使用capistrano 3添加环境变量的最佳方法是什么?

我试过了两个

set :default_env, { 
  'MAILCHIMP' => 'verylongstring'
}
Run Code Online (Sandbox Code Playgroud)

set :default_environment, { 
  'MAILCHIMP' => 'verylongstring',
}
Run Code Online (Sandbox Code Playgroud)

但似乎没有人做任何有用的事情.

capistrano3

4
推荐指数
1
解决办法
1185
查看次数