PDA

View Full Version : how to download ports?


hassan
December 9th, 2008, 20:19
Hello

I am using freeBSD on a system with low speed connection
is there any way to download ports elsewhere and install
then on my system?

thanks for help!

l2f
December 9th, 2008, 20:28
Hello,

fetch the tarball into a differente machine (fast one) and copy it to the slow machine: /usr/ports/distfiles and rerun make

how to get the fetch url: look into the Makefile
variable: MASTER_SITES and EXTRACT_SUFX to get the right tarball
or
run make and do ctrl+C when you see the fetch command.

Regards,

SirDice
December 9th, 2008, 20:29
Yes, you can download the source files on another system and copy them to /usr/ports/distfiles. A normal port's make will find them there.


Or download the pre-compiled packages and install those if you don't want to compile everything yourself.

marius
December 9th, 2008, 20:32
Yes, you can build ports on another computer and move the port/packaget over. Try using "make package-recursive" on the port you would like to move over to the other machine.

cd /usr/ports/editors/nano && make package-recursive

This will build and install the port on the machine you built it on, and you will have to uninstall it afterwards.


If you already have a port installed you can then make a package out of it without having to recompile the port.

pkg_create -Rb /var/db/pkg/nano-1.2.5/

This will make a package called nano-1.2.5.tbz in /var/db/pkg/ that you can later install with pkg_add

Ole
December 9th, 2008, 20:35
Hello

I am using freeBSD on a system with low speed connection
is there any way to download ports elsewhere and install
then on my system?

thanks for help!

I may suggest:
1) synchronize /usr/ports/ tree with another machine with fast Internet connection, then
2) (on the fast link machine) change current directory to interesting ports (for example kde3):

cd /usr/ports/x11/kde3

3) prepare all config files for all dependency:

make config-recursive

- doing this for a while you not get "no operation" after entering.
4) fetch ports and all dependency:

make fetch && make fetch-recursive

5) then burn /usr/ports/distfiles directory and /var/db/ports (saved options) to CD/flash drive and mount it to /usr/ports/distfiles and /var/db/ports on home machine.
6) go to ports dir (cd /usr/ports/x11/kde3) and "make install"


Also if release/architecture on machine matching you may himself compile all packages

make package-recursive


and after complete collect all .tbz files in /usr/ports to CD/flash for "pkg_add " in home machine

hassan
December 10th, 2008, 15:39
Thanks all
I will try that ;)

lme@
December 11th, 2008, 16:46
A nice thing to have would be the following:


# Download and unzip ports/{Mk,Makefile,$basefoo}
> fetch http://foo.freebsd.org/bar/ports_base.tbz
> tar xf ports_base.tbz
# Get INDEX
> make fetchindex
# Search the index and download all necessary port skeletons
> make quicksearch name=foobar
> make fetchskel-recursive portname=baz/foobar
# Compile foobar
> cd baz/foobar && make install clean


That way you only need to download
- Portstree base file like Makefiles etc. (a few MB)
- The port's and all dependent skeletons (a few KB)

This would also be very handy in embedded environments where hdd space is very limited.

MartijnAtLico
December 11th, 2008, 21:55
A nice thing to have would be the following:


# Download and unzip ports/{Mk,Makefile,$basefoo}
> fetch http://foo.freebsd.org/bar/ports_base.tbz
> tar xf ports_base.tbz
# Get INDEX
> make fetchindex
# Search the index and download all necessary port skeletons
> make quicksearch name=foobar
> make fetchskel-recursive portname=baz/foobar
# Compile foobar
> cd baz/foobar && make install clean


That way you only need to download
- Portstree base file like Makefiles etc. (a few MB)
- The port's and all dependent skeletons (a few KB)

This would also be very handy in embedded environments where hdd space is very limited.

Why would I want to compile ports in a embedded environment? I'd rather cross-compile them on another machine or just use packages.

lme@
December 12th, 2008, 10:01
You don't always have a big machine running the same version of FreeBSD around.
Sometimes the CPU speed is okay but you don't have enough free drive space like on a netbook with a SSD.

GD
December 19th, 2008, 01:35
I use porteasy :

#to download the php5 port + requirements:

porteasy -u lang/php5

(all that is needed is the Templates Mk and Tools present in the ports directory)