summaryrefslogtreecommitdiff
path: root/solenv/bin/modules/installer/worker.pm
diff options
context:
space:
mode:
Diffstat (limited to 'solenv/bin/modules/installer/worker.pm')
-rw-r--r--solenv/bin/modules/installer/worker.pm5
1 files changed, 4 insertions, 1 deletions
diff --git a/solenv/bin/modules/installer/worker.pm b/solenv/bin/modules/installer/worker.pm
index 917066f4f784..aab676f9a086 100644
--- a/solenv/bin/modules/installer/worker.pm
+++ b/solenv/bin/modules/installer/worker.pm
@@ -23,6 +23,7 @@ use File::Copy;
use File::stat;
use File::Temp qw(tmpnam);
use File::Path;
+use File::Basename;
use installer::control;
use installer::converter;
use installer::exiter;
@@ -369,7 +370,9 @@ sub install_simple ($$$$$$)
my $onelink = ${$unixlinksarray}[$i];
my $target = $onelink->{'Target'};
my $destination = $onelink->{'destination'};
- my $cmd = "ln -sf '$target' '$destdir$destination'";
+ my $cmd = "mkdir -p '" . dirname($destdir . $destination) . "'";
+ system($cmd) && die "Failed to execute \"$cmd\"";
+ $cmd = "ln -sf '$target' '$destdir$destination'";
system($cmd) && die "Failed \"$cmd\"";
push @lines, "$destination\n";