"pkg_add -r ..." from a url other than the default (using
PACKAGESITE, PACKAGEROOT or smth. else)
Stephen Hilton
nospam at hiltonbsd.com
Sun Jun 1 12:21:38 PDT 2003
On Tue, 27 May 2003 09:01:16 +0400
Vladik Kozin <epbox at 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 at hiltonbsd.com
More information about the freebsd-questions
mailing list