tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: I wish I had a make target that...

Martin Husemann <> writes:

> "make replace" never seems to work for me and it does a lot more than

What specifically doesn't work?  I use it almost exclusively for
updating packages.

(If you replace a package, then the packages that depend on it might not
work due to ABI changes; hence pkgtools/pkg_rolling-replace.)

> I want (i.e. pkg_tarup). And pkg_add -u/-U can cause lots of updates I don't
> want to handle right now.

Given what you are doing, it seems that running pkg_tarup should be
quite fast and easy to ignore. 

What does pkg_add -U do in terms of updates?
Is it trying to install an updated version of some dependency?  If so,
how did the build to get the binary package work?

> I somehow feel like you all are only using pkgsrc on blindingly fast machines
> with SSDs ;-)

I use it on a 6 year old single core i386 with normal spinning disks.

In your perl example, doing make replace of perl with the debug options
will flip perl to debug.   And you can save the packages that are tarred
up and name them non-confusingly and then pkg_add -U to flip back and

If you are in situation where 5.14.2nb3 is installed, and you do a make
replace to also get 5.14.2nb3, then there should be no cascading issues.

If on the other hand 5.12.x is installed, then you're running into the
partial-update probem with pkgsrc, which is that updating random subsets
is not necessarily ok.

So before trying all of this, you should have a situation where pkg_chk
reports that there are no mismatched packages.  You can get to this
state with pkg_rolling-replace, where all of your packages that are
mismatched, and all that are dirty, will get replaced in tsorted
dependency order.

make update aims to do the same thing, but I find that it can fail
(because of an underlying package build failure) leaving you with
non-installed packages.  pkg_rolling-replace can similarly fail, but it
will leave you with possibly-inconsistent (and thus
possibly-non-working) packages, which is a devil I prefer, on average.

Attachment: pgp1MwO6bAwBf.pgp
Description: PGP signature

Home | Main Index | Thread Index | Old Index