Инсталирането и надстройката на софтуер в FreeBSD, бележки програмист

1. От това, което сме избрали?

Първото нещо, което трябва да направите по отношение на инсталирането на софтуер в FreeBSD - е да забравите за "традиционна UNIX-метод", който се състои в това да изтеглите файла от източника, неговото разопаковане и работи ./configure команда, да направи и да се инсталира. Може би преди няколко години в някои Slackware също са предприети, за да направи това, но дори и в това разпределение вече се е появило пристанища система.

Както споменах по-рано. FreeBSD осигурява два начина за инсталиране и обновяване на софтуер - от бинарни пакети (пакети) и източник (пристанища, пристанища). Всеки подход има своите предимства. С някои грижи да ги използвате заедно. Първо, помислете за двете крайни случаи - използването само на pakedzhey или само пристанища.

2. Използване на pakedzhey

Двоични пакети са файлове с определен размер и в определена директория дървовидна структура, опаковани в един архив. Всички пакети, с изключение на няколко специални случаи, могат да бъдат изтеглени от ftp.freebsd.org. Защото вътре pakedzhey съхранява двоични изпълними файлове, за всеки процесор архитектура и версията на операционната система се нуждае от pakedzhi. Какво пакети, които искаме да използваме, се определя от променливата на обкръжението $ PACKAGESITE на. Ето един пример за FreeBSD 8 и i386 процесорни архитектури:

# Необходимо е да се регистрирате в /root/.cshrc
SetEnv PACKAGESITE \
HTTP: // ftp.freebsd.org / кръчма / FreeBSD / пристанища / i386 / пакети от 8 -STABLE / Последни /

Както е случаят с операционната система версии са версии pakedzhi версия, Стабилен и в момента. Стабилен - най-добрият вариант от гледна точка на честотата на обновяване и стабилност, така че от текущата версия и съветва да не се намесва.

Ако сте чели статията ми за бързо инсталиране на FreeBSD. можете да си спомните, ползата pkg_add използва за инсталиране pakedzhey. По подразбиране, тя търси pakedzhi в директорията, посочена в $ PKG_PATH променливата среда. Променете това поведение може да използвате -r ключа:

Програмата ще изтеглите и инсталирате Xorg, както и всички програми и библиотеки, на които това зависи. Всъщност, основната характеристика на системата и пристанища pakedzhey се състои в проверка на автоматично зависимости. Няма нужда да се погледне отвъд програмите мрежа източници / библиотеки, да ги събира, и след това да разбера какво трябва да се съберат и други версии. Един отбор - и системата ще направи всичко за вас. Модерни дистрибуции и * BSD използват само този подход. Ето защо трябва да се забравя «./configure; направи; направи инсталиране », като лош сън.

Вижте списък с всички инсталирани програми могат да pkg_info екип. Като общо правило, списъкът става доста обемист, така че използвайте Впиши и по-малко.

За да премахнете pakedzhey проектиран pkg_delete екип. Използвайте го, без ключовете неудобно, защото в този случай трябва да посочите пълното име на пакета. Например, «pkg_delete Xorg-шрифтове-7.5» ще работят като «pkg_delete Xorg-шрифтове» показва грешка, казват, че пакетът не е инсталиран. За да промените това поведение, използвайте бутоните -ix:

pkg_delete -ix Xorg

Тази команда ще се опита да премахне всички пакети, чиито имена съдържат «Xorg» и преди всяко премахване ще изисква нашето потвърждение. Не е ли по-удобно, отколкото ръчно да въвеждате името на десетте пакети, предварително разберете тяхната версия, използвайки pkg_info? Pkg_delete също така гарантира, че премахването на пакета не е довело до нарушаване на зависимости.

Да предположим сега, че ние искаме да почистите системата от нежелан софтуер. Пакетът за отпадъци - е този, който ние не използваме и което не зависи от други пакети. Последните могат да бъдат проверени, както следва:

pkg_info -R '| по-малко

Проблемът е, че на изхода на екипа е доста обемист и да се потърси в нея пакети, които могат безопасно да бъдат отстранени, доста неприятно. Опростете работата си, можете, с помощта на Perl и регулярни изрази:

pkg_info -R '\
| Perl -e ", докато (<>); @ Т = $ т =

/ Информация за ([^:] +): (: \ е? |
\ SRequired от: \ и) / SIG; печат присъединят ( "\ п" "\ N", @ т); ".

За последователно не успяха да се въведат всички този ужас, аз ви съветваме да се регистрирате псевдоним ( «pkg_leafs»?) За да се запази отбора в /root/.cshrc .sh-скрипт (защо не CSH?) И след това да използвате този скрипт с Впиши.

И накрая, най-интересното - модернизацията на пакети. Това е най-подходящ за тази цел pkg_upgrade. bsdadminscripts, включени в пакета. Не се учудвайте, че системата не разполага със средства за надграждане програми "извън кутията". Всеки уеб сървър обикновено се конфигурира веднъж и след това работи на 5-10 години, докато желязото не се разпадне. Ако през това време в Apache няма да намерите критична уязвимост (и шансовете за това събитие не е твърде голям), а след това никой никога няма да бъде актуализиран.

Преди да обновите, че е полезно да се знае, че всъщност ние ще се актуализира:

Същият ефект може да се постигне с:

pkg_version-V / Var / db / Ума / FTPINDEX | Впиши нужди

По подразбиране pkg_version използва индекса, който се намира в дървото пристанища, а не на факта, че това дърво, което имаме. Ето защо, пътя до файла е посочено изрично. Сам FTPINDEX бъде актуализиран или pkg_upgrade'om, както е показано по-горе, или Ума полезност.

Актуализиране на бинарни пакети обикновено се случва бързо, така че можете веднага да се актуализират всички остарял софтуер:

Ако имате нужда да обновите само една или няколко програми, не забравяйте, че можете да се прекъсне зависимостта. Избягвайте тези проблеми, които можете да използвате клавишите -R (да го актуализира, в зависимост от пакета) и -r (да го актуализира, зависи от това какво пакет):

pkg_upgrade -R-Xorg

И най-накрая - търсенето на пакети. Да кажем, че имате нужда от определен пакет, но не знаете какво се нарича. Има два начина. Първо, можете да използвате FTPINDEX на файла:

котка / Var / db / Ума / FTPINDEX | нарязани -d "|" -f 1 | Впиши CodeBlocks

Второ, можете да използвате уеб търсене на freebsd.org.

3. Използване на пристанища

Порт система ви позволява да инсталирате програмата, тя компилирате от изходния код. Пристанища се обновяват по-често пакети, така че чрез тях можете да получите повече пресни програми. Тъй като нашите източници са на разположение, ние може да се конфигурира приложението да се включат необходимите опции и изключете ненужни. Можете също така да се направи оптимизация на софтуера, използван от нас в рамките на процесора и да премине допълнителни опции на компилатора.

За да плати за всичко това е необходимо, за първите програми за инсталиране на време. Например, дори много мощни компютри, съставящи OpenOffice отнема около един ден и изисква много там гигабайта RAM и дисково пространство. Как точно - не си спомням. За сравнение, инсталирането на OpenOffice чрез пакета отнема няколко минути. Все пак, това е - за краен случай. Малки комунални услуги обикновено събрани в минути на по-голям софтуер може да отиде един час или два.

Посочете компилатора аргументи и вида на процесора може да бъде в /etc/make.conf:

CPUTYPE = Core 2 тип # CPU
? CFLAGS = - O3 -pipe # компилатора аргументи, виждат "човек ССЗ"

По принцип е възможно този файл и да не се докосват. Но след като решихме zayuzat порт, защо да не се възползвате от всички своите предимства? Ако не сте сигурни за какъв тип процесор да се уточни погледнете /usr/share/examples/etc/make.conf. В него са изброени всички поддържани типове процесори. Съдържание I бяха, както следва:

# В момента следните видове CPU се признават:
# Intel x86 архитектура:
# (AMD CPU) Opteron Athlon64 Athlon-т.т. Athlon-XP Athlon-4
# Athlon-tbird Athlon K8 k6-3 K6-2 k6 k5
# (Intel CPU) Core 2 ядро ​​nocona pentium4m Pentium4 Prescott
# Pentium3m pentium3 Pentium-т pentium2
# Pentiumpro Pentium-MMX Pentium i486 i386
# (Via CPU) c3 c3-2
# Alpha / AXP архитектура: ev67 EV6 pca56 ev56 EV5 ev45 ev4
# AMD64 архитектура: Opteron, Athlon64, nocona, Прескът, Core 2
# Intel ia64 архитектура: itanium2, Itanium

Ако не сте намерили вашия тип CPU, може или не го посочва (не прекалено много, това ще се отрази степента на приложение), или да се консултирате с компетентни хора по всяко форум. Ако въведете ужасно, много е вероятно да се получи счупен програма.

Сега - за аргументите на компилатора (CFLAGS). Колкото по-високо ниво на оптимизация, толкова по-бавно програмата отива, но толкова по-бързо той ще работи. Например, -O0 флаг забранява всички оптимизации (ССЗ се използва по подразбиране) и -O3 включва всички налични техники за оптимизация. И все пак има -oS флаг, предназначена за оптимизиране на размера на програмата. Използвайте го, ако трябва да карам добре, много малко пространство. Като цяло, не трябва да се тревожи твърде много на факта, че програмата ще се забави, ако се съберат с ключовата -O2 вместо -O3. В допълнение, има шанс (малък, нали), че някои програми не се събират с -O3 ключ.

Искам също така да се отбележи, че ключовете, които сте посочили в CFLAGS, засягат само пристанища. Това по-специално означава, че не трябва да се тревожи за това с make.conf експерименти ще доведе до факта, че не можете да ъпгрейд на системата ядрото от изходен код. По този начин, информационната бележка.

Дървото на пристанищата се съхраняват в директорията / ЮЕсАр / пристанища /. Ако имате тази директория е празна, пристанищата могат да бъдат изтеглени чрез portsnap програма:

portsnap донесе екстракт

Забележка: Препоръчително е да използвате инструмента CVSup, но е остарял метод В старите ръководства. Забравете CVSup както и за «./configure; направи; направи инсталиране »!

Ако дървото пристанища е вече там, не забравяйте от време на време да го актуализира:

portsnap донесе актуализация

За да инсталирате софтуера от пристанищата, първо трябва да се намери съответната му директория. имена на директории се формират, както следва: / ЮЕсАр / пристанища / група / програма /. Така например, в директорията / ЮЕсАр / пристанища / FTP / Можете да намерите всички програми, свързани с протокола FTP. bsdadminscripts както споменах по-рано, са в / ЮЕсАр / пристанища / sysutils / bsdadminscripts /.

Има няколко начина да намерите правилната програма, но каза, търсене на freebsd.org. Например:

# Първо отидете в директорията на пристанища
CD / ЮЕсАр / пристанища
# Потърсете пристанище по име
направи име търсене = Firefox
# 'Гледайки за ключова дума
направите търсене ключ = браузър
# Бързо търсене
ехо / ЮЕсАр / пристанища / * / * * Firefox

Отидете до директорията, е достатъчно да се каже,

направи инсталирате чиста

Системата самата ще изтегли и разопаковането на изходния код на програмата, както и за всички програми и библиотеки, на които това зависи, а след това се съберат и да ги инсталирате, след което премахнете всички остатъци. Сега си представете, че след всичко това трябваше да се направи с ръцете си!

Някои пристанища имат допълнителни настройки, които са помолени да се уточни на инсталационния процес. Ако ти не разбираш, че трябва да искат да се примирят с настройките по подразбиране. зависимостта често по време на инсталацията имате нужда от пристанището също са настроени. Някои зависимости се интересуват, какви настройки искате да ги събере. В резултат на това, ние трябва да следваме на целия процес от време на време, за да отговори на въпросите. Това не е много удобно.

Повечето пристанища разбират командата:

След завършването му, можете да конфигурирате пристанището и неговите зависимости, а след това ще бъде възможно да се събере цялото това нещо, без да отговори на всички въпроси. Има и команда, която ви позволява да приемате всички настройки по подразбиране:

направи -DBATCH инсталирате чиста

Най-интересните пристанища, че след съставянето на всички приложения, се събират в торби, след които има монтирането на повечето пакети. С други думи, цялата икономическа набор от портове, които могат да бъдат контролирани чрез същите средства, които използваме, за да управлявате пакети - pkg_info, pkg_delete и така нататък!

Забележка: Изграждане изпълним пакет от пристанищата може да се направи «пакет» екип. За създаване на пакет от приложения вече са инсталирани, използвайте командата pkg_create. Например, екипът «pkg_create -R -b Xorg-шрифтове-7.5» създават двоични пакети Xorg-шрифтове и всички зависимости, както и командата «pkg_create -vb '*'», можете да направите резервно копие на всички инсталирани приложения. Подробности - в човеко-страници.

Следващата най-интересните, тъй като може да се очаква, има актуализация. Има две комунални услуги за софтуерни актуализации от пристанищата - portupgrade и portmaster. Аз portmaster изглежда във всяко отношение по-добре. На първо място, защото той не се нуждае от нищо друго, освен пристанищата на дървото. За разлика portupgrade работи със своя собствена база данни, която често се влошава и поради това той трябва да бъде възстановен. На второ място, portmaster, за разлика от portupgrade, не се проточи Ruby. Тъй като програмите с помощта на Руби, доста малко, не искам да губя време сглобяване заради него сам portupgrade. Ние помним, че всеки допълнителен порт - това е твърде много време на компилация му Инсталация и ъпгрейд?

Като цяло, аз отивам да се предположи, че използвате portmaster (/ ЮЕсАр / пристанища / пристанища-Управл / portmaster /). Въпреки това, ако не е, не се притеснявайте - portupgrade има точно същия интерфейс като portmaster. Това означава, че със същите аргументи, тези програми (обикновено) направи същото нещо.

Така че, ние обновихме пристанищата, използващи portsnap и да разберете кои програми остарях вече познат ни pkg_version. Между другото, тази програма не е част от bsdadminscripts и върви заедно със системата. Можете да стартирате portmaster? Не, не може!

Първото нещо, което да направите, преди да преминете на прилагането на пристанища - е да прочетете внимателно файла / ЮЕсАр / пристанища / актуализиране и спазва всички инструкции, свързани с нас. Не се притеснявайте, няма как да не забравите да направите това, толкова по-добре е да се запишете за касета с всички промени в този файл. Ако рядко гледам във вашия RSS четец, моля използвайте rss2email.ru на услуги.

Актуализация portmasterom програма е много проста (между другото, с негова помощ е възможно да се извърши инсталацията):

# Ключа -d означава "да се премахнат старите файлове от извора"
# Ако не укажете, portmaster ще получите
# Много въпроси за това
portmaster -d Вим

Трудности възникват, когато си спомняте за пристрастяване. Най-доброто решение е да се актуализират всички пристанища, които зависят от това (молба, на която пристанището винаги се актуализира):

portmaster -Rd Вим

Все още можете да се актуализира веднъж новини на остарели софтуер: