NetBSD-Users archive

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

Re: NetBSD vs FreeBSD



,--- You/Aleksej (Thu, 04 Aug 2011 02:08:19 +0400) ----*
| Alex Goncharov <alex-goncharov%comcast.net@localhost> writes:
| > ,--- You/Aleksej (Wed, 03 Aug 2011 11:47:27 +0400) ----*
| >
| > My impression from using NetBSD was that it's basically the same as ports:
| >
| >    make -C X/a/b install [package] -> Y/(bin,lib,...)
| >
| > only an X and Y being different for the two OSes:
| >
| >   NetBSD: X=/usr/pkgsrc, Y=/usr/pkg
| >   FreeBSD: X=/usr/ports, Y=/usr/local
| 
| If you don't go any further than just installing few packages and
| updating leaf ones, then you may have this impression. Real life is more
| complex than that.

I update my FreeBSD packages roughly every two weeks, building them from
the source.  Hickups do happen, but nothing non-surmountable.  Besides,
now FreeBSD has a powerful 'portmaster' tool to handle complex
dependencies -- gets a lot of attention and effort (but I don't use it).

| The first and the main problem is that FreeBSD packages don't depend on
| packages,

They do:

    ----------------------------------------
    pkg_info -xr emacs| head -n 4
    Information for emacs-23.3_1,2:
    
    Depends on:
    Dependency: xineramaproto-1.2
    ----------------------------------------
    make -C editors/emacs all-depends-list | head -n 4
    /usr/ports/devel/gmake
    /usr/ports/x11/libX11
    /usr/ports/x11/libXpm
    /usr/ports/x11-fonts/libXft
    ----------------------------------------

| they depend on files instead.

See above.

| This means that if you have some
| stray file in your /usr/local, you get wrong assumptions when building.

You may, due to gconf and such. Don't have stray files in /usr/local.
Don't 'ln -s true false' etc.

| Another problem is that it is impossible (or rather hard at the very least)
| to deploy parallel installation of packages under another prefix.

Hmm... From /usr/ports/Mk/bsd.port.mk:

----------------------------------------
# X11BASE               - Where X11 ports install things.
#                                 Default: ${LOCALBASE}
# LOCALBASE             - Where non-X11 ports install things.
#                                 Default: /usr/local
----------------------------------------

| This means that once you need to use a conflicting package, you have
| to employ various overly complex tricks for it. With pkgsrc I bootstrap
| another set of tools and after that I have easy access to another
| version of PostgreSQL client and server, another set of MPI tools,
| another set of TCL tools, packages from another pkgsrc branch, and so on.
| This also allows rather convenient maintainance approach, when you never
| update your packages (you build and install new ones instead, just use
| another prefix like "/usr/pkg-2011Q2").

So, on FreeBSD

   make -C editors/emacs LOCALBASE=/usr/pkg-2011Q2 install

would probably work.  I guess.  Won't try due to the lack of a need.

| HE CE3OH...

подумал Штирлиц... и сплюнул... в сугроб...

-- Alex -- alex-goncharov%comcast.net@localhost --


Home | Main Index | Thread Index | Old Index