I have the same issue and here is capistrano code, implementing when you receive these errors:
desc 'Symlink linked directories'
task :linked_dirs do
next unless any? :linked_dirs
on release_roles :all do
execute :mkdir, '-pv', linked_dir_parents(release_path)
fetch(:linked_dirs).each do |dir|
target = release_path.join(dir)
source = shared_path.join(dir)
unless test "[ -L #{target} ]"
if test "[ -d #{target} ]"
execute :rm, '-rf', target
end
execute :ln, '-s', source, target
end
end
end
end
As I can understand here is using command ln for creating symlinks.
Reading manual about ln (man ln) we understand, that the command will probably fail due to system restrictions, when trying to make hard link directories.
-d, -F, --directory
allow the superuser to attempt to hard link directories (note: will probably fail
due to system restrictions, even for the superuser)
'ln -d' failing to create hard link and that's why executing 'ln -s' in order to create symlink(symbolic link instead of hard link).
So, no worries about this fail. If you would like to avoid it just change your deploy options like this:
set :format, :pretty
set :log_level, :info