Со временем я установил много пакетов i386, которые мне больше не нужны. Как я могу очистить систему и остаться только с пакетами amd64?
package-management
64-bit
uninstall
32-bit
yossile
источник
источник
Ответы:
Если они вам не мешают, я бы оставил их там, где они есть.
Если вы настаиваете на удалении, используйте
dpkg -l | grep i386
для создания списка i386-пакетов. Вы можете удалить их после тщательной проверки с чем-то вродеsudo apt-get purge <package-name>
.источник
apt-get purge <package-name>
все равно должно работатьdpkg -l | grep amd64
я получил pkg i386 в моем списке, которыйamd64-microcode 3.20160316.3 i386
, я думаю, что ':' в шаблоне grep является важным ! (dpkg -l | grep ":amd64"
)Верхние автоматизированные решения опасны и не всегда работают (1), поэтому здесь другой путь
или
(Старайтесь использовать всегда и только один из инструментов. Поскольку aptitude лучше справляется с проблемами зависимости, я предпочитаю это.)
Хорошая идея также
и возможно
(1) В предыдущих командах также перечисляются пакеты, в названии которых содержится только i386 (хотя они предназначены для 64-битной архитектуры), регулярное выражение не работает, и dpkg показывает пакеты, которые уже удалены, но у них все еще есть файлы конфигурации ( dpkg -l показывает «rc» вместо «ii» в качестве статуса).
источник
awk
любом случае, вы можете также избавиться отgrep
вызова. Кроме того,$()
предпочтительнее вместо кавычек. Я только что избавился от своих пакетов i386, используя эту команду, основанную на той, которую вы дали:sudo apt purge $(dpkg --get-selections | awk '$1 ~ /:i386$/ { print $1 }')
Я уничтожил все свои 32-битные пакеты, как это:
источник
dpkg -l | grep i386
проверяю пакеты, есть ли еще какие-либо идеи, также +1 для предыдущего комментария и, я думаю, это связано с методами сценариев оболочкиsudo dpkg --remove-architecture i386
В случае, если кому-то интересно, есть гораздо более вменяемый и изящный способ сделать это. Последний предыдущий ответ надеется сделать то же самое, но поиск завершится неудачно, поскольку архитектуры фактически не являются частью имен пакетов, за исключением особых случаев.
с правами root (или с помощью sudo) выполните:
Если вы уже не используете aptitude вместо apt-get, сделайте. Это действительно отлично. Вы можете найти список условий поиска aptitude здесь .
источник
Вот еще один способ снижения риска:
apt-get remove "^.*:i386$"
Это будет конкретно соответствовать только пакетам, оканчивающимся на
":i386"
, что является стандартным соглашением об именах для всехi386
архитектурных пакетов Debian.источник
sudo apt-get purge .*:i386
В многоархивном руководстве Debian упоминается эта команда:,
apt-get purge ".*:<arch>"
которая выглядит такi386
:Затем вы можете удалить архитектуру из dpkg:
источник