Jak zaktualizować mieszankę pakietów i portów we FreeBSD


18

Najczęściej używam pakietów na FreeBSD, ponieważ większość z nich mi odpowiada. Niektóre jednak mi nie pasują, na przykład vimpakiet, który nie zawiera grafiki gvim.

Nie ma problemu. Zamiast tego mogę zainstalować port, używając portmaster editors/vimi wybierając GTK2opcję. To działa dobrze.

Jednak gdy biegnę pkg upgradepo chwili, otrzymuję następujące informacje:

        Reinstalling vim-7.4.110_3 (options changed)

Co daje? Nie zmieniłem żadnych opcji i nie ma nowej wersji (również nie w portach). Czy porównuje mój zainstalowany port z wersją zdalną bez GTK2?

Oczywiście mogę pozwolić, pkg upgradeaby zadziałało i ponownie zainstalować port później, ale to jest głupie. Jaki jest zalecany sposób aktualizacji kombinacji pakietów i portów?


Czy używasz pkg lockzalecanego rozwiązania? Działa, ale mam nadzieję, że coś tak prostego można rozwiązać automatycznie.
— Ricardo Buring

Tak, pkg lockjest to zaprojektowane rozwiązanie: ze strony podręcznika: „pkg lock służy do blokowania pakietów przed ponowną instalacją, modyfikacją lub usunięciem”.
— Dereckson

ten post jest dość stary. Ale lubię mówić, że mam do tej pory ten sam problem. Pytałem Forum FreeBSD „Korzystasz z pakietów i portów jednocześnie?” Jeden członek doradza mi, jak używać skryptu do aktualizacji instalacji, tak jak to zrobił. Znajdziesz go tam w jego odpowiedzi.
— HL1234

Odpowiedzi:


15

Musisz o tym pamiętać, pkga porty rejestrują zainstalowane oprogramowanie w tym samym miejscu (baza danych SQLite w /var/db/pkg). Żaden system nie rejestruje żadnych dodatkowych informacji, że dane oprogramowanie zostało zainstalowane jako wstępnie skompilowany pakiet lub jako port. Dlatego po zainstalowaniu oprogramowania jednym z tych podejść narzędzia nie mają możliwości dowiedzenia się, w jaki sposób zostało zainstalowane.

Po wybraniu obsługi GTK2 dla editors/vimportu, który został zarejestrowany w bazie danych pakietu. Kiedy później uruchomiłeś pkg upgrade, pkgsprawdziłeś dane pakietu vimi okazało się, że obsługa GTK2 została włączona w zainstalowanej wersji, podczas gdy nie jest włączona we wstępnie skompilowanym pakiecie.pkg upgraderobi dokładnie to, co powinien - wyszukuje wszystkie zainstalowane pakiety, które różnią się od dostępnych wstępnie skompilowanych pakietów, i próbuje je uaktualnić. Różnice mogą dotyczyć numeru wersji, wykresu zależności, opcji czasu kompilacji itp.

Właściwym sposobem uniknięcia pkgrozważenia portu lub pakietu (po zainstalowaniu nie ma różnicy, jeśli chodzi o narzędzia), które chcesz zabezpieczyć, jest użycie pkg lockpolecenia.

Alternatywnie, jeśli zmienisz opcje na wielu portach, możesz rozważyć zainstalowanie poudrierei utrzymanie własnego repozytorium pakietów. Trwa to trochę konfiguracji i działa najlepiej, jeśli host kompilacji ma pulę pamięci ZFS, chociaż będzie działać, jeśli nie masz ZFS; jest to bardzo elastyczny i wygodny sposób zarządzania niestandardowymi kompilacjami oprogramowania.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.