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>