5.5. pkgng-г бинар багцыг удирдахад ашиглах нь
Өмнөх | Бүлэг 5. Програм суулгах: Багцууд болон портууд | Дараах

## 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, «pkgng орчныг тохируулах»-д дурдсанаар репозиторын өгөгдлийг ашигладаг. Эсрэгээр 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/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``

Өмнөх | Дээш | Дараах
5.4. Багцалсан системийг хэрэглэх нь | Эхлэл | 5.6. Портын цуглуулгыг хэрэглэх нь

Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.

FreeBSD-ийн талаар <questions@FreeBSD.org> хаягтай холбоо барихаасаа өмнө баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал <doc@FreeBSD.org> хаягаар цахим захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт байвал <admin@mnbsd.org> хаягаар цахим захидал явуулна уу.