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.