23 Noderīgi PKG komandu piemēri, lai pārvaldītu paketes FreeBSD


Šajā apmācībā mēs paskaidrosim, kā pārvaldīt iepriekš sastādītas bināro pakotņu lietojumprogrammas FreeBSD, izmantojot pakotņu pārvaldības rīku PKG, izmantojot Ports programmatūras kolekcijas repozitoriju.

Ports repozitorijs piedāvā nepieciešamos rīkus lietojumprogrammu apkopošanai no avota koda līdz ar to atkarībām, bet arī uztur milzīgu iepriekš kompilētu paku kolekciju, šobrīd vairāk nekā 24 000 pakotnes, kuras var instalēt FreeBSD sistēmā ar komandu pkg.

  1. FreeBSD 11.x instalēšana

Meklējiet un atrodiet programmas FreeBSD Ports Tree

1. Ostu krātuves FreeBSD ir sadalītas kategorijās, katru kategoriju pārstāv direktorija mapē/usr/ports/failu sistēmas ceļš.

Vienkāršā direktorija/usr/ports/sarakstā tiks parādītas visas pieejamās kategorijas, kā parādīts zemāk esošajā ekrānuzņēmumā.

# ls /usr/ports/

2. Lai skatītu visas pieejamās lietojumprogrammas, kas pieder kategorijai, izsniedziet komandu ls pret kategoriju direktoriju.

Pieņemsim, ka vēlaties parādīt visas pieejamās programmatūras paketes, ko piedāvā datu bāzes kategorija, izpildiet zemāk esošo komandu konsolē. Ievadiet rezultātu, izmantojot mazāk komandu, lai vieglāk pārvietotos pa izvadi.

# ls /usr/ports/databases/ | less

3. Lai apskatītu, cik paku ir pieejams kategorijā, uzskaitiet kategoriju direktoriju un ievadiet rezultātu caur komandu wc, kā parādīts zemāk esošajā piemērā.

# ls /usr/ports/databases/ | wc -l

Kā redzat iepriekš redzamajā ekrānuzņēmumā, FreeBSD datu bāzes kategorijā ir vairāk nekā 1000 iepriekš izpildītu datu bāzes pakotņu.

4. Lai redzētu, vai kategorijā ir pieejama noteikta lietojumprogramma, vēlreiz izmantojiet utilītu grep, lai meklētu pielāgotu lietojumprogrammu.

Tālāk sniegtajos piemēros tiks meklēti mongodb datu bāzē pieejamie pakotnes un gliemežvāku antivīrusu drošības paketes.

# ls /usr/ports/databases/ | grep mongodb
# ls /usr/ports/security/ | grep clam

Kā redzat, FreeBSD portos var būt pieejamas vairākas lietojumprogrammas versijas.

5. Ja nezināt, kurai kategorijai pieder programmatūra, varat izmantot citu pieeju, lai atrastu programmatūras kategoriju. Izmantojiet čaulas globbing aizstājējzīmi * , lai meklētu modeli visā ostu direktoriju kokā.

Pieņemot, ka vēlaties redzēt, kurā kategorijā varat atrast programmatūras pakotnes mailx lietderībai, varat palaist šādu komandu.

# ls /usr/ports/*/*mailx

6. Cita metode programmatūras pakotnes un kategorijas, kurai pieder pakete, meklēšanai ir komanda locate, izmantojot virknes modeli.

Pirms meklēšanas virknes veikšanas jums jāatjaunina lokācijas datu bāze ar šādu komandu.

# /usr/libexec/locate.updatedb

7. Pēc datubāzes atjaunināšanas meklējiet noteiktu programmatūras pakotni, izmantojot atslēgvārdu modeli no paketes nosaukuma. Piemēram, ja vēlaties meklēt mailx utilītu, varat palaist zemāk esošo komandu.

# locate mailx

Kā redzat, mailx lietderībai ir pieejamas divas paketes, kuras abas atrodas/usr/ports/mail/category.

8. Līdzīgi kā atrast pakotni ar whereis komandu, lai skatītu lietojumprogrammas kategoriju.

# whereis mailx

Meklēt programmatūru, izmantojot FreeBSD PKG komandu

9. Vieglākais veids, kā meklēt un atrast lietojumprogrammu FreeBSD, ir PKG pakotņu pārvaldības komandrinda. Lai binārā paketē meklētu lietojumprogrammu, piemēram, programmatūru postfix, izdodiet šādu komandu.

# pkg search package_name

10. Ja vēlaties uzzināt, kurai kategorijai pieder pakete, izpildiet to pašu komandu kā iepriekš, izmantojot karodziņu -o , kā parādīts tālāk sniegtajos piemēros.

# pkg search -o package_name

Pārvaldiet programmatūru FreeBSD

11. Lai instalētu iepriekš apkopotu pakotni no Ports krātuvēm FreeBSD, izdodiet komandu pkg, kā parādīts zemāk esošajā piemērā.

# pkg install package_name

12. Lai vaicātu informāciju par konkrētu sistēmā instalētu pakotni, izsniedziet šādu komandu.

# pkg info package_name

13. Komandas komutatorā pkg info tiks parādīts ziņojums “Nav pakotņu (-u), kas atbilst pakotnes_nosaukumam”, ja programmatūras pakotne vēl nav instalēta jūsu sistēmā, kā parādīts zemāk redzamajā ekrānuzņēmumā.

# pkg info tcpdump

14. Lai uzskaitītu visas instalētās programmatūras paketes FreeBSD, izpildiet komandu pkg info bez jebkādas opcijas vai slēdžiem.

Grep filtrs pret komandu pkg info var parādīt, vai sistēmā jau ir daži īpaši pakotnes vai lietojumprogrammas, kā parādīts šajā piemērā.

# pkg info | grep ftp

15. Lai noņemtu pakotni no sistēmas, izdodiet šādas komandas.

# pkg remove package_name
or
# pkg delete package_name

16. Gadījumā, ja vēlaties novērst instalētas pakotnes noņemšanu vai modificēšanu, varat izmantot komandu lock bloķēšanas slēdzi, kā parādīts zemāk esošajā attēlā.

# pkg lock package_name

Atbloķēt komandu slēdzi pkg ļaus noņemt paketes ierobežojumu un modificēt vai atinstalēt pakotni.

# pkg unlock package_name

17. Lai uzzinātu, kurai instalētajai pakotnei pieder komanda vai izpildāms fails, izdodiet šādu komandu, kā parādīts zemāk redzamajos ekrānuzņēmuma piemēros.

# pkg which /path/to/executable

18. Lai lokāli lejupielādētu pakotni no ostu krātuves, neinstalējot pakotni sistēmā, palaidiet komandu pkg ar slēdzi Fetch.

Lejupielādēto bināro pakotni, kas ir saspiests .txz fails, var atrast mapē/var/cache/pkg/system path.

# pkg fetch package_name
# ls /var/cache/pkg/ | grep package_name

19. Lai pārbaudītu, vai instalētās pakotnes ir pakļautas izplatītām ievainojamībām vai kļūdām, izdodiet šādu komandu.

# pkg audit -F

Lai skatītu veco ievainojamību sarakstu, kas ietekmē programmatūras pakotni iepriekšējās versijās, izsniedziet šo komandu.

# pkg audit package_name

Zemāk ir visu zināmo ievainojamību fragments, kas tika atrasts FreeBSD apkopotajā Nginx tīmekļa serverī.

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

Uzturiet pakotņu pārvaldības utilītu FreeBSD

20. Lai nodrošinātu, ka programmatūras krātuves un visas instalētās pakotnes ir atjauninātas ar jaunākajām versijām vai drošības ielāpiem, izdodiet šādas komandas.

# pkg update
# pkg upgrade

21. Lai parādītu attālo krātuvju un vietējo paku statistiku, piemēram, cik daudz paku ir instalēts jūsu sistēmā un cik daudz vietas diskā aizpilda instalētā programmatūra, izpildiet šādu komandu.

# pkg stats

22. Lai izdzēstu visas atkarības, kuras sistēmā atstāj instalētās paketes, izdodiet komandu zemāk.

# pkg autoremove

23. Lai automātiski izdzēstu pakotņu pārvaldības vietējo kešatmiņas direktoriju attālināti lejupielādētām pakotnēm, izpildiet tālāk norādīto komandu. Vispirms jums jāpārbauda lokāli lejupielādēto bināro pakotņu saraksts.

# pkg clean -a -n  
# pkg clean -a -y

Tas ir viss! Kā redzat, FreeBSD ir iespaidīga pakotņu savākšanas sistēma, līdzīga pakotņu pārvaldības rīkiem, kas tiek izmantoti Linux izplatījumos, piemēram, APT ar lielu skaitu iepriekš sastādītu programmatūras bināru un vienkāršu un efektīvu komandrindu pkg, kuru var izmantot pārvaldīt programmatūru pienācīgā veidā.