satisfying package dependencies from installation DVD when building a port -- HOW?

Polytropon freebsd at edvax.de
Wed Mar 14 16:50:06 UTC 2012


On Wed, 14 Mar 2012 17:11:55 +0100, IMAP List Administration wrote:
> Hello,
> 
> I've just installed 9.0-RELEASE (amd64) in a KVM/Qemo VM on debian linux, which
> is extremely painful because of the abysmal I/O performance, and would like to
> build the virtio-kmod. After unpacking src.txz (xz -c
> /cd/usr/freebsd-dist/src.txz | tar xf -) I did the following:
> 
>     # cd /usr/ports/emulators/virtio-kmo
>     # make clean install
> 
> at this point I saw port names such as perl, tcl, neon, sqlite, etc fly past. 

You can use the command

	# make missing

to get a list of which dependencies need to be installed.
See "man 7 ports" for other targets that might be useful.



> Apparently the ports system satisfies dependencies from the ports tree by default.

Correct. Dependencies are resolved and installed (usually
by compiling them from source, installing and registering
them), then the initial build is returned to.



> Since I have not updated anything, it seems reasonable, and much less painful to
> satisfy the dependencies using the packages on the installation DVD, which is
> mounted on /cd.

If the default options of the dependency ports are fine for
you, this should be no problem.



> I tried setting PKG_PATH to "/cd/packages" and to "/cd/packages/All", but when I
> simply try to test using, for example, "pkg_add perl" pkg_add simply says "can't
> stat package file".

Change CWD to the location of the packages (on CD) and
try again. According to "man pkg_add":

	If the packages are not found in the current
	working directory, pkg_add will search them in
	each directory named by PKG_PATH.

If there's still an error, can you provide the command
you entered plus the output? Maybe adding -v helps to
give some more information.



> I'm guessing it would be pointless to try to use a (remote) URL in PACKAGEROOT,
> as the "-r" flag *must* be give in order for pkg_add to honor the setting, and
> god knows how the ports system calls pkg_add, if at all.

The ports do not use pkg_add.

However, using a tool like portmaster or portinstall can
help you using binary packages (options -P and -PP).

If you use pkg_add -r, some "more magic" will be applied
to form the proper URI for fetching the packages (e. g.
architecture and OS version may be considered).



> I had a long look in the docs, but this stuff doesn't *seem* to be documented :(

I don't remember any particular documentation regarding
this procedure. The pkg_add command should automatically
install dependencies (option -i to prevent).



> Is it possible to get the ports system to satisfy dependencies using the
> packages from the installation DVD?  If so, how?????

I think that's possible; I hope you got some inspiration.



-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...


More information about the freebsd-questions mailing list