FreeBSD – bezproblemowa zmiana wersji perl’a i reinstalacja modułów


Warning: Undefined variable $line_numbers in /usr/home/okiemadmina/public_html/wp-content/plugins/wp-code-highlight/wp-code-highlight.php on line 69

Warning: Undefined variable $line_numbers in /usr/home/okiemadmina/public_html/wp-content/plugins/wp-code-highlight/wp-code-highlight.php on line 69

Warning: Undefined variable $line_numbers in /usr/home/okiemadmina/public_html/wp-content/plugins/wp-code-highlight/wp-code-highlight.php on line 69

Aktualizacje… No właśnie. Z aktualizacjami jest trochę jak z backupami. A wiesz jak podzielić można administratorów w tym właśnie kontekście? Administratorzy dzielą się na tych którzy robią kopie, na tych którzy będą robić kopie i … na tych którzy szukają nowej pracy 🙂

Ja swoją pracę lubię, tak więc dzisiaj aktualizowałem kolejny w kolejce serwer. We FreeBSD – a taki pacjent trafił mi się dzisiaj – jest to nieźle zorganizowane. Porty pobierane są w postaci źródłowej i kompilowane według naszych ustawień. Często działa to bez scen, ale czasami pojawiają się niespodzianki taka jak ta dzisiaj:

===>   Registering installation for perl5-5.16.3_24 as automatic
Installing perl5-5.16.3_24...
pkg-static: perl5-5.16.3_24 conflicts with perl5.16-5.16.3_24 (installs files into the same place).  Problematic file: /usr/local/share/licenses/perl5-5.16.3_24/catalog.mk
*** [fake-pkg] Error code 70

Stop in /usr/ports/lang/perl5.16.
*** [install] Error code 1

Stop in /usr/ports/lang/perl5.16.
*** [build-depends] Error code 1


Perl 5.16 to już gałąź, która lada chwila będzie wycofana. Decyzja padła więc szybko: Przy okazji problemów czas na migrację do gałęzi 5.20.
Sam perl to jednak tylko połowa sukcesu, bo musimy pamiętać o opcjonalnych modułach. Jak ten temat szybko i bezboleśnie ugryźć?

# echo "DEFAULT_VERSIONS+=perl5=5.20" >> /etc/make.conf
# portmaster -o lang/perl5.20 lang/perl5.16
# ln -s /usr/local/bin/perl /usr/bin/perl
# portmaster -D p5-

Powyższe komendy załatwiają nam temat perl’a oraz modułów. Nadal może jednak okazać, się że coś nie działa. (np. w moim przypadku edytor vim)
Tutaj podejścia są dwa. Albo reinstalujemy problematyczne pakiety, albo wszystkie, które zależą od perl’a:

# portmaster -r perl

Wynik działania tego polecenia jest bardzo szeroki i w zasadzie załatwia on nam również wszystko to co już zostało zrobione w ramach portmaster -D p5-. Każdy musi więc wybrać, która metoda będzie w jego przypadku korzystniejsza. Powodzenia w aktualizacji!

Autor

Rafał Wilk

Administrator systemów Unixowych z 15 letnim doświadczeniem, specjalista od FreeBSD, Windows Admin, inżynier sieci i przedsiębiorca, a prywatnie myśliwy, niedzielny gracz i tata pięcioletniej Nadii.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *