Jak uniknąć kłopotów z „mniam zamkiem”?


31

Często napotykam komunikat „Inna aplikacja obecnie blokuje mniam blokadę; czekam, aż zakończy działanie ...” podczas próby zainstalowania aplikacji i muszę ręcznie zabić mniam. Jak mogę tego uniknąć? Czy jest jakaś prosta metoda odblokowania mniam?

Wydaje się, że może działać tylko jedna instancja mniam. Czy to samo z innymi menedżerami pakietów (apt-get, pacman)?


W moim przypadku byłem podłączony do serwera przez VPN. Po uruchomieniu sudo yum -y updatewszystkie pakiety były aktualizowane, wraz z open-VPN. Po zaktualizowaniu pakietu open-VPN zostałem odłączony od VPN. Loguję się ponownie, spróbuj ponownie aktualizacji yum i to samo mówi.
arun

Odpowiedzi:


24

Myślę, że jest to spowodowane przez PackageKit. Musisz sprawdzić pakiet PackageKit i wyłączyć go (zakładam, że jest to CentOS 7 z systemctl, w przeciwnym razie możesz użyć servicei chkconfig) (jak wspomniano w komentarzach, nazwa usługi packagekitnie jest packagekitd):

systemctl stop packagekit
systemctl disable packagekit

Innym podejściem (w CentOS / RHEL 6, Fedora 19 lub wcześniejszym) jest otwarcie /etc/yum/pluginconf.d/refresh-packagekit.confza pomocą edytora tekstu i zmiana enabled=1na enabled=0.

Lub możesz go całkowicie usunąć:

yum remove PackageKit

3
Nazywa się to packagekit.servicemoim Centos 7
Vadim Kotov

W moim przypadku po prostu uruchomiłem systemctl stop packagekit, a następnie zwolniono yum lock.
T-Heron

9

wykonaj następujące czynności, aby rozwiązać problem:

cd /var/run
rm -f yum.pid

możesz także później zaktualizować mniam

yum -y update

1
To walka z objawami, a nie ustalenie prawdziwej przyczyny.
Axel Beckert,

4

Możesz odblokować yum, wykonując dwa proste kroki,

1) Uruchom, ps aux | grep yumaby zobaczyć, który proces blokuje yum. 2) kill <process_id>zabić proces.

Ponownie uruchom, ps aux | grep yumaby sprawdzić, czy proces został zabity, czy nie. Mniam zostanie odblokowany po zabiciu procesu.


3
to „działa”, ale prawdopodobnie jest to zła praktyka
Dave Cousineau

1
Działa to w wybranych okolicznościach. Zetknąłem się z sytuacją, w której systemd restartuje proces packagekit, zanim mogę uruchomić własne polecenie yum. I tak, prawdopodobnie jest to zła praktyka zabijanie PID zamiast wdzięcznego informowania packagekit, aby nie uruchamiał.
0x Owczarek

1

W moim przypadku byłem połączony z serwerem przez VPN (open VPN). Po uruchomieniu sudo yum -y updatewszystkie pakiety były aktualizowane, wraz z open-VPN. Po zaktualizowaniu pakietu open-VPN zostałem odłączony od VPN. Zalogowałem się ponownie, ponownie spróbowałem zaktualizować mniam i powiedziałem, że inny proces trzyma blokadę mniam.

Sprawdziłem, ps ax | grep yuma stary proces nadal działał. Czekałem 5 minut, aż „skończy się”, ale proces nadal działał. Potem pomyślałem, że mogę „pociągnąć za spust” zabijając, więc pobiegłem

kill <PID of the yum update process>

To nie zabiło procesu. Próbowałem jeszcze kilka razy i nadal nie ma sukcesu.

W końcu musiałem naprawdę wyciągnąć wtyczkę, uruchamiając:

kill -9 <PID of the yum update process>

Próbowałem ponownie aktualizować yum, ale ten sam problem. Potem pobiegłem:

rm -f /var/run/yum.pid

a następnie spróbowałem zaktualizować i otrzymałem ten wynik:

Loaded plugins: fastestmirror
Setting up Update Process
Loading mirror speeds from cached hostfile
 * base: mirror.sigmanet.com
 * epel: mirror.sjc02.svwh.net
 * extras: mirrors.vpsie.com
 * updates: mirror.pac-12.org
No Packages marked for Update

Wierz, że wszystko jest dobrze, ale nie podobało mi się ciągnięcie wtyczki na tak wiele rzeczy!


0

systemctl disable packagekit to za mało . packagekit będzie działał po restarcie. Użyj maskpolecenia zamiast disablepolecenia.

[root@localhost yum.repos.d]# systemctl mask packagekit
Created symlink from /etc/systemd/system/packagekit.service to /dev/null.

Następnie po ponownym uruchomieniu zobaczysz ...

[sri@localhost ~]$ systemctl status packagekit
● packagekit.service
   Loaded: masked (/dev/null; bad)
   Active: inactive (dead)
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.