a binary package update

Martin Badie martinbadie at yahoo.com
Tue Jun 2 13:15:43 UTC 2009


I have package-1.0  installed and want to update to package-2.0 using package-2.0.tbz package file. This binary package is at /var/tmp/packages/All. I have no /usr/ports directory

export PKG_PATH=/var/tmp/packages/All
export PKG_FETCH=/usr/bin/false 

portupgrade -PP postgresql-server

** Port directory not found: databases/postgresql83-server
** Listing the failed packages (-:ignored / *:skipped / !:failed)
        - databases/postgresql83-server (port directory error)

Do I need to have /usr/ports/ installed on that system? I just want to upgrade to package-2.0.tbz without having anything related to Ports ( /usr/ports) on my systems? Just like a
rpm -Uhv package-2.0.rpm on  Linux. Can someone enlighten me on how to do that with portupgrade? Or maybe with another tool on FreeBSD?


From: Polytropon <freebsd at edvax.de>
To: Martin Badie <martinbadie at yahoo.com>
Cc: freebsd-questions at freebsd.org
Sent: Monday, June 1, 2009 8:01:39 PM
Subject: Re: a binary package update

On Mon, 1 Jun 2009 02:03:10 -0700 (PDT), Martin Badie <martinbadie at yahoo.com> wrote:
> Hi,
> How can I update a pre-compiled package [...]

You cannot update a pre-compiled package, you can only overwrite
or replace the package (tbz file). However, you can update an
installed port or package; in most cases, it doesn't even matter
if you installed from a port or from a package.

> [...] for example I have a package-1.0.tbz and I have downloaded
> package-2.0.tbz. What I want is to update a installed 1.0 package
> to 2.0 without internet connection.

Is is relatively easy, but you need to make sure first that you
have all the dependencies for package-2.0, for example libdep-1.3,
depend-3.2.1 and libfoo-0.22.7. You first need to fetch them.

Now a question: The system that has internet access: Do you want
to install the new packages there, too?

> I have portupgrade-2.4.6_2,2
> installed on my system.

If you answered the question with "yes", then portupgrade can do it
for you. Simply update package-1.0 to package-2.0 and let
portupgrade create packages (-p). You can then transfer those
packages to the other system which can't fetch them by itself.

But if you answered "no", the task would be as follows: Get the
newest version of a package along with all those packages this
new version depends on. In order to do so, you may use the
simple (and ugly) shell script I attached. It uses pkg_add to
fetch those packages, but it does NOT install anything.

>From Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...


More information about the freebsd-questions mailing list