Со временем я установил много пакетов i386, которые мне больше не нужны. Как я могу очистить систему и остаться только с пакетами amd64?
Верхние автоматизированные решения опасны и не всегда работают (1), поэтому здесь есть другой способ
sudo aptitude purge `dpkg --get-selections | grep ":i386" | awk '{print $1}'`
или
sudo apt-get purge `dpkg --get-selections | grep ":i386" | awk '{print $1}'`
(Старайтесь использовать всегда и только один из инструменты. Так как aptitude лучше, когда возникают проблемы с зависимостью, я предпочитаю это.)
Хорошая идея также
dpkg --remove-architecture i386
и, возможно,
dpkg --print-foreign-architectures
(1) В предыдущих командах также перечисляются пакеты, в названии которых содержится только i386 (хотя они предназначены для 64-битной архитектуры), регулярное выражение не работает, а dpkg показывает пакеты, которые уже удалены, но у них все еще есть файлы конфигурации ( dpkg -l [ 114] показывает «rc» вместо «ii» в качестве статуса).
Я скопировал все свои 32-битные пакеты, как это:
sudo apt-get remove `dpkg --get-selections | grep i386 | awk '{print $1}'`
Вот иначе, который является еще более низким риском:
apt-get remove "^.*:i386$"
Это будет конкретно соответствовать только пакетам, заканчивающимся ":i386"
, который является стандартным соглашением о присвоении имен для всех i386
архитектура пакеты Debian.
Если кому-то интересно, есть гораздо более вменяемый и изящный способ сделать это. Последний предыдущий ответ надеется сделать то же самое, но поиск завершится неудачно, поскольку архитектуры фактически не являются частью имен пакетов, за исключением особых случаев.
от имени пользователя root (или с помощью sudo) выполните:
aptitude remove ~i~ri386
Если вы уже не используете aptitude вместо apt-get, сделайте. Это действительно отлично. Вы можете найти список поисковых запросов aptitude здесь .
В многоархивном руководстве debian упоминается эта команда: apt-get purge ".*:<arch>"
, которая выглядит следующим образом для i386
:
apt-get purge ".*:i386"
. Затем вы можете удалить архитектуру из dpkg: [ 116]
dpkg --remove-architecture i386
Если они вам не мешают, я бы оставил их там, где они есть.
Если вы настаиваете на удалении, используйте dpkg -l | grep i386
, чтобы создать список i386-пакетов. Вы можете удалить их после тщательной проверки с помощью чего-то вроде sudo apt-get purge <package-name>
.