Zainstaluj ponownie pakiet i jego zainstalowane zależności

25

Mam zainstalowany pakiet, który jest uszkodzony (sam pakiet, a nie jego zależności). Ponowna instalacja z sudo dpkg-reconfigure <package>lub sudo apt-get --reinstall install <package>nie załatwiła sprawy. Chciałbym spróbować ponownie zainstalować pakiet, w tym wszystkie jego obecnie zainstalowane zależności. Czy jest na to sposób?

Pasza
źródło

Odpowiedzi:

35

Możesz sprawdzić wszystkie zależności pakietu za pomocą apt-cache:

$ sudo apt-cache depends <package>

Korzystając z wyników tego polecenia, otrzymujemy następujący, który ponownie instaluje <package>i jego zależności:

$ sudo apt-cache depends <package> | grep '[ |]Depends: [^<]' | cut -d: -f2 | tr -d ' ' | xargs sudo apt-get --reinstall install -y
Sebastian Potasiak
źródło
12
To jest to! Dziękuję Ci. Zmodyfikowałem argument grep z, 'Depends'aby '[ |]Depends: [^<]'wykluczyć PreDepends i alternatywne wpisy pakietu ( Depends: <package> ). Argumenty apt-get musiałyby dotyczyć --reinstall installfaktycznej ponownej instalacji, której szukałem.
Pasza
3
Aby tego nie przetestować, opublikowanie go bez dalszych wyjaśnień jest dość odważne. W końcu usuwasz kilka paczek.
AB