Tôi đang viết một cuốn sách dạy nấu ăn để cài đặt Hubot . Trong công thức, tôi làm như sau:
bash "install hubot" do
user hubot_user
group hubot_group
cwd install_dir
code <<-EOH
wget https://github.com/downloads/github/hubot/hubot-#{node['hubot']['version']}.tar.gz && \
tar xzvf hubot-#{node['hubot']['version']}.tar.gz && \
cd hubot && \
npm install
EOH
end
Tuy nhiên, khi tôi cố chạy đầu bếp-máy khách trên máy chủ cài đặt sách nấu ăn, tôi nhận được quyền từ chối ghi vào thư mục của người dùng chạy đầu bếp-khách hàng, không phải người dùng hubot. Vì một số lý do, npm
đang cố chạy theo người dùng sai, không phải người dùng được chỉ định trong tài nguyên bash.
Tôi có thể chạy sudo su - hubot -c "npm install /usr/local/hubot/hubot"
thủ công và điều này đạt được kết quả tôi muốn (cài đặt hubot làm người dùng hubot). Tuy nhiên, có vẻ như đầu bếp-khách hàng không thực hiện lệnh với tư cách là người dùng hubot. Dưới đây bạn sẽ tìm thấy thực hiện đầu bếp-khách hàng. Cảm ơn bạn trước.
Saving to: `hubot-2.1.0.tar.gz'
0K ...... 100% 563K=0.01s
2012-01-23 12:32:55 (563 KB/s) - `hubot-2.1.0.tar.gz' saved [7115/7115]
npm ERR! Could not create /home/<user-chef-client-uses>/.npm/log/1.2.0/package.tgz
npm ERR! Failed creating the tarball.
npm ERR! couldn't pack /tmp/npm-1327339976597/1327339976597-0.13104878342710435/contents/package to /home/<user-chef-client-uses>/.npm/log/1.2.0/package.tgz
npm ERR! error installing hubot@2.1.0 Error: EACCES, permission denied '/home/<user-chef-client-uses>/.npm/log'
...
npm not ok
---- End output of "bash" "/tmp/chef-script20120123-25024-u9nps2-0" ----
Ran "bash" "/tmp/chef-script20120123-25024-u9nps2-0" returned 1