Upgrading the Installed package
Jeremy Chadwick
koitsu at freebsd.org
Wed Feb 6 09:51:33 UTC 2008
On Wed, Feb 06, 2008 at 02:10:19PM +0530, ??????????????? (Shantanoo) wrote:
> On Feb 6, 2008 11:41 AM, navneet Upadhyay <navneet.upadhyay at gmail.com> wrote:
> > Hi,
> > I have two binary packages of an application of version 1.1 and 1.2.
> > *The 1.1 is already installed, how can i upgrade it to 1.2* ?
> >
> > Do i have to uninstall 1.1 and then install 1.2 ? I would prefer a way by
> > which i can upgrade an wxisting package without uninstalling.
> >
>
> You may try portupgrade which can handle upgrades for you.
> more info on: http://www.onlamp.com/pub/a/bsd/2003/08/28/FreeBSD_Basics.html
Sigh... why do people always recommend portupgrade to users without
telling them of the caveats? I grow tired of this. So let's tell
Navneet exactly what he's getting into, shall we?
portupgrade:
- Written in Ruby, which not many UNIX admins are familiar with
(compared to, say, perl). If portupgrade has a bug, you will need
to speak Ruby.
- Ruby is not included in the base system; you have to install it
from ports (read: just another thing to have to maintain...)
ports base system:
- C-based, and includes all of the pkg_* utilities. Nearly every
FreeBSD user/administrator is familiar with these tools.
- gcc comes with the base system.
portupgrade:
- Maintains its own database of ports installed, dependencies, and
so on -- COMPLETELY separate from that of the ports base system.
- Said database must be kept in sync with ports base system
dependencies and other whatnots; and if they go out of sync (which
happens regularly as can be confirmed by the never-ending supply of
posts to freebsd-ports@ about portupgrade problems), you get to
read incredibly cryptic error messages from Ruby.
- Said database is Berkeley DB-based, which means you have to install
Oracle/Sleepycat BDB from ports. (I believe you can pick DB1.x
which comes with libc, but it's not recommended due to bugs).
ports base system:
- Uses flat text files in /var/db/pkg and /var/db/ports.
The reason portupgrade uses its own database is supposedly due to the
shortcomings/oversights of the existing ports system, and that's a
legitimate point.. But my opinion is that these shortcomings/oversights
should be addressed in the ports system and not via some third-party
tool which adds unnecessary complexities and more headaches.
Thus, I would suggest people go with the KISS (Keep It Simple, Stupid!)
method, and consider using tools which are written in languages which
come with the base system (e.g. C or sh) -- but even more importantly,
use and rely solely on the ports base system.
One such tool is portmaster (ports-mgmt/portmaster), maintained by Doug
Barton. It's actively maintained and written in sh. Its author is
quite active with freebsd-ports, and is quick to respond to both bug
reports and feature requests.
--
| Jeremy Chadwick jdc at parodius.com |
| Parodius Networking http://www.parodius.com/ |
| UNIX Systems Administrator Mountain View, CA, USA |
| Making life hard for others since 1977. PGP: 4BD6C0CB |
More information about the freebsd-questions
mailing list