pkgng нь FreeBSD-н уламжлалт багц удирдах хэрэгсэл болох pkg_install-г сайжруулж сольсон хувилбар юм. Энэ нь бинар багцтай хурдан бөгөөд хялбараар ажиллах боломжийг олгодог олон боломжуудтай юм. pkgng-н эхний хувилбар нь 2012 оны 8 сард байсан.
pkgng нь ports-mgmt/portmaster эсвэл ports-mgmt/portupgrade гэх мэт порт удирдах хэрэгслүүдийг солихоор хийгдээгүй. ports-mgmt/portmaster ба ports-mgmt/portupgrade нь гуравдагч талын програм хангамжийг бинар багц болон портын цуглуулгаас суулгаж чаддаг бол pkgng нь зөвхөн бинар багцуудыг суулгадаг.
FreeBSD 9.1 ба түүнээс хойшхи хувилбарууд pkgng-д зориулсан "bootstrap" хэрэгсэлтэй байдаг. bootstrap хэрэгсэл нь pkgng-г татаж аваад суулгана.
Системийг эхлүүлэхийн тулд:
# /usr/sbin/pkg
FreeBSD-н өмнөх хувилбаруудын хувьд pkgng-г портын цуглуулга эсвэл бинар багц хэлбэрээр суулгах ёстой.
pkgng портыг суулгахын тулд дараахийг ажиллуулна:
# cd /usr/ports/ports-mgmt/pkg # make # make install clean
Бинар багцыг суулгахын тулд дараахийг ажиллуулна:
# pkg_add -r pkg
Тэмдэглэл: pkgng багц удирдах хэрэгсэл нь FreeBSD 7.X эсвэл FreeBSD 8.0 хувилбарууд дээр дэмжигдээгүй.
FreeBSD-г өмнөх суулгацын хувьд pkg_install багцын өгөгдлийн санг шинэ формат руу хувиргах шаардлагатай. Багцын өгөгдлийн санг хувиргахын тулд дараахийг ажиллуулна:
# pkg2ng
Энэ алхам нь гуравдагч талын програм хангамж суугаагүй шинэ суулгацуудын хувьд шаардлагагүй.
Чухал: Энэ алхмыг буцааж болохгүй. Багцын өгөгдлийн санг pkgng формат руу хөрвүүлсний дараа pkg_install хэрэгслүүдийг ашиглах ёсгүй.
Тэмдэглэл: Багцын өгөгдлийн санг шинэ хувилбар руу хувиргалт хийх явцад алдаа гарч болох юм. Ерөнхийдөө эдгээр алдааг хаях нь аюулгүй боловч амжилттай хөрвөгдөөгүй гуравдагч талын програм хангамжийн жагсаалт pkg2ng ажиллаж дууссаны дараа харагддаг. Эдгээрийг гараар засах ёстой.
FreeBSD портын цуглуулга нь pkg_install биш pkgng ашиглан шинэ програмыг бүртгэж байгаа эсэхийг шалгахын тулд 10.X хувилбараас өмнөх FreeBSD хувилбарууд доорх мөрийг /etc/make.conf файлд байхыг шаарддаг:
WITH_PKGNG= yes
pkgng багц удирдах систем нь ихэнх үйлдэлдээ багцын репозиторыг ашигладаг. Багцын анхдагч репозиторын байрлал /usr/local/etc/pkg.conf юм уу эсвэл тохиргооны файл дахь утгыг дарж бичдэг PACKAGESITE орчны хувьсагчид тодорхойлогддог.
pkgng-н нэмэлт тохиргооны боломжуудыг pkg.conf(5)-д тайлбарласан байгаа.
pkgng-г хэрэглэх мэдээллийг pkg(8) гарын авлагын хуудаснаас эсвэл pkg-г нэмэлт өгөгдөлгүйгээр ажиллуулж харж болно.
pkgng тушаалын аргумент бүрийг тухайн тушаалын гарын авлагын хуудсанд тайлбарласан байдаг. Жишээ нь pkg install-н гарын авлагыг уншихын тулд дараахийн аль нэгийг ажиллуулж болно:
# pkg help install
# man pkg-install
Систем дээр суусан багцуудын мэдээллийг pkg info тушаал ашиглан харж болно. pkg_info(1)-н нэгэн адил багцын хувилбар болон бүх багцын тайлбарыг харуулах болно.
Тухайн багцын мэдээллийг ингэж харж болно:
# pkg info packagename
Жишээ нь систем дээр pkgng-н ямар хувилбар суулгасан байгааг харахын тулд дараахийг ажиллуулна:
# pkg info pkg pkg-1.0.2 New generation package manager
Ерөнхийдөө FreeBSD-н ихэнх хэрэглэгчид бинар багцыг дараахийг ажиллуулж суулгана:
# pkg install packagename
pkg install нь Хэсэг 5.5.2-д дурдсанаар репозиторын өгөгдлийг ашигладаг. Эсрэгээр pkg-add(8) нь репозиторын өгөгдөл эсвэл PACKAGESITE-д заасныг ашигладаггүй учир хамаарлуудыг зөв хянадаггүй бөгөөд дутуу байгаа хамаарлуудыг алсын эхээс татаж авдаггүй. Энэ хэсэг нь pkg install-г хэрхэн ашиглах талаар харуулна. pkg add-г хэрэглэх талаарх мэдээллийг pkg-add(8)-с үзнэ үү.
pkg install ашиглан нэмэлт бинар багцуудыг суулгаж болно. Жишээ нь curl-г суулгахын тулд:
# pkg install curl Updating repository catalogue Repository catalogue is up-to-date, no need to fetch fresh copy The following packages will be installed: Installing ca_root_nss: 3.13.5 Installing curl: 7.24.0 The installation will require 4 MB more space 1 MB to be downloaded Proceed with installing packages [y/N]: y ca_root_nss-3.13.5.txz 100% 255KB 255.1KB/s 255.1KB/s 00:00 curl-7.24.0.txz 100% 1108KB 1.1MB/s 1.1MB/s 00:00 Checking integrity... done Installing ca_root_nss-3.13.5... done Installing curl-7.24.0... done
Шинэ багц болон хамаарлууд хэлбэрээр суусан нэмэлт багцуудыг суулгасан багцуудын жагсаалтаас харж болно:
# pkg info ca_root_nss-3.13.5 The root certificate bundle from the Mozilla Project curl-7.24.0 Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers pkg-1.0.2 New generation package manager
Хэрэгцээгүй болсон багцуудыг pkg delete тушаалаар устгаж болно. Жишээ нь curl хэрэггүй бол:
# pkg delete curl The following packages will be deleted: curl-7.24.0_1 The deletion will free 3 MB Proceed with deleting packages [y/N]: y Deleting curl-7.24.0_1... done
Хуучирсан багцуудыг pkg version тушаалаар олж болно. Хэрэв локал портын мод байхгүй бол pkg-version(8) нь алсад байрлах репозиторын каталогийг ашиглах бөгөөд хэрэв байгаа бол багцын хувилбарыг танихын тулд локал портын модыг ашиглагддаг.
Багцыг шинэ хувилбар руу pkgng ашиглан шинэчилж болно. curl-н шинэ хувилбар гарсан гэж бодъё. Локал багцыг шинэ хувилбар руу шинэчилж болно:
# pkg upgrade Updating repository catalogue repo.txz 100% 297KB 296.5KB/s 296.5KB/s 00:00 The following packages will be upgraded: Upgrading curl: 7.24.0 -> 7.24.0_1 1 MB to be downloaded Proceed with upgrading packages [y/N]: y curl-7.24.0_1.txz 100% 1108KB 1.1MB/s 1.1MB/s 00:00 Checking integrity... done Upgrading curl from 7.24.0 to 7.24.0_1... done
Заримдаа портын цуглуулга дахь програм хангамжид цоорхой илэрч болно. pkgng нь өөртөө ports-mgmt/portaudit багцтай төстэй аудит хийх боломжийг агуулдаг. Систем дээр суусан програм хангамжийг аудит хийхийн тулд дараахийг ажиллуулна:
# pkg audit -F
Багцыг устгаснаар дээрх жишээн дээрх security/ca_root_nss шиг хэрэггүй хамаарлуудыг үлдээж болох юм. Тийм багцууд нь суусан хэвээр байх боловч юу ч тэднээс хамааралгүй байдаг. Хамаарал болон суусан хэрэггүй багцуудыг автоматаар илрүүлж устгаж болно:
# pkg autoremove Packages to be autoremoved: ca_root_nss-3.13.5 The autoremoval will free 723 kB Proceed with autoremoval of packages [y/N]: y Deinstalling ca_root_nss-3.13.5... done
pkg_install багц удирдах системээс ялгаатай нь pkgng өөрийн гэсэн өгөгдлийн санг нөөцлөх аргатай байдаг. Багцын өгөгдлийн сангийн агуулгыг гараар нөөцлөхийн тулд дараахийг ажиллуулна:
# pkg backup -d pkgng.db
Тэмдэглэл: pkgng.db файлын нэрийг тохирсон файлын нэрээр солих хэрэгтэй.
Мөн нэмэлтээр pkgng нь багцын өгөгдлийн санг өдөр тутам автоматаар нөөцөлж байх periodic(8) скрипттэй байдаг. Гэхдээ энэ нь periodic.conf(5) файлд daily_backup_pkgng_enable хувьсагчийг YES гэж тохируулж өгсөн тохиолдолд ажилладаг.
Зөвлөгөө: pkg_install-н давтамжтайгаар ажиллах скрипт багцын өгөгдлийн санг нөөцлөхөөс сэргийлэхийн тулд periodic.conf(5) файлд daily_backup_pkgdb_enable хувьсагчийг NO болгож тохируулна.
Өмнөх багцын өгөгдлийн сангийн нөөцийн агуулгыг сэргээхийн тулд дараахийг ажиллуулна:
# pkg backup -r /path/to/pkgng.db
Анхдагчаар pkgng нь бинар багцуудыг pkg.conf(5)-н PKG_CACHEDIR-д заасан кэш санд хадгалдаг. pkg upgrade ашиглан багцуудыг шинэчлэх үед шинэчилсэн багцуудын хуучин хувилбарууд автоматаар устдаггүй.
Хуучирсан бинар багцуудыг устгахын тулд:
# pkg clean
FreeBSD-н портын цуглуулга дахь програм хангамжууд уламжлалаар бол хувилбарын гол өөрчлөлтөд өртөх магадлалтай байдаг. pkg_install-с ялгаатай нь pkgng багцын эхийг шинэчлэх тушаалтай байдаг. Жишээ нь хэрэв lang/php5 анхдагчаар 5.3 хувилбар дор байж байгаад 5.4-г оруулах зорилгоор lang/php53 руу өөрчлөгдсөн бол pkg_install нь багцын өгөгдлийн санг шинэчлэхийн тулд аль портоос эхэлж суусныг мэдэх ports-mgmt/portmaster гэх мэт нэмэлт програм хэрэглэхийг шаарддаг.
ports-mgmt/portmaster ба ports-mgmt/portupgrade портуудаас ялгаатай нь шинэ болон хуучин хувилбарууд ямар дарааллаар жагссанаас хамаарч өөр байдаг. pkgng-н хувьд синтакс нь:
# pkg set -o category/oldport:category/newport
Жишээ нь дээрх жишээний багцын эхийг өөрчлөхийн тулд дараахийг ажиллуулна:
# pkg set -o lang/php5:lang/php53
Бас нэг өөр жишээ нь lang/ruby18-г lang/ruby19 руу шинэчлэхийн тулд дараахийг ажиллуулна:
# pkg set -o lang/ruby18:lang/ruby19
Төгсгөлийн жишээ нь libglut хуваалцсан сангийн эхийг graphics/libglut-с graphics/freeglut руу өөрчлөхийн тулд дараахийг ажиллуулна:
# pkg set -o graphics/libglut:graphics/freeglut
Тэмдэглэл: Багцын эхийг солих үед ихэнх тохиолдолд өөрчлөгдсөн эхийн багцаас хамаарсан багцуудыг дахин суулгах нь чухал байдаг. Хамаарсан багцуудыг дахин суулгахын тулд дараахийг ажиллуулна:
# pkg install -Rf graphics/freeglut
Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.
FreeBSD-ийн талаар <questions@FreeBSD.org> хаягтай
холбоо барихаасаа өмнө баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал <doc@FreeBSD.org> хаягаар цахим
захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт
байвал <admin@mnbsd.org>
хаягаар цахим захидал явуулна уу.