Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 1 Jun 2003 14:21:02 -0500
From:      Stephen Hilton <nospam@hiltonbsd.com>
To:        epbox@yandex.ru
Cc:        freebsd-questions@freebsd.org
Subject:   Re: "pkg_add -r ..." from a url other than the default (using PACKAGESITE, PACKAGEROOT or smth. else)
Message-ID:  <20030601142102.6ebb409c.nospam@hiltonbsd.com>
In-Reply-To: <200305270901.17203.epbox@yandex.ru>
References:  <200305270901.17203.epbox@yandex.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 27 May 2003 09:01:16 +0400
Vladik Kozin <epbox@yandex.ru> wrote:

>  	What if I'd like the "pkg_add -r" to work exactly the same way as it does by 
> default but using an alternative url? Now, let say, there is a url: 
> "ftp://fbsd.local/" with the following directory structure 
> "pub/unix/FreeBSD/ports/i386/packages-4.8-release/". I'd like to tell 
> "pkg_add -r foopackage" and have it installed with all its dependencies from 
> the url mentioned above. As far as I understand the PACKAGESITE var specifies 
> the exact path to the package, thus if the "/sysutils/foopackage.tgz" depends 
> on "/lang/foodep.tgz" then the latter won't be retrieved and the pkg_adding 
> process will fail. Probably I need to use the PACKAGEROOT var? But in this 
> case the site I intend to use is supposed to have some specific "default 
> FreeBSD" structure, isn't it? In my case 
> "/FreeBSD/ports/i386/packages-4.8-release/" is a commonly used structure, but 
> it is prefixed by "/pub/unix/". 
> 	Any ideas about how to solve the problem?

If the packages are on a box you control and you are using the 
portupgrade tool, then here is what I did for a FreeBSD 4-STABLE setup:

Set up anonymous ftp on the "package building" box with a directory 
structure like this:
/var/ftproot/pub/FreeBSD/ports/i386/packages-4-stable

Set the home for the anonymous ftp user with vipw:
ftp:*:14:14:ftp:0:0:Mr. Anonymous FTP:/var/ftproot:/nonexistent

Create a sym link so when the packages are built they are available 
in /var/ftproot/pub/FreeBSD/ports/i386/packages-4-stable.

ln -s /var/ftproot/pub/FreeBSD/ports/i386/packages-4-stable /usr/ports/packages

Build the packages for the rest of the local machines.



On the machine seeking the packages I add this to the 
/usr/local/etc/pkgtools.conf file:

    ENV['PKG_PATH'] = '/All'
    ENV['PACKAGEROOT'] = 'ftp://mypackagemachine.mynet.net'


So now on my local machine that I want to install "foo-package" 
I can:

portupgrade -NviPPr www/foo-package

And it will install a package from "mypackagemachine.mynet.net" 
If the package is not there it errors out with a descriptive message.

Regards,

Stephen Hilton
nospam@hiltonbsd.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030601142102.6ebb409c.nospam>