23 Hasznos PKG parancspéldák a FreeBSD csomagok kezelésére
Ebben az oktatóanyagban elmagyarázzuk, hogyan kell kezelni az előre lefordított bináris csomagalkalmazásokat FreeBSD alatt a PKG nevű csomagkezelő eszköz segítségével a Portokon keresztül. > szoftvergyűjtemény-tár.
A Ports repository biztosítja a szükséges eszközöket az alkalmazások forráskódból történő fordításához, a függőségeik mellett, de egy hatalmas, előre lefordított csomaggyűjteményt is karbantart, jelenleg több mint 24 000 csomagot, amely a pkg paranccsal telepíthető FreeBSD rendszerre.
Követelmények:
- FreeBSD 11.x telepítés
Alkalmazások keresése és keresése a FreeBSD Portfában
1. A porttárolók kategóriákra vannak osztva a FreeBSD-ben, mindegyik kategóriát egy könyvtár képviseli a /usr/ports/ fájlrendszer elérési útjában.
A /usr/ports/ könyvtár egyszerű listája megjeleníti az összes elérhető kategóriát, az alábbi képernyőképen látható módon.
ls /usr/ports/
2. A kategóriához tartozó összes elérhető alkalmazás megtekintéséhez adjon ki egy ls parancsot a kategóriakönyvtárba.
Tegyük fel, hogy meg akarja jeleníteni az összes elérhető szoftvercsomagot, amelyet az adatbázis-kategória kínál, hajtsa végre az alábbi parancsot a konzolon. Vezesse az eredményt kevesebb paranccsal, hogy könnyebben navigáljon a kimeneten.
ls /usr/ports/databases/ | less
3. Annak megtekintéséhez, hogy hány csomag érhető el egy kategóriában, sorolja fel a kategóriakönyvtárat, és az eredményt a wc paranccsal vezesse az alábbi példában látható módon.
ls /usr/ports/databases/ | wc -l
Amint a fenti képernyőképen is látható, a FreeBSD adatbázis-kategória több mint 1000 adatbázis-előre kompatibilis csomagot tartalmaz.
4. Ha meg szeretné tudni, hogy egy adott alkalmazás elérhető-e egy kategóriában, ismét használja az ls parancsot, és szűrje le az eredményt a grep segédprogrammal, hogy egyéni alkalmazást keressen.
Az alábbi példákban a mongodb adatbázis elérhető csomagjaira és a clam antivirus biztonsági csomagokra fog keresni.
ls /usr/ports/databases/ | grep mongodb
ls /usr/ports/security/ | grep clam
Amint látja, egy alkalmazásnak több verziója is elérhető a FreeBSD portokban.
5. Ha nem tudja, hogy egy szoftver melyik kategóriába tartozik, más módszert is használhat a szoftverkategória megkeresésére. Használja a shell globbing helyettesítő karaktert a *
karakterrel, ha a teljes Port könyvtárfán keresztül keres mintát.
Feltételezve, hogy látni szeretné, hogy milyen kategóriában találja meg a mailx segédprogram szoftvercsomagjait, futtathatja a következő parancsot.
ls /usr/ports/*/*mailx
6. Egy másik módszer a szoftvercsomag és a csomag kategóriájának keresésére a locate parancs használata egy karakterlánc-mintával szemben.
A keresési karakterlánc végrehajtása előtt frissítse a helyadatbázist a következő paranccsal.
/usr/libexec/locate.updatedb
7. Miután frissítette a helyadatbázist, keressen egy adott szoftvercsomagot a csomag nevéből származó kulcsszómintával. Például, ha meg szeretné keresni a mailx segédprogramot, futtassa az alábbi parancsot.
locate mailx
Amint látja, két csomag érhető el a mailx segédprogramhoz, mindkettő a /usr/ports/mail/ kategóriában található.
8. Hasonlóan a locate paranccsal rendelkező csomagok kereséséhez, használhatja a whereis parancsot is az alkalmazáskategória megtekintéséhez.
whereis mailx
Szoftver keresése a PKG Command segítségével a FreeBSD-ben
9. A FreeBSD-ben a legegyszerűbb módszer a PKG csomagkezelési parancssoron keresztül keresni és találni egy alkalmazást. Ha a bináris csomagokban keresni szeretne egy alkalmazást, például a postfix szoftvert, adja ki az alábbi parancsot.
pkg search package_name
10. Ha látni szeretné, hogy a csomag melyik kategóriába tartozik, futtassa a fenti parancsot a -o
kapcsolóval, az alábbi példák szerint.
pkg search -o package_name
Szoftver kezelése FreeBSD-ben
11. A FreeBSD Ports tárolóiból előre lefordított csomag telepítéséhez adja ki a pkg parancsot az alábbi példában látható módon.
pkg install package_name
12. Ha a rendszerben egy adott telepített csomagra szeretne információkat lekérdezni, adja ki az alábbi parancsot.
pkg info package_name
13. A pkg info parancskapcsoló a „Nincs csomag(ok) megfelel a csomagnévnek” üzenetet jeleníti meg, ha a szoftvercsomag még nincs telepítve az alábbi képernyőképen látható módon.
pkg info tcpdump
14. A FreeBSD-ben telepített összes szoftvercsomag listázásához hajtsa végre a pkg info parancsot opciók és kapcsolók nélkül.
A pkg info parancs elleni grep szűrő megmutathatja, hogy bizonyos csomagok vagy alkalmazások már jelen vannak-e a rendszerben, ahogy az alábbi példában is látható.
pkg info | grep ftp
15. Egy csomag rendszerből való eltávolításához adja ki az alábbi parancsokat.
pkg remove package_name
or
pkg delete package_name
16. Ha meg szeretné akadályozni egy telepített csomag eltávolítását vagy módosítását, használhatja a lock kapcsolót a pkg parancshoz, ahogy az az alábbi képen látható.
pkg lock package_name
A Feloldás pkg parancskapcsoló lehetővé teszi a csomagkorlátozás eltávolítását, valamint a csomag módosítását vagy eltávolítását.
pkg unlock package_name
17. Annak érdekében, hogy megtudja, melyik telepített csomaghoz tartozik egy parancs vagy egy végrehajtható fájl, adja ki a következő parancsot az alábbi képernyőképes példák szerint.
pkg which /path/to/executable
18. Ha a csomagot a Portok tárhelyből helyileg szeretné letölteni anélkül, hogy telepítené a csomagot a rendszerre, futtassa a pkg parancsot a letöltéskapcsolót.
A letöltött bináris csomag, amely egy tömörített .txz fájl, a /var/cache/pkg/ rendszerútvonalon található.
pkg fetch package_name
ls /var/cache/pkg/ | grep package_name
19. Adja ki az alábbi parancsot annak ellenőrzéséhez, hogy a telepített csomagok ki vannak-e téve gyakori sebezhetőségeknek vagy hibáknak.
pkg audit -F
A korábbi verziók szoftvercsomagját érintő régi sebezhetőségek listájának megtekintéséhez adja ki az alábbi parancsot.
pkg audit package_name
Az alábbiakban a FreeBSD-hez fordított Nginx webszerver összes ismert sebezhetőségének kivonata látható.
pkg audit nginx
nginx is vulnerable:
Affected versions:
<= 0.8.41 : > 1.4.4,1
nginx -- Request line parsing vulnerability
CVE: CVE-2013-4547
WWW: https://vuxml.FreeBSD.org/freebsd/94b6264a-5140-11e3-8b22-f0def16c5c1b.html
nginx is vulnerable:
Affected versions:
< 1.0.15
nginx -- Buffer overflow in the ngx_http_mp4_module
CVE: CVE-2012-2089
WWW: https://vuxml.FreeBSD.org/freebsd/0c14dfa7-879e-11e1-a2a0-00500802d8f7.html
nginx is vulnerable:
Affected versions:
< 1.4.7
nginx -- SPDY heap buffer overflow
CVE: CVE-2014-0133
WWW: https://vuxml.FreeBSD.org/freebsd/fc28df92-b233-11e3-99ca-f0def16c5c1b.html
...
Csomagkezelő segédprogram karbantartása a FreeBSD-ben
20. Annak biztosítása érdekében, hogy a szoftvertárak és az összes telepített csomag naprakész legyen a legújabb verziókkal vagy biztonsági javításokkal, adja ki a következő parancsokat.
pkg update
pkg upgrade
21. A távoli tárolók és a helyi csomagok statisztikáinak megjelenítéséhez, például, hogy hány csomag van telepítve a rendszerben, és mennyi lemezterületet tölt fel a telepített szoftver, hajtsa végre a következő parancsot.
pkg stats
22. A rendszerben telepített csomagok által hátrahagyott összes függőség törléséhez adja ki az alábbi parancsot.
pkg autoremove
23. A távolról letöltött csomagok csomagkezelési helyi gyorsítótárának automatikus törléséhez futtassa az alábbi parancsot. Először ellenőrizze a helyileg letöltött bináris csomagok listáját.
pkg clean -a -n
pkg clean -a -y
Ez minden! Amint láthatja, a FreeBSD lenyűgöző csomaggyűjtő rendszerrel rendelkezik, hasonlóan a Linux disztribúciókban használt csomagkezelő eszközökhöz, mint a Yum, RPM és APT, hatalmas számú előre lefordított szoftverbinárissal, valamint egy egyszerű és hatékony parancssor, a pkg, amellyel a szoftver megfelelő módon kezelhető.