# Packages repository



## Twister (Dec 28, 2009)

Hello all!
Can anyone tell about how organized FreeBSD packages repository?
What processor packages are compiled for?
I install from ports usually but sometimes packages are more convenient way to install software.


----------



## vorbote (Dec 28, 2009)

All packages are compiled for the compiler generic target. In the case of a IA32 system, it would be something very similar to a i486 at present. It could change in the future depending on decisions by upstream (gcc project) or if FreeBSD decides to change the compiler to LLVM or pcc.


----------



## zeiz (Dec 28, 2009)

I'm not sure it's right place for this thread (Ports Installation and Maintenance?) but anyway...

#1 to review: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/packages-using.html
The packages are built for a number of architectures including most common i386 and x86_64. Take a look at ftp://ftp.freebsd.org/pub/FreeBSD/ports/ directory.
From my point of view there is no sense to install currently xorg, gnome and kde (just samples) from ports because pre-built packages has currently the same version as ports but compiling...takes a while . 
Instead all the outdated packages (within a "metapackage") could be then updated with portupgrade or portmaster and running `# pkgdb -F`. 
Some very special cases are always described in /usr/ports/UPDATING.
However packages are built with most common/default options so if you need to tweak the options (supposed you know _why_ and _how_) you may want to compile from ports.


----------



## phoenix (Dec 29, 2009)

Twister said:
			
		

> Hello all!
> Can anyone tell about how organized FreeBSD packages repository?
> What processor packages are compiled for?
> I install from ports usually but sometimes packages are more convenient way to install software.



Packages are compiled for all the main (Tier 1) CPU architectures supported by FreeBSD.  pkg_add(1) is smart enough to know to download packages for the version of FreeBSD installed.

IOW, if you install the i386 version of FreeBSD, you get packages compiled for 32-bit x86 CPUs.  If you install the amd64 version of FreeBSD, you get packages compiled for 64-bit x86 CPUs.  And so on.

Packages are not compiled for any specific CPU, as they are meant to be generic enough to work for anyone.  IOW, you won't see "compiled for Pentium" or "compiled for PentiumPro" or "compiled for Via Nano" or anything like that.

If you want applications to be compiled for your specific CPU, then you need to add *CPUTYPE?=<your CPU>* to /etc/make.conf and install via the ports tree.  See /usr/share/examples/etc/make.conf for which values you can use for CPUTYPE.


----------



## Twister (Dec 29, 2009)

Ok.
Thanks for your answers.
I meant not arch (i386 or ppc or some other) but processor (Intel 386 or 486 or Pentium and so on).
I think most of us use now P4 or Core processors but packages are compiled for older processors. Is it right?
Now I'm thinking about creating repository with packages built for P3 or P4 for example.
What you think about it?


----------

