Ports and package creation Automation

b. f. bf1783 at googlemail.com
Thu Jul 23 07:48:39 UTC 2009

> I know that pkg_create command will create packages for the other 3 boxes.
> if I am going to rebuild all of my ports from scratch, can I somehow
> tell FreeBSD
> to create a package all the time and store it in a directory?

In addition to what the others have mentioned, you can also use
"portmaster -g" to create the packages.

> also what file do I modify to tell the other local machines where to
> find the packages?
> can this be a sftp url? it would be convenient cause sshd is installed in base.

That depends upon how you are going to manage the package installation
on the other machines.  If you are using pkg_add(1), then you can
either use full URLs like:

pkg_add ftp://packagemachineipaddress/packagedirectory/www/firefox-3.5.1,1.tbz

or you can define either PKG_PATH, PACKAGEROOT, or PACKAGESITE in the
environment in which you're going to call pkg_add:

env PACKAGEROOT='ftp://packagemachineipaddress/packagedirectory/'
pkg_add -r firefox35

You can test your settings with "pkg_add -nvr" to see from where it is
trying to fetch packages. See the pkg_add(1) manpage.  Note that if
you use pkg_add(1), you are limited to schemes supported by fetch(3)
for remote packages.  I don't think this includes sftp:// or ftps://,
although I think it does support http:// with basic authentication and
password-protected ftp. Of course, you could perhaps tunnel your ftp
through ssh; or you could turn remote packages into "local" packages
by mounting the remote package directory via Samba or NFS, protected
by Kerberos or IPSEC if you wish.

If you use portupgrade/portinstall -PP, then you can define
PACKAGESITE and PKG_FETCH in the environment, where PKG_FETCH is an
sftp-aware client like curll(1) from ftp/curl, with the appropriate
flags.  See the portupgrade(1) manpage.


More information about the freebsd-questions mailing list