虽然使用ports collection编译和安装软件非常简便,然而仍有两个理由来使用手工编译安装方式。一方面是ports collection中并不能涵盖所有的软件,有很多软件没有收入ports collection中。有很多原因使得一些很优秀的软件没有被收集入ports collection,例如,版权因素,或者没有志愿者对它移植到freebsd进行维护。另一方面,即使是通过port来定制软件,仍需要了解了手工编译安装的过程和各种编译工具的使用,才能正常进行定制工作。
通常在freebsd下编译并安装应用程序并不困难,因为freebsd是一种非常标准的unix,为unix开发的标准c程序很容易就能在它上面编译运行。
为了编译和安装一个应用程序,必须要了解编译和运行软件的一般方法。对于大型程序和要求高效率的软件,通常用高级语言c来开发,使用c语言编译器将c源程序编译成执行程序。由于使用高级语言不依赖于硬件结构,这使得软件非常容易移植。unix不仅提供了编译器,而且还提供了众多的工具来帮助进行编译和维护,最有用的工具为make。
c作为一种编译型的高级语言,这就是说运行c程序之前要将其先编译成可执行的由机器指令构成的执行程序,因此就需要使用一个编译器来对c源代码进行处理,freebsd使用的是gnu的c编译器。