[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
pkg/39430: Packages marked as 'not for deletion' cannot be upgraded
>Synopsis: Packages marked as 'not for deletion' cannot be upgraded
>Arrival-Date: Fri Aug 29 10:25:00 +0000 2008
>Originator: Stuart Shelton
>Release: pkgsrc latest from CVS
This has happened with a number of packages before, but the latest is nawk.
After a successful compile & test, 'bmake update' outputs:
=> Unwrapping files-to-be-installed.
===> test-message [nawk-20050424nb2] ===> Testing for nawk-20050424nb2
===> deinstall [nawk-20050424nb2] ===> Deinstalling for nawk-20050424nb2
Running /usr/bsd/sbin/pkg_delete -K /usr/bsd/var/db/pkg -r nawk-20050424
Package `nawk-20050424' is marked as not for deletion
===> _flavor-check-vulnerable [nawk-20050424nb2] ===> Checking for
vulnerabilities in nawk-20050424nb2
===> install-message [nawk-20050424nb2] ===> Installing for nawk-20050424nb2
ERROR: nawk-20050424 is already installed - perhaps an older version?
ERROR: If so, you may use either of:
ERROR: - "pkg_delete nawk-20050424" and "/usr/bsd/bin/bmake reinstall"
ERROR: to upgrade properly
ERROR: - "/usr/bsd/bin/bmake update" to rebuild the package and all
ERROR: of its dependencies
ERROR: - "/usr/bsd/bin/bmake replace" to replace only the package without
ERROR: re-linking dependencies, risking various problems.
*** Error code 1
... and exactly the same happens for 'bmake install' and 'bmake replace'.
THe only way I've been able to solve this in the past is to remove the package
entry under $PKGSRCDIR/var/db/pkg/ and then install as if the package is new -
but this seems to lose the 'do not delete' status: I've had this problem with
the bootstrap-mk-files package - whenever this is updated, it breaks my build
system as the first thing is does on upgrade is to delete the *.mk files which
are required to continue to reinstall the package.
Should a package marked as 'not for deletion' really be prevented from working
with 'bmake reinstall'?
Surely, the solution is to overwrite common files between the old version and
the new version, and then afterwards remove any files which were in the
previous version's PLIST but not in the new version's PLIST.
This would allow key system packages to be upgraded (or reinstalled, etc.)
without breaking and without having to hack the package database.
Or am I missing something obvious? Is there a standard method to upgrade these
key packages which I've missed?
Main Index |
Thread Index |