A.4. Използване на CTM

CTM е метод за подържане на отдалечена директория в синхрон с централна такава. Разработена е за упротреба с дърветата на изходния код на FreeBSD. С времето други хора й намират допълнителни приложения.Документацията по CTM освен по създаване на пачове е оскъдна, така че говорете с Poul-Henning Kamp ако желаете да използвате CTM за други цели.

A.4.1. Защо да ползвам CTM?

CTM ще Ви предостави локално копие на изходните кодове на FreeBSD.Има безброй ``версии (flavors)'' на дървото в наличност. В зависимост дали желаете да следите промените в цялото CVS дърво или само едно от неговите разклонения, CTM може да Ви даде информация. Ако сте активен разработчик на FreeBSD, но имате мизерна или никаква връзка с Интернет, или желаете промените да Ви се изпращат автоматично, то CTM е за Вас. Ще трябва да се сдобиете максимум с три промени (deltas) на ден за най-активните клонове на развой на дървото. Ще трябва да помислите как да ги получавате автоматично по пощата.Размерите на ъпдейтите направени възможно най-малки по размер.Обикновено става въпрос за по-малко от 5K, един от десет е около 10-50K и от време на време се появява някой който е 100K+.

Ще трябва да се запознаете с различните капани свързани с директната работа с развоен код. Това важи особено, ако изберете ``current'' дървото. Препоръчва се да прочетете Да следваме Current на FreeBSD.

A.4.2. Какво ми трябва да ползвам CTM?

Нужни са Ви две неща: Програмата CTM и началните промени (deltas) за да я ``захраните'' (да се изравните с ``current'').

CTM е част от FreeBSD от версия 2.0 нагоре. Намира се в /usr/src/usr.sbin/ctm, ако иматe изходния код наличен.

Ако сте на версия на FreeBSD, по-ниска от 2.0, можете да дръпнете текущия CTM код директно от:

http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.sbin/ctm/

``Промените (deltas)'' които задавате на CTM могат да бъдатт получени по сдва начина: FTP или email. Ако имате FTP програми, следните FTP сайтове подържат CTM:

ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/

или вижте раздела Миръри.

Запчнете, като изтеглите сътоветната директория и README файла.

Ако желаете да получавате промените по email:

Абонирайте се за списъците за разпространенение на CTM. ctm-cvs-cur подържа цялото CVS дърво. ctm-src-cur подържа текущото дърво на развитие. ctm-src-4 подържа 4.X кода и т.н. (Ако не знаете как да се абонирате, щракнете върху името на списъка или идете на http://lists.FreeBSD.org/mailman/listinfo и щракнете върху списъка, за който желаете да се абонирате.Страницата за списъка ще съдържа енобходимите инструкции.)

Когато започнете да получавате вашите CTM архиви по пощата, може да ползвате ctm_rmail да ги разопаковате и прилагате. В същност, може да ползвате ctm_rmail директно от ред в /etc/aliases, ако желаете да автоматизирате процеса. Проверете man страницата на ctm_rmail за подробности.

Note: Без значение какво ще използвате да се сдобиете с CTM архивите, трябва да се абонирате за списъка ctm-announce. В бъдеще, това ще бъде единственото място, където обявления относно работата на CTM ще бъдат публикувани. Щракнете върху името на списъка по-гори и следвайте инструкциите, за да се абонирате.

A.4.3. Използване на CTM за първи път.

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

Първо определете какво имате. Всеки може да почне от ``празна'' директория. Трябва да ползвате начален ``празен (еmpty)'' архив за начално дърво. По някое време трябва да преместите някой от ``starter (начални-бел.прев)'' архивите на CD за ваше удобство. Това за момента няма да стане.

Понeже дърветата са десетки мегабайти, може да предпочетете да започнете от нещо готово под ръка. Ако имате CD с версия на FreeBSD, може да копирате или извлечете начален архив. Това ще Ви спести значителен трансфер на данни.

Може да разпознаете тези ``starter'' архиви по X-а приложен към номера им.(src-cur.3210XEmpty.gz например). Името след X съответства на произхода на началното ``захранване''. Empty е празна директория. Като правило преход към издание от Empty става на всеки 100 архива.Междудругото, те са големи: 70 до 80 мегабайта gzip-нати данни са често срещани в XEmpty архивите.

Веднъж избрали базов архив, ще Ви трябват нсички последователни след него.

A.4.4. CTM в ежедневието

За да приложите делтите, просто въведете:

# cd /where/ever/you/want/the/stuff
# ctm -v -v /where/you/store/your/deltas/src-xxx.*

CTM разархивира информацията компресирана с gzip, така че не е нужно да ползвате gunzip първо, спестявайки си по този начин дисково пространство.

Освен ако не се чувствате много сигурен за целия процес, CTM няма да промени Вашето дърво. За да проверите промяна (deltа), може да ползвате -c и CTM само ще провери дали пачването на дървото Ви е минало чисто.

Има и други опции към CTM, вижте страницата от наръчника или сорс кода за повече информация.

Това е цялата философия около ползването на CTM. Всеки път щом свалите нова делта, приложете я със CTM за да запазите локалното си дърво актуално.

Не трийте делтите, ако трудно се сдобивате с тях. Може да ви потрябват ако нещо лошо стане. Дори да имате само флопи дискове, помислете да ползвате fdwrite, за да направите копие.

A.4.5. Как да запазим локалните промени

Като разработчик, вероятно ще желаете да експериментирате и променяте файловете в дървото. CTM подържа ограничени операции по пачване: преди да провери за наличието на файл foo, първо проверява за foo.ctm. Ако този файл съществува, CTM ще работи с него вместо с foo.

Това поведение дава прост метод за запазване на локалните промени: просто копирайте файла, който смятате да промените с разширение .ctm После можете да продължите да програмирате, докато CTM подържа .ctm файла актуален.

A.4.6. Други интересни опции на CTM

A.4.6.1. Установяване на файловете, които ще бъдат променени

Можете да определите списъка с промените, които CTM ще направи върху вашето хранилище използвайки -l параметъра към CTM.

Това е полезно, ако желаете да пазите архив на промените, процесите протичаще преди и след пачването или сте параноик.

A.4.6.2. Архивиране преди обновяване

Понякога може да желаета да архивирате всички файлове, които ще бъдат засегнати при обновяване със CTM.

Указвайки -B backup-file на CTM, Вие ще архивирате всички файлове които ще бъдат променени от програмата в един backup-file(архивен файл - бел.прев).

A.4.6.3. Ограничаване на промените

Понякога може да ви интересува да се ограничите до конкретен CTM ъпдейт или да извелечете няколко файла от поредица от делти.

Можете да контролирате списъка на файловете върху които CTM ще оперира като зададете регулярен израз чрез -e и -x опциите.

Например, за да извлечете актуално копие на lib/libc/Makefile от Вашата колекция на запазени CTM делти, изпълнете:

# cd /where/ever/you/want/to/extract/it/
# ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*

За всеки файл в CTM делтите, параметрите -e и -x се прилагат според указания ред. Файлът е обработен от CTM само ако е отбелязан като подходящ след като всичките -e и -x опции са приложени към него.

A.4.7. Бъдещи планове за CTM

Купища от тях:

A.4.8. Разни

Има набор от промени за ports също, но интересът към тях не е толкова голям още.

A.4.9. CTM миръри

CTM/FreeBSD е налична чрез анонимен FTP достъп от следните сайтове. Ако изберете да получите CTM чрез анонимен FTP, моля ползвайте машина близо до Вас.

В случай на проблеми, свържете се с Poul-Henning Kamp .

Ако не намерите мирър до Вас или той е непълен, използвайте търсачка като alltheweb.

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

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