1

我有这个 capistrano 命令。

  任务:symlink_shared 做
        运行“rm -rf #{current_path}/config/database.yml”
        运行“ln -nfs #{shared_pa​​th}/config/database.yml #{release_path}/config/database.yml”
        运行“rm -rf #{current_path}/config/app_config.yml”
        运行“ln -nfs #{shared_pa​​th}/config/app_config.yml #{release_path}/config/app_config.yml”

        运行“rm -rf #{current_path}/public/records”
        运行“ln -nsf #{shared_pa​​th}/uploads/records #{release_path}/public/records”
        运行“rm -rf #{current_path}/public/documents”
        运行“ln -nsf #{shared_pa​​th}/uploads/documents #{release_path}/public/documents”
        运行“rm -rf #{current_path}/public/pdf_xmls”
        运行“ln -nsf #{shared_pa​​th}/uploads/pdf_xmls #{release_path}/public/pdf_xmls”
        运行“rm -rf #{current_path}/public/pdf_xml_files”
        运行“ln -nsf #{shared_pa​​th}/uploads/pdf_xml_files #{release_path}/public/pdf_xml_files”
    结尾

一切正常,符号链接也被创建。但是最后一个命令 symlink 在其中一步创建符号链接 pdf_xml_files 。即,它创建一个名为 pdf_xml_files 的目录,并在其中创建 pdf_xml_files 符号链接。需要一些帮助??

4

1 回答 1

2

看起来 /home/deploy/weddingcards/releases/20090325105337/public/pdf_xml_files 目录已经存在。

ln 命令正在查找该目录并强制它在目录中创建指向您的目标的符号链接。

如果您删除 /home/deploy/weddingcards/releases/20090325105337/public/pdf_xml_files 然后运行相同的命令它应该做你想做的事。

或者,您可以将命令更改为:

run "ln -nsf #{shared_path}/uploads/pdf_xml_files #{release_path}/public/"

它将在公共目录中创建符号链接。

于 2009-04-02T08:37:54.683 回答