A.5. Употреба на CVSup

A.5.1. Въведение

CVSup е пакет за разпространение и обновяване на код от главното CVS хранилище, намиращо се на отдалечен сървър. FreeBSD кодовете се подържат в CVS депо на сървър в Калифорния. С CVSup, FreeBSD потребителите могат лесно да подържат собствените си хранилища в синхрон с главното.

CVSup използва така наречения pull (дърпащ) модел за обновление. При този модел, всеки клиент пита сървъра за обновленията и дали те са желани. Сървърът очаква пасивно за заявките от клиентите.По този начин всички обновления са поисквани от клиента. Потребителите трябва да стартират CVSup клиента ръчно или да дефинират задачка в cron, за да върви автоматично на определен период.

Терминът CVSup, с главните букви се отнася до целия пакет. Главните му компоненти са клиент cvsup вървящ на потребителската машина и сървърът cvsupdкойто върви на всеки от огледалните сайтове на FreeBSD.

От документацията на FreeBSD и пощевските списъци можете да видите препратки към sup. Supбеше предшественика на CVSup, и имаше подобна цел. CVSup се използва по същия начин като sup и в същност използва конфигурационни файлове обратно съвместмими с тези на sup. Sup не се ползва вече във FreeBSD, защотото CVSup е по-бърз и по-гъвкав.

A.5.2. Инсталация

Най-лесният начин за инсталиране на CVSup е да използвате прекомпилирани net/cvsup пакети от FreeBSD колекцията с пакети. Ако предпочитате да компилирате CVSup от код, може да използвате net/cvsup порта вместо това. Имайте в предвид че net/cvsup зависи от Modula-3 системата, която отнеча значително дисково пространство и време за компилиране.

Note: Ако ще ползвате CVSup на машина без XFree86, като например сървър, бъдете сигурни че портът не включва CVSup GUI (графичен интерфейс), net/cvsup-without-gui.

A.5.3. Конфигуриране на CVSup

Действията на CVSup се контролира от файл, наречен supfile. Има няколко примерни supfile в директорията /usr/share/examples/cvsup/.

Информацията в supfile отговаря на следните CVSup:

В следващите секции, ще създадем типичен supfile като отговорим на всеки от въпросите. Първо, ще опишем цялата структура на supfile.

supfile е текстов файл. Коментарите започват с # и важат до края на реда.Редове които са празни и тези с коментари се игнорират.

Всеки оставащ ред описва набор от файлове, който потребителят желае да получи.Редът започва с името на ``collection(набора)'', логическа група от файлове определена от сървъра. Името на колекцията указва файловете които желаете. След имета на набора идват нула или повече полета, отделени от бели пространства. Тези полета отговарят на въпросите зададени по-горе. Има два типа полета: маркиращи (flag) и стойностни (value). Маркиращите съдържат ключова дума, например delete или compress. Стойностните полета започват също с ключова дума, но след нея веднага има = и втора дума. Например release=cvs е стойностно поле.

Supfile обикновено указва повече от една колекция за теглене. Един от начините за структириране на supfile е да посочите всички съответни параметри за всяка колекция. Това обаче, води до прекалени дълги редове в supfile и е неудобно, защото повечето полета са еднакви за всички колекции в supfile-а. CVSup осигурява механизъм по подразбиране за избягване на тези проблеми. Редовете започващи със специалното име *default могат да се използват за указване на флагове и стойности, които ще се използват за последващите колекции в supfile-а. Стойност по подразбиране може да се анулира за отделен набор, като се посочи различна стойност в самия набор. Настройките по подразбиране може да бъдат променяни или поправяни в средата на файла, като се дава допълнителни *default редове.

Въоръжени с това знание, ние сега продължим със създаването на supfile за получаване и обновяване на главното дърво на FreeBSD-CURRENT.

A.5.3.1. Файлътrefuse

Както споменахме по-горе, CVSup ползва pull (дърпащ) метод. Това означава, че се връзвате към CVSup сървър и той казва: ``Ето какво можеш да изтеглиш от менe...'', а Вашиат клиент казва ``OK, ще взема това, това и това.'' В конфигурацията по подразбиране, CVSup клиента ще вземе всеки файл свързан с колекцията и маркера указан във файла. Това обаче не е желаният ефект, особено ако синхронизирате doc, ports или www дърветата -- повечето хора не могат да четат четири или пет езика, затова не им трябва да свалят файлове специфични за даден език. Ако CVSup-вате портове, може да се оправите като укажете всеки набор по отделно (например ports-astrology, ports-biology и т.н. вместо ports-all). Понеже, doc и www дърветата имат специфични езикови набори, трябва да ползвате една от многото хитроумни характеристики на CVSup: refuse файла.

refuse файла указва на CVSup, че не трябва да взима нито един файл от даден набор; с други думи, указва на клиента да откаже определени файлове от сървъра. Файлътrefuse може да бъде открит (или ако нямате още такъв, трябва да го поставите) в базовата /sup/ директория. Базовата директория е определена във Вашия supfile; по подразбиране това е /usr/local/etc/cvsup, което означава че по подразбиране refuse файла е/usr/local/etc/cvsup/sup/refuse.

Файлътrefuse има много прост формат; съдържа имената на файловете или директориите, които не желаете да свалите. Например, ако не можете да говорите други езици освен английски и немски, и не смятате да ползвате немски приложения(или приложения на други езици, освен английски), можете да поставите следното във Вашия refuse файл:

ports/chinese
ports/french
ports/german
ports/hebrew
ports/hungarian
ports/japanese
ports/korean
ports/polish
ports/portuguese
ports/russian
ports/ukrainian
ports/vietnamese
doc/da_*
doc/de_*
doc/el_*
doc/es_*
doc/fr_*
doc/it_*
doc/ja_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ru_*
doc/sr_*
doc/zh_*

и така нататък с другите езици (можете да намерите пълен списък като разгледате FreeBSD CVS хранилището).

Въоръжени с тази полезна опция, онези потребители, които са на бавни връзки или плащат за минута своя Интернет достъп, ще имат възможност да спестят ценно време, понеже няма да имат повече нужда да точат файлове, които няма да ползват. За повече информация по refuse файловете и други хитри характеристики на CVSup, моля вижте нейната страница от наръчника.

A.5.4. Стартиране на CVSup

Готови сте за обновление. Командния ред за това е прост:

# cvsup supfile

където supfile разбира се е името на supfile, който току-що сте създали. Ако го изпълните под X11, cvsup ще покаже графичен прозорец с няколко бутона за изпълнение на обичайните неща. Натиснете go бутона и гледайте как върви.

Понеже обновявате Вашето истинско /usr/src дърво, ще трябва да стартирате програмата като root, така че командатаcvsup да има права да обнови файловете Ви. Ако току-що сте създали файла и никога преди това не сте ползвали програмата, това може да Ви изнерви.Има лесен начин да направите пробно пускане, без да променяте ценните си файлове. Просто създайте празна директория където Ви е удобно и я укажете в командния ред :

# mkdir /var/tmp/dest
# cvsup supfile /var/tmp/dest

Директорията, която укажете, ще се ползва за всички обновления на файловете. CVSup ще прегледа обичайните файлове в /usr/src, но няма да ги промени или изтрие. Всички промени ще бъдат поместени в /var/tmp/dest/usr/src. CVSup също ще остави файловете за статуквото си в базовата директория непроменени, когато се стартира по този начин. Новите версии на тези файлове ще бъдат написани в указаната директория. Докато можете да четете от /usr/src, не Ви трябва да бъдете root, за да извършвате тези тестови пускове.

В случай, че не сте под X11 или не обичате графични среди, можете да добавите няколок опции към командния ред когато стартирате cvsup:

# cvsup -g -L 2 supfile

Опцията -g указва на CVSup да не ползва графичния си интерфейс. Това е автоматично, ако не сте под X11, но иначе трябва да се укаже.

Опцията-L 2 указва на CVSup да извади детайлите на своите действия.Има три нива на детайли: от -L 0 до -L 2. По подразбиране е 0, което е за пълно мълчание, освен за грешките по време на опериране.

Има още много други параметри налични. За кратко описание, напишете cvsup -H. За повече подробности, вижте страницата от наръчника.

Веднъж доволни от начина по който обновленията работят, можете да установите регулярни стартирания на CVSup използвайки cron(8). Очевидно, не трябва да позволявате CVSup да ползва графичен интерфейс, когато го стартирате от cron(8).

A.5.5. CVSup файлови колекции

Файловите набори налични през CVSup са йерархично организирани. Има няколко големи набора, разделени на по-малки. Получаването на голямата колекция е равносилно на получаването на по-малките. Йерархичните връзки между колекциите са отразени чрез употребата на отстъпи в списъка по-долу.

Най-често ползвани са src-all и ports-all. Другите набори се ползват от малки групи хора за специализирани цели и някои миръри може да не ги съдържат.

cvs-all release=cvs

Главното FreeBSD CVS хранилище,включително криптографския код.

distrib release=cvs

Файлове свързани с разпространението и поддържането на мирърите на FreeBSD.

doc-all release=cvs

Кодът за FreeBSD Handbook и другата документация.Това не включва файловете за FreeBSD уеб сайта.

ports-all release=cvs

FreeBSD Port колекцията.

Important: Ако не желаете да обновявате целия ports-all (цялото), но използвате една от по-малките колекции изброени по-долу, проверете дали винаги обновявате ports-base колекцията! Когато нещо се промени в инфраструктурата на портовете, представено от ports-base, със сигурност тези промени ще се използват от ``истинските'' портове много скоро. По-този начин, ако обновявате само ``истинските'' портове и те ползват някои от новите възможности, има голяма вероятност тяхното компилиране да се провали с някакво мистериозно съобщение за грешка. Първото нещо което трябва да направите в този случай е да обновите ports-base подколекцията.

ports-archivers release=cvs

Инструменти за архивиране.

ports-astro release=cvs

Портове за астрономия.

ports-audio release=cvs

подръжка на звук.

ports-base release=cvs

Инфраструктурата за компилиране - разни файлове, разположени в Mk/ и Tools/ поддиректориите на /usr/ports.

Note: Моля вижте предупреждението по-горе : трябва винаги да обновявате този набор, когато обновявате която и да било част на FreeBSD порт колекцията!

ports-benchmarks release=cvs

Програми за тестване на производителност (Benchmarks).

ports-biology release=cvs

Биология.

ports-cad release=cvs

Инструменти за графичен дизайн.

ports-chinese release=cvs

Програми с подръжка на китайски.

ports-comms release=cvs

Софтуер за комуникация.

ports-converters release=cvs

Преобразуватели на различни кодови таблици.

ports-databases release=cvs

Бази данни.

ports-deskutils release=cvs

Неща които бяха на декстопите, преди да изобретят компютрите.

ports-devel release=cvs

Инструменти за разработка.

ports-dns release=cvs

Софтуер свързан с DNS.

ports-editors release=cvs

Редактори.

ports-emulators release=cvs

Емулатори на други операционни системи.

ports-finance release=cvs

Финансови и монетарни приложения.

ports-ftp release=cvs

FTP клиенти и сървъри.

ports-games release=cvs

Игри.

ports-german release=cvs

Програми с подръжка на немски.

ports-graphics release=cvs

Графични програми.

ports-hungarian release=cvs

Програми с подръжка на унгарски.

ports-irc release=cvs

Internet Relay Chat инструменти.

ports-japanese release=cvs

Програми с подръжка на японски.

ports-java release=cvs

Java™ програми.

ports-korean release=cvs

Програми с подръжка на корейски.

ports-lang release=cvs

Езици за програмиране.

ports-mail release=cvs

Софтуер за поща.

ports-math release=cvs

Софтуер за изчисления.

ports-mbone release=cvs

MBone програми.

ports-misc release=cvs

Разни.

ports-multimedia release=cvs

Мултимедиен софтуер.

ports-net release=cvs

Мрежов софтуер.

ports-news release=cvs

USENET софтуер.

ports-palm release=cvs

Софтуерна подръжка на продуктите от Palm™ серията.

ports-polish release=cvs

Програми с подръжка на полски.

ports-portuguese release=cvs

Програми с подръжка на португалски.

ports-print release=cvs

Програми за печат.

ports-russian release=cvs

Програми с руско меню.

ports-security release=cvs

Инструменти за сигурност.

ports-shells release=cvs

Командни интерпретатори.

ports-sysutils release=cvs

Системни програми.

ports-textproc release=cvs

Текстообработващи програми (не включва ``desktop publishing'').

ports-vietnamese release=cvs

Програми с виетнамски локал.

ports-www release=cvs

Софтуер свързан с World Wide Web.

ports-x11 release=cvs

Портове за подръжка на X window system.

ports-x11-clocks release=cvs

X11 часовници.

ports-x11-fm release=cvs

X11 файлови мениджъри.

ports-x11-fonts release=cvs

X11 шрифтове и програмки.

ports-x11-toolkits release=cvs

X11 графични инструменти (toolkits).

ports-x11-servers

X11 сървъри.

ports-x11-wm

X11 графични мениджъри.

src-all release=cvs

Основните кодове на FreeBSD, включително криптографския код.

src-base release=cvs

Разни файлове на върха на /usr/src.

src-bin release=cvs

Потребителски програми, които могат да са нужни в администраторски режим (/usr/src/bin).

src-contrib release=cvs

Инструменти и библиотеки, явяващи се външни за FreeBSD проекта; използвани директно, без много промени по тях (/usr/src/contrib).

src-crypto release=cvs

Криптографски инструменти и библиотеки, явяващи се външни за FreeBSD проекта; използвани директно, без особени промени (/usr/src/crypto).

src-eBones release=cvs

Kerberos and DES (/usr/src/eBones). Не се ползват в текущите (current) версии на FreeBSD.

src-etc release=cvs

Конфигурационните файлова на системата (/usr/src/etc).

src-games release=cvs

Игри (/usr/src/games).

src-gnu release=cvs

Програми разпространявани под GNU Public License (/usr/src/gnu).

src-include release=cvs

Хедър файлове (/usr/src/include).

src-kerberos5 release=cvs

Kerberos5 security package (/usr/src/kerberos5).

src-kerberosIV release=cvs

KerberosIV (/usr/src/kerberosIV).

src-lib release=cvs

Библиотеки (/usr/src/lib).

src-libexec release=cvs

Системни програми, изпълнявани обикновено от други програми (/usr/src/libexec).

src-release release=cvs

Файлове нужни за извеждането на нова версия на FreeBSD (/usr/src/release).

src-sbin release=cvs

System utilities for single-user mode (/usr/src/sbin).

src-secure release=cvs

Криптографски библиотеки и команди (/usr/src/secure).

src-share release=cvs

Файлове, които могат да бъдат споделени от много системи (/usr/src/share).

src-sys release=cvs

Ядрото (/usr/src/sys).

src-sys-crypto release=cvs

Криптографския код в ядрото (/usr/src/sys/crypto).

src-tools release=cvs

Разни инструменти за подръжката на FreeBSD (/usr/src/tools).

src-usrbin release=cvs

Потребителски програми (/usr/src/usr.bin).

src-usrsbin release=cvs

Системни програми (/usr/src/usr.sbin).

www release=cvs

Изходния код на FreeBSD WWW сайта.

distrib release=self

Конфигурационните файлове на самия CVSup сървър. Използвани от CVSup мирър сайтовете.

gnats release=current

GNATS базата за следене на грешки.

mail-archive release=current

Архива на пощенските списъци на FreeBSD.

www release=current

Обработените файлове на FreeBSD WWW сайта (не изходния код). Използван от WWW мирър сайтовете.

A.5.6. За повече информация

За често задаваните въпроси по CVSup и друга информация по нея, вижте домашната страница на CVSup.

По-голямата част от дискусиите за CVSup във FrееBSD става в FreeBSD technical discussions mailing list. Новите версии на софтуера се обявяват там, както и в FreeBSD announcements mailing list.

Въпроси и доклади за грешки (bug reports) трябва да бъдат адресирани към автора на програмата на адрес:.

A.5.7. CVSup сайтове

CVSup FreeBSD сървъри са пуснати на следните адреси:

Central Servers, Primary Mirror Sites, Argentina, Australia, Austria, Brazil, Canada, China, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Iceland, Ireland, Japan, Korea, Kuwait, Latvia, Netherlands, New Zealand, Norway, Philippines, Poland, Portugal, Romania, Russia, San Marino, Singapore, Slovak Republic, Slovenia, South Africa, Spain, Sweden, Switzerland, Taiwan, Thailand, Turkey, Ukraine, United Kingdom, USA.

(as of 2004/01/28 05:25:28 UTC)

Central Servers
  • cvsup.FreeBSD.org

Primary Mirror Sites
  • cvsup1.FreeBSD.org

  • cvsup2.FreeBSD.org

  • cvsup3.FreeBSD.org

  • cvsup4.FreeBSD.org

  • cvsup5.FreeBSD.org

  • cvsup6.FreeBSD.org

  • cvsup7.FreeBSD.org

  • cvsup8.FreeBSD.org

  • cvsup9.FreeBSD.org

  • cvsup10.FreeBSD.org

  • cvsup11.FreeBSD.org

  • cvsup12.FreeBSD.org

  • cvsup13.FreeBSD.org

  • cvsup14.FreeBSD.org

  • cvsup15.FreeBSD.org

  • cvsup16.FreeBSD.org

  • cvsup18.FreeBSD.org

Argentina
  • cvsup.ar.FreeBSD.org

Australia
  • cvsup.au.FreeBSD.org

  • cvsup2.au.FreeBSD.org

  • cvsup3.au.FreeBSD.org

  • cvsup4.au.FreeBSD.org

  • cvsup5.au.FreeBSD.org

  • cvsup6.au.FreeBSD.org

  • cvsup7.au.FreeBSD.org

Austria
  • cvsup.at.FreeBSD.org

  • cvsup2.at.FreeBSD.org

Brazil
  • cvsup.br.FreeBSD.org

  • cvsup2.br.FreeBSD.org

  • cvsup3.br.FreeBSD.org

  • cvsup4.br.FreeBSD.org

  • cvsup5.br.FreeBSD.org

Canada
  • cvsup.ca.FreeBSD.org

China
  • cvsup.cn.FreeBSD.org

Czech Republic
  • cvsup.cz.FreeBSD.org

Denmark
  • cvsup.dk.FreeBSD.org

Estonia
  • cvsup.ee.FreeBSD.org

Finland
  • cvsup.fi.FreeBSD.org

  • cvsup2.fi.FreeBSD.org

France
  • cvsup.fr.FreeBSD.org

  • cvsup2.fr.FreeBSD.org

  • cvsup3.fr.FreeBSD.org

  • cvsup4.fr.FreeBSD.org

  • cvsup5.fr.FreeBSD.org

  • cvsup8.fr.FreeBSD.org

Germany
  • cvsup.de.FreeBSD.org

  • cvsup2.de.FreeBSD.org

  • cvsup3.de.FreeBSD.org

  • cvsup4.de.FreeBSD.org

  • cvsup5.de.FreeBSD.org

  • cvsup6.de.FreeBSD.org

  • cvsup7.de.FreeBSD.org

Greece
  • cvsup.gr.FreeBSD.org

  • cvsup2.gr.FreeBSD.org

Hungary
  • cvsup.hu.FreeBSD.org

Iceland
  • cvsup.is.FreeBSD.org

Ireland
  • cvsup.ie.FreeBSD.org

Japan
  • cvsup.jp.FreeBSD.org

  • cvsup2.jp.FreeBSD.org

  • cvsup3.jp.FreeBSD.org

  • cvsup4.jp.FreeBSD.org

  • cvsup5.jp.FreeBSD.org

  • cvsup6.jp.FreeBSD.org

Korea
  • cvsup.kr.FreeBSD.org

  • cvsup2.kr.FreeBSD.org

  • cvsup3.kr.FreeBSD.org

Kuwait
  • cvsup1.kw.FreeBSD.org

Latvia
  • cvsup.lv.FreeBSD.org

Netherlands
  • cvsup.nl.FreeBSD.org

  • cvsup2.nl.FreeBSD.org

  • cvsup3.nl.FreeBSD.org

  • cvsup4.nl.FreeBSD.org

  • cvsup5.nl.FreeBSD.org

New Zealand
  • cvsup.nz.FreeBSD.org

Norway
  • cvsup.no.FreeBSD.org

Philippines
  • cvsup1.ph.FreeBSD.org

Poland
  • cvsup.pl.FreeBSD.org

  • cvsup2.pl.FreeBSD.org

  • cvsup3.pl.FreeBSD.org

Portugal
  • cvsup.pt.FreeBSD.org

  • cvsup2.pt.FreeBSD.org

Romania
  • cvsup.ro.FreeBSD.org

  • cvsup2.ro.FreeBSD.org

  • cvsup3.ro.FreeBSD.org

Russia
  • cvsup.ru.FreeBSD.org

  • cvsup2.ru.FreeBSD.org

  • cvsup3.ru.FreeBSD.org

  • cvsup4.ru.FreeBSD.org

  • cvsup5.ru.FreeBSD.org

  • cvsup6.ru.FreeBSD.org

San Marino
  • cvsup.sm.FreeBSD.org

Singapore
  • cvsup.sg.FreeBSD.org

Slovak Republic
  • cvsup.sk.FreeBSD.org

  • cvsup2.sk.FreeBSD.org

Slovenia
  • cvsup.si.FreeBSD.org

  • cvsup2.si.FreeBSD.org

South Africa
  • cvsup.za.FreeBSD.org

  • cvsup2.za.FreeBSD.org

Spain
  • cvsup.es.FreeBSD.org

  • cvsup2.es.FreeBSD.org

  • cvsup3.es.FreeBSD.org

Sweden
  • cvsup.se.FreeBSD.org

  • cvsup3.se.FreeBSD.org

Switzerland
  • cvsup.ch.FreeBSD.org

Taiwan
  • cvsup.tw.FreeBSD.org

  • cvsup3.tw.FreeBSD.org

  • cvsup4.tw.FreeBSD.org

  • cvsup5.tw.FreeBSD.org

  • cvsup6.tw.FreeBSD.org

  • cvsup7.tw.FreeBSD.org

  • cvsup8.tw.FreeBSD.org

  • cvsup9.tw.FreeBSD.org

  • cvsup10.tw.FreeBSD.org

  • cvsup11.tw.FreeBSD.org

  • cvsup12.tw.FreeBSD.org

  • cvsup13.tw.FreeBSD.org

Thailand
  • cvsup.th.FreeBSD.org

Turkey
  • cvsup.tr.FreeBSD.org

Ukraine
  • cvsup2.ua.FreeBSD.org

  • cvsup3.ua.FreeBSD.org

  • cvsup4.ua.FreeBSD.org

  • cvsup5.ua.FreeBSD.org

  • cvsup6.ua.FreeBSD.org

  • cvsup7.ua.FreeBSD.org

United Kingdom
  • cvsup.uk.FreeBSD.org

  • cvsup2.uk.FreeBSD.org

  • cvsup3.uk.FreeBSD.org

  • cvsup4.uk.FreeBSD.org

USA
  • cvsup1.us.FreeBSD.org

  • cvsup2.us.FreeBSD.org

  • cvsup3.us.FreeBSD.org

  • cvsup4.us.FreeBSD.org

  • cvsup5.us.FreeBSD.org

  • cvsup6.us.FreeBSD.org

  • cvsup7.us.FreeBSD.org

  • cvsup8.us.FreeBSD.org

  • cvsup9.us.FreeBSD.org

  • cvsup10.us.FreeBSD.org

  • cvsup11.us.FreeBSD.org

  • cvsup12.us.FreeBSD.org

  • cvsup13.us.FreeBSD.org

  • cvsup14.us.FreeBSD.org

  • cvsup15.us.FreeBSD.org

  • cvsup16.us.FreeBSD.org

  • cvsup18.us.FreeBSD.org

Този и други документи можете да намерите в ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

За въпроси относно FreeBSD, прочетете документацията преди да попитате в <questions@FreeBSD.org>.
За въпроси относно този документ, e-mail <doc@FreeBSD.org>.