NetBSD-Users archive

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

Re: NetBSD vs FreeBSD

,--- You/Alistair (Thu, 4 Aug 2011 06:29:49 +0200) ----*
| Alex Goncharov <> writes:
| > Do you remember any specifics about the ports pains you had, absent from 
| my main gripe, as a user, was the absence of audit-packages, and the
| need to specify either the precise version number of a package,

On audit-packages, I know nothing, no comment.

On the version, I don't completely understand you:

  1. It would be helpful if you and others, when talking about the
     FreeBSD ports system, clearly differentiated between installing a
     package (e.g 'pkg_add emacs-23.3_1,2.tbz') and "from a port"
     (e.g. 'make -C editors/emacs').

  2. If the former is meant:

     a. And you install from /usr/ports/packages/All, what's the
        problem with specifying a version -- and how could it work
        without one if there were multiple emacs-*tbz files in that

     b. And you install remotely, via 'pkg_add -r', you don't need to
        specify a version: 'pkg_add -r emacs' will fetch and install
        something meaningful for you, doing necessary checks.

  3. If the later is meant, the major version may have to be
     specified -- because it matters:

       make -C java/openjdk<X> (X: one of 6 or 7 -- very different.)
| remember to wildcard things, when using the pkg_install tools, with
| possibly interesting effects if dealing with something like libtool-\*
| and libtool-base-\*

On my 8.2 system now:

ls -d /usr/ports/devel/libtool*

| the main differences i'd point out nowadays are the ...ummm
| portability of pkgsrc,

Where do people want to port FreeBSD ports system?  What people?  Why
would that be important for a FreeBSD user?

| the dewey comparison of version numbers making
| it possible to do audit-packages and the like, and pkgsrc's buildlink
| infrastructure, which has two advantages:
| 1.  it allows pkgsrc packages to be built with exactly the versions of
| software that are wanted, and not what happens to be already installed
| in /usr/local - to illustrate, imagine that ncurses is installed, and
| another package's configure script checks for the presence of ncurses
| (bad example, since i think freebsd has ncurses in base, but ykwim)

This all seems very far-fetched.

ls -d1 /usr/ports/databases/postgresql*server

ls -d1 /usr/ports/databases/mysql*server

s -d1 /usr/ports/editors/*


Does one really need more than that?

| 2. isolates dependencies so that dangling or hidden dependencies just
| do not happen.

'pkgdb -F' won't do it for you on FreeBSD?
| in addition, from a user's pov, pkgsrc's config file handling is done
| in a smart way so that any changes to standard configs are preserved,
| rc.d scripts can optionally be installed to /etc so that they work
| out

Any port rc.d script is installed (with either install method) under
/usr/local/etc/rc.d and works out of the box (subject to rc.conf
X_enable=YES, of course).

| of the box, and much, much more.

It is quite possible that pkgsrc has some advantages for a very
sophisticated use, but it seems to me that in comparing it with
FreeBSD ports some of the obvious capacities of the latter are

Such as '-p' and '-P' of pkg_add:

PKG_ADD(1)              FreeBSD General Commands Manual             PKG_ADD(1)

     pkg_add -- a utility for installing software package distributions

     pkg_add [-viInfFrRMSK] [-t template] [-p prefix] [-P prefix]
             [-C chrootdir] pkg-name [pkg-name ...]

     pkg-name [pkg-name ...]
             The named packages are installed.  A package name of - will cause
             pkg_add to read from stdin.  If the packages are not found in the
             current working directory, pkg_add will search them in each
             directory named by PKG_PATH.

     -p, --prefix prefix
             Set prefix as the directory in which to extract files from a
             package.  If a package has set its default directory, it will be
             overridden by this flag.  Note that only the first @cwd directive
             will be replaced, since pkg_add has no way of knowing which
             directory settings are relative and which are absolute.  It is
             rare in any case to see more than one directory transition made,
             but when such does happen and you wish to have control over *all*
             directory transitions, then you may then wish to look into the
             use of MASTER and SLAVE modes (see the -M and -S options).  If
             the -p flag appears after any -P flag on the command line, it
             overrides its effect, causing pkg_add not to use the given prefix

     -P prefix
             Does the same as the -p option, except that the given prefix is
             also used recursively for the dependency packages, if any.  If
             the -P flag appears after any -p flag on the command line, it
             overrides its effect, causing pkg_add to use the given prefix

-- Alex -- --

Home | Main Index | Thread Index | Old Index