summaryrefslogtreecommitdiffstats
path: root/urpmi
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2007-08-11 12:46:03 +0000
committerPascal Rigaux <pixel@mandriva.com>2007-08-11 12:46:03 +0000
commitd2736a81e1df5c19bdbc6e62b028e2f18a130480 (patch)
treec9d871f56f75d39bbc5f128abecf3950f76d09c5 /urpmi
parent25428f578665a94d873ea496da130059fee47fef (diff)
downloadurpmi-d2736a81e1df5c19bdbc6e62b028e2f18a130480.tar
urpmi-d2736a81e1df5c19bdbc6e62b028e2f18a130480.tar.gz
urpmi-d2736a81e1df5c19bdbc6e62b028e2f18a130480.tar.bz2
urpmi-d2736a81e1df5c19bdbc6e62b028e2f18a130480.tar.xz
urpmi-d2736a81e1df5c19bdbc6e62b028e2f18a130480.zip
- urpmi
o new option --replacepkgs (same as rpm --replacepkgs) (#16112)
Diffstat (limited to 'urpmi')
-rwxr-xr-xurpmi14
1 files changed, 12 insertions, 2 deletions
diff --git a/urpmi b/urpmi
index e77bb5af..52f268d6 100755
--- a/urpmi
+++ b/urpmi
@@ -102,6 +102,7 @@ usage:
") . N(" --install-src - install only source package (no binaries).
") . N(" --clean - remove rpm from cache before anything else.
") . N(" --noclean - don't clean rpms from cache.
+") . N(" --replacepkgs - force installing packages which are already installed.
") . N(" --force - force invocation even if some packages do not exist.
") . N(" --allow-nodeps - allow asking user to install packages without
dependencies checking.
@@ -458,7 +459,15 @@ sub ask_choice {
#- handle parallel option if any.
#- return value is true if program should be restarted (in order to take care of important
#- packages being upgraded (problably urpmi and perl-URPM, but maybe rpm too, and glibc also ?).
-my $restart_itself = urpm::select::resolve_dependencies($urpm,
+my $restart_itself;
+if ($options{replacepkgs}) {
+ foreach (keys %requested) {
+ my $pkg = $urpm->{depslist}[$_] or next;
+ $pkg->set_flag_requested;
+ $state->{selected}{$_} = undef;
+ }
+} else {
+ $restart_itself = urpm::select::resolve_dependencies($urpm,
$state,
\%requested,
rpmdb => $env && "$env/rpmdb.cz",
@@ -469,7 +478,8 @@ my $restart_itself = urpm::select::resolve_dependencies($urpm,
nodeps => $urpm->{options}{'allow-nodeps'} || $urpm->{options}{'allow-force'},
no_suggests => $urpm->{options}{'no-suggests'},
priority_upgrade => $test || $env ? '' : $urpm->{options}{'priority-upgrade'},
-);
+ );
+}
my @unselected_uninstalled = @{$state->{unselected_uninstalled} || []};
if (@unselected_uninstalled) {