Ако някога сте използвали UNIX® система, ще знаете, че типичната процедура по инсталирането на софтуер протича по подобен начин:
Сдобиване със софтуера, който може да бъде разпространяван или под формата на изходен код, или като бинарен пакет.
Разпакетиране на софтуера от формата, в който се разпространява (в типичния случай файлове събрани заедно с tar и компресирани с compress(1), gzip(1), или bzip2(1)).
Намиране на документацията (обикновено файл с име INSTALL или README, или други файлове в поддиректория doc/) и прочитане на указанията за инсталиране.
Ако софтуерът се разпространява под формата на изходен код, той бива компилиран. Това може да изисква редактиране на Makefile или изпълняване на скрипта configure, както и други действия.
Тестване и инсталиране на софтуера.
Това би трябва да е всичко, ако не възникнат проблеми. Ако инсталирате софтуер, който не е бил внимателно портиран за FreeBSD, може дори да трябва да редактирате кода, за да работи той коректно.
Ако желаете, можете да продължите да инсталирате софтуер по ``традиционния'' начин под FreeBSD. Въпреки това, FreeBSD предоставя две технологии, които могат да ви спестят много усилия: пакети (packages) и портове (ports). По време на писането на тази глава, над 10,000 приложения могат да бъдат инсталирани по този начин.
За всяко едно приложение, съответният FreeBSD пакет е един единствен файл, който трябва да свалите. Пакетът съдържа предварително компилирани копия на всички изпълними файлове на приложението, както и принадлежащите му конфигурационни файлове и документация. Вече свален, пакетът може да бъде обработван с командите на FreeBSD за управление на пакети, като pkg_add(1), pkg_delete(1), pkg_info(1), и т.н. Инсталирането на ново приложение може да бъде извършено с една единствена команда.
FreeBSD портът за дадено приложение е колекция от файлове, имащи за цел да автоматизират процеса на компилиране на приложението от изходен код.
Помнете, че ако компилирате програма по нормалния начин, е нужно да изпълните сами доста стъпки (сваляне, разпакетиране, пачване, компилиране, инсталиране). Файловете, от които се състои портът, съдържат информацията, нужна на системата, за да свърши всичката работа вместо вас. Вие изпълнявате няколко прости команди и изходния код на приложението бива автоматично свален, разархивиран, пачнат, компилиран и инсталиран.
В същност, портс системата може да бъде използвана и за създаване на пакети, които по-късно да бъдат обработвани с pkg_add и други команди за управление на пакети, представени по-долу.
Както пакетите, така и портовете се съобразяват със зависимости. Представете си, че искате да инсталирате приложение, зависещо от наличието на специална библиотека. Както приложението, така и библиотеката са на разположение като FreeBSD портове и пакети. Използвайки командата pkg_add или портс системата, за да добавите приложението, и двете ще забележат, че библиотеката не е инсталирана и автоматично ще я инсталират.
Тъй като двете технологии са подобни, може би се питате, защо FreeBSD държи и на двете. Пакети и портове имат съответно своите силни страни и кое от двете ще използвате зависи от вашите лични предпочитания.
Предимства на пакети
Компресиранят пакет в повечето случаи е по-малък от компресирания изходн код на приложението.
Пакетите не се нуждаят от допълнително компилиране. За големи приложения, като Mozilla, KDE, или GNOME това може да е важно, по-специално ако разполагате с бавна система.
Пакетите не изискват разбиране на процеса, свързан с компилирането на софтуер под FreeBSD.
Предимства на портове
Пакетите обикновено са компилирани с консервативни опции, за да могат да вървят на максимален брой системи. При инсталация от порт, можете да настроите опциите при компилирането (например) да генерират код, специфичен за Pentium IV или Athlon процесор.
При някои приложения чрез задаване на опции по време на компилацията, може да се указва какво могат или не могат те да правят. Например Apache може да бъде конфигуриран с разнообразни вградени функции. При изграждане от порт не е задължително да приемете опциите по подразбиране - можете да ги зададете според своите нужди.
В някои случаи е възможно да съществуват няколко пакета на едно и също приложение, указващи определени настройки. Например Ghostscript е достъпен като ghostscript и ghostscript-nox11 пакет, в зависимост от това, дали имате инсталиран X11 сървър. Този начин на грубо настройване е възможен с пакети, но бързо става неприложим, ако за някое приложение могат да се зададат повече от една или две опции по време на компилацията.
Условията на лиценза на някои софтуерни дистрибуции забраняват разпространението им като бинарен пакет. Те трябва да бъдат разпространявани като изходен код.
Някои хора не се доверяват на бинарни дистрибуции. При използването на изходен код, (теоретично) можете да го четете и да следите за потенциални проблеми.
Ако имате собствени пачове, ще имате нужда от изходния код, за да ги поставите.
Някои хора обичат да разполагат с кода на програми, за да могат да го четат когато се отегчат, да го променят, да заемат от него (разбира се, ако лицензът прозволява), и т.н.
За да следите обновяването на портовете се абонирайте за FreeBSD ports mailing list и FreeBSD ports bugs mailing list.
Останалата част от тази глава ще обясни как да използвате и инсталирате пакети и портове, както и как да управлявате софтуер под FreeBSD.
Този и други документи можете да намерите в ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
За въпроси относно FreeBSD, прочетете документацията преди да попитате в <questions@FreeBSD.org>.
За въпроси относно този документ, e-mail <doc@FreeBSD.org>.