2009-03-17 7 views
1

私はこの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はsymlink pdf_xml_filesを1ステップ内側に作成します。 つまり、pdf_xml_filesという名前のディレクトリが作成され、その中にpdf_xml_filesシンボリックリンクが作成されます。 ヘルプが必要ですか?

+0

リンクが作成される前にcurrent_path、shared_pa​​th、およびrelease_pathを印刷して、結果を使用して回答を編集できますか? –

+0

ここに、上記のランキャップタスクのペーストティーがあります。 http://pastie.org/426393 – Autodidact

+0

あなたはこれに運がありましたか? – Andy

答えて

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/" 

、それは公共のディレクトリ内にシンボリックリンクを作成します。

+0

これをチェックして後で返信します。 – Autodidact

関連する問題