5

我正在编写使用 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"} 是什么意思。谢谢

4

1 回答 1

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
于 2012-08-21T16:02:10.300 回答