首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用$PATH Cookbook更新$PATH

用$PATH Cookbook更新$PATH
EN

Stack Overflow用户
提问于 2014-03-24 19:35:18
回答 1查看 1.8K关注 0票数 3

我创建了2本食谱: java_kevin和maven_kevin:

cookbooks/java_kevin/recipes/default.rb

代码语言:javascript
运行
复制
node.default['user'] = 'vagrant' 
node.default['user_home'] = '/home/' + node['user'] 
node.default['my_dir'] = node['user_home'] + '/my'

node.default['vagrant'] = '/vagrant'

node.default['java_home'] = node['my_dir'] + '/jdk1.7.0_51'

# Install Java 7 RPM
execute "install_oracle_java7" do
    command "rpm -ivh --prefix=" + node['my_dir'] + " jdk-7u51-linux-x64.rpm"
    cwd node['vagrant']
    creates node['java_home']
end

magic_shell_environment 'JAVA_HOME' do 
    value node['java_home']
end 

magic_shell_environment 'PATH' do 
    value "$PATH:" + node['java_home'] + '/bin'
end 

cookbooks/maven_kmm/recipes/default.rb

代码语言:javascript
运行
复制
node.default['user'] = 'vagrant' 
node.default['user_home'] = '/home/' + node['user'] 
node.default['my_dir'] = node['user_home'] + '/my'

node.default['maven_download_dir'] = node.default['user_home'] + '/apache-maven-3.2.1-bin.tar.gz'

# Download Maven 3.2.1
remote_file node['maven_download_dir'] do
    source "http://www.bizdirusa.com/mirrors/apache/maven/maven-3/3.2.1/binaries/apache-maven-3.2.1-bin.tar.gz"
    checksum "aaef971206104e04e21a3b580d9634fe"
end

execute "unpack_and_uncompress_maven" do
    command "tar -zxvf " + node['maven_download_dir']
    cwd node['user_home']
    creates node['user_home'] + '/apache-maven-3.2.1'
end

execute "move_maven_to_my_dir" do
    command "mv " + node['user_home'] + '/apache-maven-3.2.1' + " " + node['my_dir']
    cwd node['user_home']
    creates node['my_dir'] + '/apache-maven-3.2.1'
end

node.default['maven_home'] = node['my_dir'] + '/apache-maven-3.2.1'

magic_shell_environment 'M2_HOME' do 
    value node['maven_home']
end 

magic_shell_environment 'PATH' do 
    value "$PATH:" + node['maven_home'] + '/bin'
end 

在配置之后,我只看到Maven路径被正确地添加到$PATH

代码语言:javascript
运行
复制
[vagrant@vagrant-centos65 ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/my/apache-maven-3.2.1/bin:/home/vagrant/bin

[vagrant@vagrant-centos65 ~]$ which mvn
~/rm/apache-maven-3.2.1/bin/mvn

[vagrant@vagrant-centos65 ~]$ which java
/usr/bin/which: no java in (/usr/local/bin:/bin:/usr/bin:....

为什么JAVA_HOME不是最终$PATH项目的一部分?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-28 04:46:53

我相信magic_shell_environment为每个资源名称创建一个唯一的文件(在这里,'PATH‘在这里,您的两个菜谱都试图创建相同的文件。最有可能的是,第一个菜谱创建的PATH.sh文件被第二个菜谱覆盖。

我不知道如何使用magic_shell来解决这个问题,但我相信这是您“为什么”问题的答案。

请参阅shell/blob/master/providers/environment.rb

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22618960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档