Capistrano символическая проблема? - PullRequest
1 голос
/ 17 марта 2009

У меня есть эта команда capistrano.

  task :symlink_shared do
        run "rm -rf  #{current_path}/config/database.yml"
        run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
        run "rm -rf  #{current_path}/config/app_config.yml"
        run "ln -nfs #{shared_path}/config/app_config.yml #{release_path}/config/app_config.yml"

        run "rm -rf  #{current_path}/public/records"
        run "ln -nsf #{shared_path}/uploads/records #{release_path}/public/records"
        run "rm -rf  #{current_path}/public/documents"
        run "ln -nsf #{shared_path}/uploads/documents #{release_path}/public/documents"
        run "rm -rf  #{current_path}/public/pdf_xmls"
        run "ln -nsf #{shared_path}/uploads/pdf_xmls #{release_path}/public/pdf_xmls"
        run "rm -rf  #{current_path}/public/pdf_xml_files"
        run "ln -nsf #{shared_path}/uploads/pdf_xml_files #{release_path}/public/pdf_xml_files"
    end

Все работает и символические ссылки также создаются. Но последняя команда symlink создает символическую ссылку pdf_xml_files на один шаг внутрь. то есть он создает каталог с именем pdf_xml_files, а внутри него создается символическая ссылка pdf_xml_files. Нужна помощь??

1 Ответ

2 голосов
/ 02 апреля 2009

Похоже, каталог / 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/"

и он создаст символическую ссылку внутри публичного каталога.

...