Portsnap нь FreeBSD-ийн портын модыг аюулгүйгээр түгээхэд зориулагдсан систем юм. Дунджаар цаг тутам портын модны “snapshot” буюу хормын хувилбар үүсгэгдэж дахин багцлагдаж криптографын хувьд баталгаажуулагддаг. Үүний үр дүнд гарсан файлууд нь дараа нь HTTP-ээр түгээгддэг.
CVSup-ийн адил Portsnap нь шинэчлэлтийн pull буюу татах загварыг ашигладаг: Багцлагдаж баталгаажуулагдсан портын моднууд клиентүүдээс ирэх файлын хүсэлтийг идэвхгүйгээр хүлээж байдаг вэб сервер дээр байрлуулагддаг. Хэрэглэгчид шинэчлэлтүүдийг татаж авахын тулд portsnap(8)-г гараар ажиллуулах эсвэл шинэчлэлтүүдийг автоматаар тогтмол татаж авдгаар cron(8) ажлыг тохируулах ёстой.
Техникийн шалтгаануудаас болоод Portsnap нь “амьд” портын модыг /usr/ports/ санд шууд шинэчилдэггүй; харин анхдагчаар /var/db/portsnap/ санд хадгалагдсан портын модны шахагдсан хуулбараар дамжуулан ажилладаг. Энэ шахагдсан хуулбар нь дараа нь амьд портын модыг шинэчлэхэд хэрэглэгддэг.
Note: Хэрэв Portsnap нь FreeBSD-ийн портын цуглуулгаас суулгагдсан бол түүний шахагдсан хормын хувилбарт зориулсан анхдагч байрлал нь /var/db/portsnap/-ийн оронд /usr/local/portsnap/ байх болно.
FreeBSD 6.0 болон сүүлийн хувилбарууд дээр Portsnap нь FreeBSD үндсэн систем дээр байдаг. FreeBSD-ийн хуучин хувилбарууд дээр үүнийг ports-mgmt/portsnap портыг ашиглан суулгаж болно.
Portsnap-ийн ажиллагаа /etc/portsnap.conf тохиргооны файлаар хянагддаг. Ихэнх хэрэглэгчдийн хувьд анхдагч тохиргооны файл хангалттай; илүү дэлгэрэнгүйг portsnap.conf(5) гарын авлагын хуудаснаас лавлана уу.
Note: Хэрэв Portsnap нь FreeBSD-ийн портын цуглуулгаас суулгагдсан бол /etc/portsnap.conf-ийн оронд /usr/local/etc/portsnap.conf тохиргооны файлыг ашиглах болно. Энэ тохиргооны файл нь порт суулгагдах үед үүсгэгддэггүй, гэхдээ жишээ тохиргооны файл түгээгддэг; түүнийг байрлал уруу нь хуулаад дараах тушаалыг ажиллуулна:
# cd /usr/local/etc && cp portsnap.conf.sample portsnap.conf
portsnap(8) эхний удаа ажиллахдаа бүхэл портын модны шахагдсан хормын хувилбарыг /var/db/portsnap/ (хэрэв Portsnap нь портын цуглуулгаас суулгагдсан бол /usr/local/portsnap/ байна) руу татаж авах хэрэгтэй болдог. 2006 оны эхнээс эхлээд энэ нь ойролцоогоор 41 MB татаж авахаар байна.
# portsnap fetch
Шахагдсан хормын хувилбар татагдсаны дараа портын модны “амьд” хуулбарыг /usr/ports/ руу задалж болно. Энэ нь портын модны аль хэсгүүд сүүлд шинэчлэгдэх ёстойг portsnap тодорхойлж чадах үндсэн шугамыг тогтоож өгдөг болохоор портын мод (өөрөөр хэлбэл CVSup ашиглан) энэ сан уруу үүсгэгдсэн байсан ч гэсэн энэ үйлдэл шаардлагатай байдаг.
# portsnap extract
Note: Анхдагч суулгалтад /usr/ports сан үүсгэгддэггүй. Хэрэв та FreeBSD 6.0-RELEASE-г ажиллуулж байгаа бол энэ нь portsnap-г ашиглаж эхлэхээс өмнө үүсгэгдсэн байх ёстой. FreeBSD эсвэл Portsnap-ийн сүүлийн хувилбарууд дээр энэ үйлдэл нь portsnap тушаалыг эхлэн ашиглахад автоматаар хийгдэх болно.
Портын модны эхний шахагдсан хормын хувилбар татагдаж /usr/ports/ руу задлагдсаны дараа портын модыг шинэчлэх явц хоёр алхмаас тогтоно: шинэчлэлтүүдийг шахагдсан хормын хувилбар руу татан авч амьд портын модыг шинэчлэхийн тулд тэдгээрийг ашиглана. Эдгээр хоёр алхмыг portsnap руу нэг тушаалаар зааж өгч болно:
# portsnap fetch update
Note: portsnap-ийн зарим хуучин хувилбарууд энэ бичлэгийг дэмждэггүй; хэрэв энэ нь амжилтгүй болвол доор дурдсаныг туршаад үзээрэй:
# portsnap fetch # portsnap update
Portsnap серверүүдэд хандахад “олон хүн” холбогдсон асуудлуудыг тойрон гарахын тулд portsnap fetch тушаал нь cron(8) ажлаас ажиллахгүй. Харин тусгай portsnap cron тушаал байх бөгөөд энэ нь шинэчлэлтүүдийг татаж авахаасаа өмнө 3600 секунд хүртэл санамсаргүй хугацаагаар хүлээдэг.
Мөн энэ нь порт бүтээгдэж байх үед юм уу эсвэл
суулгагдаж байх үед ажиллавал асуудлууд үүсгэх
магадлалтай болохоор portsnap update
тушаалыг cron ажлаас ажиллуулахгүй
байхыг тууштай зөвлөдөг. Гэхдээ портын INDEX файлуудыг шинэчлэх нь аюулгүй
байдаг бөгөөд үүнийг -I
тугийг portsnap тушаалд өгч хийж болно. (Мэдээж
хэрэв portsnap -I update нь cron-с ажиллавал үлдсэн модыг
шинэчлэхийн тулд portsnap update тушаалыг
-I
туггүйгээр дараа нь ажиллуулах
хэрэгтэй болно.)
Дараах мөрийг /etc/crontab файлд нэмэхэд portsnap-ийг өөрийн шахагдсан хормын хувилбар болон INDEX файлуудыг /usr/ports/ санд шинэчлэж суулгагдсан портуудаас хуучин портууд байвал цахим захидал илгээхэд хүргэх болно:
0 3 * * * root portsnap -I cron update && pkg_version -vIL=
Note: Хэрэв системийн цагийг локал цагийн бүс гэж тохируулаагүй бол Portsnap серверүүд дээр ачааллыг тэгш хуваарилахын тулд 3 гэдгийг 0-с 23-ын хоорондох санамсаргүй утгаар сольно уу.
Note: portsnap-ийн зарим хуучин хувилбарууд portsnap-тай цуг зэрэг олон тушаалуудыг жагсаахыг дэмждэггүй (өөрөөр хэлбэл cron update). Хэрэв дээрх мөр амжилтгүй болвол portsnap -I cron update тушаалыг portsnap cron && portsnap -I update тушаалуудаар солиод үзээрэй.
Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.
FreeBSD-ийн талаар <questions@FreeBSD.org> хаягтай
холбоо барихаасаа өмнө баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал <doc@FreeBSD.org> хаягаар цахим
захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт
байвал <admin@mnbsd.org>
хаягаар цахим захидал явуулна уу.