Днес се наложи да си поиграя малко с ports системата във FreeBSD. Трябваше да разбера за даден пакет, от кои пакети зависи и кои пакети зависят от него. Оказа се че имам доста инсталирани пакети (свързани с perl) които на практика не се използват и смело ги деинсталирах. Дали утре няма да гръмне нещо, ще разбера скоро … Интересното тук е програмката pkg_glob, която е част от пакета portupgrade. Именно тя ми свърши работа за решаването на горният проблем.
Ето и пример:
[root]# pkg_glob -Rr p5-Carp-Clan*
perl-5.8.8_1
p5-Carp-Clan-6.00
pflogsumm-1.1.2,1
p5-Bit-Vector-6.4_1
p5-Date-Calc-5.5.1
Горното извикване ни показва всички пакети свързани с p5-Carp-Clan. Понеже не знаем точната версия на p5-Carp-Clan инсталирана в момента използваме \* накрая, за да укажем търсеният пакет. Използваме -R за да кажем pkg_glob да ни покаже всички пакети от които зависи p5-Carp-Clan и -r за да покаже пакетите които зависят от него. Дотук всичко е добре, с изключение на това, че не са сортирани както трябва. За целта можем да ползваме pkg_sort и се получава следното нещо:
[root]# pkg_glob -Rr p5-Carp-Clan* |pkg_sort
perl-5.8.8_1
p5-Carp-Clan-6.00
p5-Bit-Vector-6.4_1
p5-Date-Calc-5.5.1
pflogsumm-1.1.2,1
Вече подредено е доста по-разбираемо. От това което се вижда става ясно, че p5-Carp-Clan е необходим на p5-Bit-Vector-6.4_1, p5-Date-Calc-5.5.1 и pflogsumm-1.1.2,1, а за да работи се нуждае само от perl-5.8.8_1.
Редакция:
Може да се използва и pkg_info с параметри -Rr име на пакет.
Пример:
[root]# pkg_info -rR p5-Carp-Clan*
Information for p5-Carp-Clan-6.00:Depends on:
Dependency: perl-5.8.8_1
Required by:
p5-Bit-Vector-6.4_1
p5-Date-Calc-5.5.1
pflogsumm-1.1.2,1
Предимството е, е го има в base и не е необходимо да се инсталира portupgrade.
same shit but in base:
pkg_info -r p5-Net\*