# how to download ports?



## hassan (Dec 9, 2008)

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 (Dec 9, 2008)

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 (Dec 9, 2008)

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 (Dec 9, 2008)

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 (Dec 9, 2008)

hassan said:
			
		

> Hello
> 
> I am using freeBSD on a system with low speed connection
> is there any way to download ports elsewhere and install
> ...



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 (Dec 10, 2008)

*Thanks*

Thanks all
I will try that


----------



## lme@ (Dec 11, 2008)

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 (Dec 11, 2008)

lme@ said:
			
		

> A nice thing to have would be the following:
> 
> 
> ```
> ...



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@ (Dec 12, 2008)

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 (Dec 19, 2008)

*porteasy*

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)


----------

