【发布时间】:2018-03-29 04:03:41
【问题描述】:
我知道您可以在 Chef recipes 中运行“执行”模块,并且它包含一个 cwd 和用户参数,允许您在当前工作目录中以该用户身份运行命令。这是我在代码中所做的:
execute 'rpmdev-setuptree' do
user 'rpmbuild'
cwd '/home/rpmbuild'
live_stream true
action :run
end
我一直在以 root 身份执行此命令或显式更改目录(即执行 'cd /home/rpmbuild && rpmdev-setuptree)进行不同的变体,但这不起作用。无论我做什么,厨师似乎都决心在 /root 目录中运行此命令。为什么会这样?请注意,我一直在做:
execute 'cd /home/rpmbuild && rpmdev-setuptree' do
user 'rpmbuild'
cwd '/home/rpmbuild'
live_stream true
action :run
end
或者
execute 'sudo su - rpmbuild && rpmdev-setuptree' do
user 'root'
cwd '/home/rpmbuild'
live_stream true
action :run
end
谁能告诉我为什么会这样?我正在尝试在 /home/rpmbuild 目录中运行 rpmdev-setuptree,以便它构建路径,但它总是在 /root 目录中运行此命令。
输出在我运行的 sn-p 之间变化,有些完成但没有输出。但是当我尝试单独使用 rpmdev-setuptree 时,我没有注意到它会:
[execute] touch: cannot touch ‘/root/.rpmmacros’: Permission denied
grep: /root/.rpmmacros: No such file or directory
/bin/rpmdev-setuptree: line 43: [: -lt: unary operator expected
grep: /root/.rpmmacros: No such file or directory
/bin/rpmdev-setuptree: line 57: [: -lt: unary operator expected
grep: /root/.rpmmacros: No such file or directory
/bin/rpmdev-setuptree: line 75: [: -lt: unary operator expected
mkdir: cannot create directory ‘/root/rpmbuild’: Permission denied
mkdir: cannot create directory ‘/root/rpmbuild’: Permission denied
mkdir: cannot create directory ‘/root/rpmbuild’: Permission denied
mkdir: cannot create directory ‘/root/rpmbuild’: Permission denied
mkdir: cannot create directory ‘/root/rpmbuild’: Permission denied
【问题讨论】: