Z czasem zainstalowałem wiele pakietów i386, których już nie potrzebuję. Jak mogę wyczyścić system i pozostać tylko z pakietami amd64?
package-management
64-bit
uninstall
32-bit
yossile
źródło
źródło
Odpowiedzi:
Jeśli nie są na twojej drodze, zostawiłbym ich tam, gdzie są.
Jeśli nalegasz na usunięcie, użyj,
dpkg -l | grep i386
aby utworzyć listę pakietów i386. Możesz je usunąć po dokładnym sprawdzeniu za pomocą czegoś takiegosudo apt-get purge <package-name>
.źródło
apt-get purge <package-name>
powinien jednak nadal działać.dpkg -l | grep amd64
mam i386 pkg na mojej liście, co jestamd64-microcode 3.20160316.3 i386
, myślę, że ':' we wzorcu grep jest ważne ! (dpkg -l | grep ":amd64"
)Górne zautomatyzowane rozwiązania są niebezpieczne i nie zawsze działają (1), więc tutaj jest inny sposób
lub
(Staraj się używać zawsze i tylko jednego z narzędzi. Ponieważ aptitude jest lepszy, gdy masz problemy z zależnością, wolę to.)
Dobry pomysł również
I może
(1) Poprzednie polecenia wyświetlają również listę pakietów posiadających tylko nazwę i386 (chociaż są one przeznaczone dla architektury 64-bitowej), wyrażenie regularne nie działało, a dpkg pokazuje pakiety, które zostały już usunięte, ale nadal mają pliki konfiguracyjne ( dpkg -l pokazuje „rc” zamiast „ii” jako status).
źródło
awk
, równie dobrze możesz pozbyć sięgrep
wywołania. Ponadto$()
jest preferowany zamiast backicks. Właśnie pozbyłem się moich pakietów i386 za pomocą tego polecenia opartego na tym, który podałeś:sudo apt purge $(dpkg --get-selections | awk '$1 ~ /:i386$/ { print $1 }')
Zblitzowałem wszystkie moje 32-bitowe pakiety w ten sposób:
źródło
dpkg -l | grep i386
sprawdzam, czy w paczkach są jeszcze jakieś pomysły, również +1 za poprzedni komentarz i przypuszczam, że jest to związane z technikami skryptów powłokisudo dpkg --remove-architecture i386
Jeśli ktoś się zastanawia, istnieje o wiele bardziej rozsądny i pełen wdzięku sposób. Ostatnia poprzednia odpowiedź ma nadzieję zrobić to samo, ale wyszukiwanie kończy się niepowodzeniem, ponieważ architektury nie są w rzeczywistości częścią nazw pakietów, z wyjątkiem szczególnych przypadków.
jako root (lub z sudo) uruchom:
Jeśli nie używasz już aptitude w stosunku do apt-get, zrób to. To jest naprawdę doskonałe. Listę wyszukiwanych terminów aptitude znajdziesz tutaj .
źródło
Oto inny sposób na jeszcze mniejsze ryzyko:
apt-get remove "^.*:i386$"
Będzie to w szczególności pasować tylko do pakietów kończących się
":i386"
, co jest standardową konwencją nazewnictwa dla wszystkichi386
pakietów Debiana architektury.źródło
sudo apt-get purge .*:i386
W podręczniku debiana znajduje się wzmianka o tym poleceniu:
apt-get purge ".*:<arch>"
które wygląda taki386
:Następnie możesz usunąć architekturę z dpkg:
źródło