How did upgrading applications happen before portupgrade etc?
Alexander Leidinger
Alexander at Leidinger.net
Sun Aug 12 23:15:01 PDT 2007
Quoting RW <fbsd06 at mlists.homeunix.com> (from Sun, 12 Aug 2007
18:18:10 +0100):
> On Sun, 12 Aug 2007 14:20:59 +0200
> Alexander Leidinger <Alexander at Leidinger.net> wrote:
>
>> Quoting RW <fbsd06 at mlists.homeunix.com> (Sat, 11 Aug 2007 22:58:58
>> +0100):
>>
>> > On Sat, 11 Aug 2007 13:33:22 -0700
>> > Jeremy Chadwick <koitsu at FreeBSD.org> wrote:
>> >
>> > > On Sat, Aug 11, 2007 at 03:02:53PM +0400, Rakhesh Sasidharan
>> > > wrote:
>> > > >> 5. pkg_delete port
>> > > >
>> > > > I see. In step 5, "pkg_delete port" wont work if port is
>> > > > required by others right? So you delete those apps too? Could
>> > > > be a lot of stuff to uninstall, right?
>> > >
>> > > Absolutely correct. That might seem like a nightmare to most
>> > > people, but to me it's not.
>> >
>> > It's not correct, "pkg_delete -f" can force the deletion. I would
>> > manually upgrade a port like this:
>> >
>> > cd /usr/ports/misc/foo
>> > make ; do the build
>> > pkg_info -qO misc/foo ; get old package name
>> > pkg_create -b <old-package-name> ; backup existing package
>> > /usr/local/etc/rc.d/foo stop ; stop the daemon if needed
>> > pkg_delete -f <old-package-name> ; force removal
>> > make install
>>
>> At this point your /var/db/pkg/ directory does not reflect reality
>> anymore,
>
> I know, I was just pointing out that it is possible to upgrade a port
> manually without removing every single package that depends on it.
>
> Actually having dependencies package version mismatches needn't cause
> any significant problems. And massaging them into self-consistency is
It does cause problems. You have no +REQUIRED_BY file anymore, so
pkg_delete allows you to remove it without a warning even if it is
still needed. If you make sure to keep the file, you still need to
change the dependencies (in +CONTENTS and in +REQUIRED_BY), else the
entries in +REQUIRED_BY are not removed on deinstall of a port.
> itself a form of corruption, since you lose information about what was
> built against what.
No, it's not a corruption as long as the changes are ABI compatible
(if it isn't compatible, you need to update some more ports, but this
is not the subject of the discussion). The dependency tracking in
/var/db is meant to reflect the current dependencies of the installed
software, not the dependencies when a port was first build. It doesn't
matter for e.g. a viruschecker if rar is at version 1.1 or 1.2, as
long as the command line options used still have the same syntax and
semantic.
Bye,
Alexander.
--
I'll burn my books.
-- Christopher Marlowe
http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137
More information about the freebsd-ports
mailing list