5.5. pkgng-г бинар багцыг удирдахад ашиглах нь

pkgng нь FreeBSD-н уламжлалт багц удирдах хэрэгсэл болох pkg_install-г сайжруулж сольсон хувилбар юм. Энэ нь бинар багцтай хурдан бөгөөд хялбараар ажиллах боломжийг олгодог олон боломжуудтай юм. pkgng-н эхний хувилбар нь 2012 оны 8 сард байсан.

pkgng нь ports-mgmt/portmaster эсвэл ports-mgmt/portupgrade гэх мэт порт удирдах хэрэгслүүдийг солихоор хийгдээгүй. ports-mgmt/portmaster ба ports-mgmt/portupgrade нь гуравдагч талын програм хангамжийг бинар багц болон портын цуглуулгаас суулгаж чаддаг бол pkgng нь зөвхөн бинар багцуудыг суулгадаг.

5.5.1. 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

5.5.2. pkgng орчныг тохируулах

pkgng багц удирдах систем нь ихэнх үйлдэлдээ багцын репозиторыг ашигладаг. Багцын анхдагч репозиторын байрлал /usr/local/etc/pkg.conf юм уу эсвэл тохиргооны файл дахь утгыг дарж бичдэг PACKAGESITE орчны хувьсагчид тодорхойлогддог.

pkgng-н нэмэлт тохиргооны боломжуудыг pkg.conf(5)-д тайлбарласан байгаа.

5.5.3. pkgng-н үндсэн үйлдлүүд

pkgng-г хэрэглэх мэдээллийг pkg(8) гарын авлагын хуудаснаас эсвэл pkg-г нэмэлт өгөгдөлгүйгээр ажиллуулж харж болно.

pkgng тушаалын аргумент бүрийг тухайн тушаалын гарын авлагын хуудсанд тайлбарласан байдаг. Жишээ нь pkg install-н гарын авлагыг уншихын тулд дараахийн аль нэгийг ажиллуулж болно:

# pkg help install
# man pkg-install

5.5.3.1. pkgng ашиглан суулгасан багцуудын талаарх мэдээллийг олж авах

Систем дээр суусан багцуудын мэдээллийг pkg info тушаал ашиглан харж болно. pkg_info(1)-н нэгэн адил багцын хувилбар болон бүх багцын тайлбарыг харуулах болно.

Тухайн багцын мэдээллийг ингэж харж болно:

# pkg info packagename

Жишээ нь систем дээр pkgng-н ямар хувилбар суулгасан байгааг харахын тулд дараахийг ажиллуулна:

# pkg info pkg
pkg-1.0.2			New generation package manager

5.5.3.2. pkgng ашиглан багц суулгах ба устгах

Ерөнхийдөө 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

5.5.3.3. pkgng ашиглан суулгасан багцуудыг шинэчлэх

Хуучирсан багцуудыг 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

5.5.3.4. pkgng ашиглан суулгасан багцуудыг аудит хийх

Заримдаа портын цуглуулга дахь програм хангамжид цоорхой илэрч болно. pkgng нь өөртөө ports-mgmt/portaudit багцтай төстэй аудит хийх боломжийг агуулдаг. Систем дээр суусан програм хангамжийг аудит хийхийн тулд дараахийг ажиллуулна:

# pkg audit -F

5.5.4. pkgng-н дэвшилтэй үйлдлүүд

5.5.4.1. pkgng ашиглан автоматаар салбар хамаарлуудыг арилгах

Багцыг устгаснаар дээрх жишээн дээрх 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

5.5.4.2. pkgng багцын өгөгдлийн санг нөөцлөх нь

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

5.5.4.3. pkgng багцуудыг устгах нь

Анхдагчаар pkgng нь бинар багцуудыг pkg.conf(5)-н PKG_CACHEDIR-д заасан кэш санд хадгалдаг. pkg upgrade ашиглан багцуудыг шинэчлэх үед шинэчилсэн багцуудын хуучин хувилбарууд автоматаар устдаггүй.

Хуучирсан бинар багцуудыг устгахын тулд:

# pkg clean

5.5.4.4. pkgng багцын мета өгөгдлийг өөрчлөх

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/ruby18lang/ruby19 руу шинэчлэхийн тулд дараахийг ажиллуулна:

# pkg set -o lang/ruby18:lang/ruby19

Төгсгөлийн жишээ нь libglut хуваалцсан сангийн эхийг graphics/libglutgraphics/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> хаягаар цахим захидал явуулна уу.