how do i automate building packages?
Manolis Kiagias
sonicy at otenet.gr
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 openoffice.org-3.1.1
(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`"
IFS=$'\n'
for i in `pkg_info -Ea`
do
echo "Creating $i"
pkg_create -b $i
done
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