how do i automate building packages?

Manolis Kiagias sonicy at
Sat Nov 28 09:26:59 UTC 2009

Gary Kline wrote:
> 	How do I build tarballs of packages that usually wind up in 
> 	/usr/ports/packages?
> 	I thought I had something in /etc/make.conf, but nope.  My
> 	build of OOo [311] recently finished on my new to-be server.  
> 	Since both the new Dell and this older Dell are running 7.2, I
> 	figure I can do any builds and move the packages across.
> 	I thought I had seen foo.tgz in /usr/ports/bar/foo/; but this
> 	time, no expected tarball.  --??--  A man ports isn't very
> 	clear.  I usually type make install clean when I build
> 	anything.  If I have to start over from scratch with
> 	openoffice would I type
> 	# make install package clean? Or what?
> 	anybody?
Now that you got it installed, you may use pkg_create:

pkg_create -Rb

(You can get the exact package name using pkg_info -Ix openoffice)
The -R flag will also build all dependencies of openoffice.

Something along the lines of the following script:

#! /usr/bin/env bash
mkdir -p /usr/ports/packages
cd /usr/ports/packages
rm -rf *.tbz
echo "Package creation starting `date`"
for i in `pkg_info  -Ea`
 echo  "Creating $i"
 pkg_create -b $i
echo "Finished, `date`"

will create a package for every single port installed on your system and
place it in /usr/ports/packages.  You can then move these and install
them on another system. Notice the script does not use -R as it is
already building all packages  :)

More information about the freebsd-questions mailing list