Bezpieczne zwolnienie blokady APT w systemie Ubuntu i zakończenie aktualizacji

Błąd „Nie można uzyskać blokady /var/lib/dpkg/lock-frontend” zazwyczaj oznacza, że ​​działa już inny proces zarządzania pakietami. Poczekaj na zakończenie tego zadania, zidentyfikuj proces, jeśli nie zostanie on usunięty, i dopiero wtedy napraw przerwaną konfigurację pakietu; usunięcie pliku blokady nie jest bezpiecznym rozwiązaniem.

APT to narzędzie do zarządzania pakietami Ubuntu, które dpkgwykonuje instalację i konfigurację pakietów niższego poziomu. Używa blokad, aby dwie operacje nie mogły zmienić stanu pakietu w tym samym czasie. Plik blokady może pozostać na dysku podczas normalnego działania, więc sama jego obecność nie oznacza, że ​​jest nieaktualny.

1. Daj programowi aktualizującemu Ubuntu szansę na zakończenie działania

Najpierw zamknij wszystkie inne uruchomione zadania związane z pakietami, takie jak inne polecenie w terminalu, program do aktualizacji oprogramowania lub instalacja w sklepie z aplikacjami. Jeśli okno dialogowe aktualizacji jest otwarte, poczekaj na jego zakończenie, zamiast uruchamiać kolejne aptpolecenie. W systemie Ubuntu na komputerze stacjonarnym usługi aktualizacji w tle również mogą działać.

Sprawdź odpowiednie usługi systemd i poczekaj, jeśli któraś z nich jest aktywna:

systemctl status apt-daily.service apt-daily-upgrade.service

Te jednostki mogą być nieaktywne, nawet gdy inny frontend pakietu posiada blokadę, dlatego należy również sprawdzić proces, używając tej samej blokady. Nie uruchamiaj kolejnych poleceń instalacji ani aktualizacji, gdy bieżąca operacja jest aktywna.

Terminal Ubuntu wyświetla błąd apt, który mówi, że blokada frontendu dpkg jest utrzymywana przez inny proces
Wiadomość blokady określa nazwę używanego zasobu i może zawierać identyfikator procesu, który należy zbadać.

2. Zidentyfikuj osobę posiadającą blokadę front-endu

Użyj tej opcji fuser, aby wyświetlić procesy uzyskujące dostęp do blokady, a następnie sprawdź każdy raportowany PID:

sudo fuser -v /var/lib/dpkg/lock-frontend
ps -fp 2468

Zastąp 2468rzeczywistym PID z wyników. Nazwa procesu, taka jak apt, apt-get, dpkglub usługa aktualizacji, wskazuje, że prace nad pakietem mogą być nadal w toku. Aby wyświetlić szerszą listę procesów, uruchom:

ps -eo pid,etime,cmd | grep -E '[a]pt|[d]pkg'

Nie zakładaj, że proces jest zawieszony tylko dlatego, że nie ma widocznego postępu. Pobieranie pakietów, skrypty konserwatora i ponowne uruchamianie usług mogą zająć trochę czasu. Jeśli jest to aktualizacja rozpoczęta w innym terminalu, wróć do niego i pozwól jej dokończyć. Jeśli jest ona zarządzana przez graficzny program aktualizujący, użyj tej aplikacji, aby anulować lub normalnie zamknąć operację.

Wyjście terminala z fusera i ps identyfikujące odpowiedni proces i jego PID
Użyj podanego PID i nazwy polecenia, aby odróżnić aktywny program aktualizujący od polecenia, które próbujesz uruchomić.

3. Ostrożnie obchodź się z naprawdę zablokowaną operacją

Jeżeli proces jest aktualizacją automatyczną, przed interwencją sprawdź jego status i logi:

systemctl status apt-daily-upgrade.service
sudo journalctl -u apt-daily-upgrade.service -b --no-pager

Gdy usługa nadal działa, zostaw ją w spokoju. Jeśli rozpoznasz polecenie pakietu, które sam uruchomiłeś i które wyraźnie utkwiło w martwym punkcie, przerwij je raz z jego własnego terminala za pomocą Ctrl+Ci poczekaj, aż powróci do powłoki. Nie używaj kill -9, killall dpkgani nie usuwaj plików w /var/lib/dpkg; nagłe zatrzymanie skryptów pakietu może spowodować, że pakiety pozostaną rozpakowane, ale nieskonfigurowane.

Jeśli proces zakończył się, ale operacja pakietu została przerwana, ponowne uruchomienie jest rozsądnym sposobem na usunięcie osieroconych zadań w przestrzeni użytkownika. Po ponownym uruchomieniu upewnij się, że żaden program do aktualizacji oprogramowania ani zadanie instalacji nie jest uruchomione, zanim przejdziesz dalej. Jeśli usługa wielokrotnie się zawiesza, użyj danych z dziennika, aby zdiagnozować tę usługę, zamiast wielokrotnie usuwać pliki blokady.

Wyjście statusu Ubuntu systemctl pokazujące apt-daily-upgrade.service jako aktywny proces apt
Aktywna usługa apt-daily-upgrade jest powodem, aby poczekać i sprawdzić jej postęp, a nie zdejmować blokadę.

4. Napraw stan pakietu po usunięciu blokady

Gdy żaden menedżer pakietów nie będzie używał blokady, należy dokończyć konfigurację wszystkich oczekujących pakietów:

sudo dpkg --configure -a

Ta opcja konfiguruje pakiety, które zostały rozpakowane, ale nie zostały w pełni skonfigurowane. Jeśli zgłosi problemy z zależnościami, poproś APT o ich rozwiązanie:

sudo apt-get -f install

Przeczytaj proponowane zmiany przed potwierdzeniem. Nie dodawaj ich -ypodczas rozwiązywania problemów: monit pozwala sprawdzić, czy APT planuje nieoczekiwane usunięcie lub zmianę. Po zakończeniu naprawy odśwież listy pakietów i spróbuj ponownie wykonać pierwotne zadanie:

sudo apt-get update
sudo apt-get install PACKAGE_NAME

Zastąp PACKAGE_NAMEpakietem, który zamierzasz zainstalować. Dokumenty podręcznika APT-get-f Ubuntu stanowią próbę naprawy uszkodzonych zależności, a podręcznik dpkg wyjaśnia działanie konfiguracji pakietu. Jeśli APT nadal zgłasza blokadę, powtórz sprawdzanie procesu; w międzyczasie mogło zostać uruchomione drugie zadanie pakietu.

Terminal Ubuntu z uruchomionymi poleceniami dpkg configure i apt-get check przed powrotem do powłoki
Po zwolnieniu blokady skonfiguruj oczekujące pakiety i sprawdź, czy APT jest w stanie odczytać spójny stan pakietu.

Potwierdź, że naprawa zadziałała

Naprawa jest zakończona, gdy oryginalne polecenie instalacji lub aktualizacji zostanie wykonane bez błędu blokady, sudo dpkg --configure -azakończy się bez błędu konfiguracji oczekującej i sudo apt-get checknie zgłosi żadnych uszkodzonych zależności. Jeśli blokada zostanie zwrócona, inny proces nadal ją przejmuje; zidentyfikuj ten proces przed podjęciem dalszych działań.

Aktualne podręczniki Noble dla Ubuntu opisują powyższe polecenia pakietów. Dokładny czas usługi i nazwy procesów różnią się w zależności od wersji Ubuntu i zainstalowanych narzędzi pakietu pulpitu, ale podstawowa zasada pozostaje ta sama: poczekaj na właściciela blokady, a następnie napraw dpkg, jeśli wcześniejsza operacja została przerwana.

Informacje na temat poleceń znajdziesz w podręczniku apt-get w systemie Ubuntu oraz podręczniku dpkg w systemie Ubuntu .

Zostaw komentarz

Ustaw publiczny adres URL NextCloud, aby mógł się do siebie dodzwonić

Napraw ostrzeżenie Nextcloud o brakującym adresie wychodzącym, ustawiając jego kanoniczny adres URL i sprawdzając routing DNS, HTTPS i odwrotnego serwera proxy na samym serwerze.

Konfigurowanie buforowania Nextcloud Redis w systemie Ubuntu 24.04

Konfigurowanie buforowania Nextcloud Redis w systemie Ubuntu 24.04

Skonfiguruj APCu i Redis przez lokalne gniazdo Unix na potrzeby buforowania i blokowania plików w usłudze Nextcloud, wraz z instrukcjami dla bieżących i starszych wersji usługi Nextcloud.

Uruchom automatycznie Nextcloud Cron za pomocą timera Systemd

Sprawdź tryb cron Nextcloud, napraw usługę systemd i timer oraz zweryfikuj, czy zadania w tle są uruchamiane po uruchomieniu i co pięć minut.

Usuń ostrzeżenie o blokowaniu plików w NextCloud za pomocą Redis

Włącz niezawodne blokowanie plików Nextcloud, wybierz odpowiedni serwer Redis lub Valkey i sprawdź, czy ostrzeżenie zostanie usunięte bez ryzyka równoczesnych zmian w plikach.

Co jest potrzebne, aby uzyskać ocenę bezpieczeństwa Nextcloud A+

Co jest potrzebne, aby uzyskać ocenę bezpieczeństwa Nextcloud A+

Napraw typowe błędy skanowania Nextcloud dzięki bieżącym aktualizacjom, protokołom HTTPS i HSTS, precyzyjnemu zaufaniu do odwrotnego serwera proxy i sprawdzeniu względem serwera publicznego.

Włącz szyfrowanie po stronie serwera Nextcloud z mierzalnym wpływem

Skonfiguruj Nextcloud SSE dla pamięci masowej, która tego wymaga, chroń klucze szyfrujące i zmierz wpływ transferu i procesora przed zaszyfrowaniem istniejących plików.

Dodaj wyszukiwanie pełnotekstowe Elasticsearch do NextCloud

Połącz wyszukiwarkę plików Nextcloud z Elasticsearch, zindeksuj zawartość dokumentów i wybierz konfigurację odpowiadającą Twoim potrzebom w zakresie serwera i bezpieczeństwa.

Ustaw niezawodną politykę wygasania dla usuniętych plików w usłudze NextCloud

Ustaw niezawodną politykę wygasania dla usuniętych plików w usłudze NextCloud

Skonfiguruj Nextcloud tak, aby usuwał usunięte pliki po upływie określonego czasu przechowywania, niezawodnie planował zadania w tle i unikał poleceń, które usuwają śmieci każdego użytkownika.

Ostrzeżenie o braku indeksów bazy danych NextCloud

Ostrzeżenie o braku indeksów bazy danych NextCloud

Wykonaj bezpieczną naprawę OCC w Nextcloud, przejrzyj zmiany w bazie danych i sprawdź, dlaczego ostrzeżenie może nadal się pojawiać.

Zwiększ limit przesyłania danych do sieci w NextCloud powyżej 2 GB

Zwiększ limit przesyłania danych do sieci w NextCloud powyżej 2 GB

Zezwól na przesyłanie większych plików przez przeglądarkę Nextcloud, dostosowując ustawienia PHP, Nginx lub Apache, tymczasowego miejsca przechowywania i limitu czasu — i sprawdź, który limit blokuje plik.