使用厨师食谱更新.bashrc

时间:2012-08-21 11:55:50

标签: ruby chef

我正在编写使用chef-solo安装jsk的练习方法,我需要更新.bashrc文件来设置JAVA_HOMEPATH个变量。我不知道怎么做。任何人都可以告诉我该怎么做。 我的一些代码是..

file "/home/user/.bashrc" do
    owner   "root"
    #something goes here.... i don't know what. but i write
    #%{bash -i -c "source /etc/bash/bashrc && bashrc update"}

    content "JAVA_HOME=/usr/java/jdk1.1.0.05"
    content "PATH=$PATH:JAVA_HOME/bin"

  end

我不明白command%{bash -i -c“source / etc / bash / bashrc&& bashrc update”}是什么意思。感谢

1 个答案:

答案 0 :(得分:4)

首先,/etc/skel/是创建新用户时复制的目录。更改bashrc不会影响您现有的用户,所以您可能想要更改其他文件?

其次,注释掉的命令启动一个新的bash shell,并在该shell中发送/etc/bash/bashrc(重新加载),然后执行bashrc update。我不知道那是什么,它可能是你机器上的shell脚本? 你为什么要打电话呢?它甚至不会引用您更改的文件。

第三,你拨打content两次,这意味着只有第二行会在该档案中。

您可能想要做的是:

创建一个文件files/default/bashrc并将整个bashrc(包括Java行)复制到那里 将上面的代码替换为:

file "/home/whateveruseryouwant/.bashrc" do
  owner "whateveruseryouwant"
  group "whateveruseryouwant"
  source "bashrc"
end