Добавление/удаление 32/64-bit архитектур в Ubuntu Linux
Как добавить/удалить 32-bit/64-bit архитектуру в Ubuntu Linux, вы задавались данным вопросом? Решение есть.
Регулярно работая в Ubuntu Linux, я сталкиваюсь с тем, что для моей архитектуры попросту нет пакета приложения, который бы позволил установить нужное мне приложение под мою архитектуру, то есть в наше время как вы все уже должны знать(знаете), разработчики в большей мере уделяют основное внимание при создании ПО 64-bit архитектуре, для 32-bit такого внимания нет.
Так вот, например работая на компьютере с 32-bit архитектурой, вы хотите установить приложение которое не доступно для вашей архитектуры, но доступно для 64-bit, в данном случае есть выход. Конечно не всегда он срабатывает, но выручает часто.
Наведу пример, скачали мы пакет определенного приложения, пускай это будет pak-name-amd64.deb, вам нужно установить данный пакет в Ubuntu, вы попробуете конечно выполнить установку пакета подобным способом:
То есть нам сообщается, что этот пакет только под 64-bit архитектуру и мы не можем его установить при нашей 32-bit, что мы делаем в данном случае? Мы добавим в систему временно 64-bit архитектуру для установки пакета и после установки удалим чтобы это не мешало при дальнейшей работе с системой:
После выполнения данной команды мы добавили 64-bit архитектуру нам в систему, после попробуем выполнить установку пакета выше:
Вы увидите, что установка пошла, только сразу предупреждаю, не всегда все происходит гладко, часто данный процесс происходит с ошибками, ничего не трогаем и даем возможность приложению установиться до конца, после установки просто выполним команду:
- После вы увидите сообщение, что система нам предлагает установить пакеты которые не смогли установиться ранее из-за ошибок, просто жмем клавишу — Enter и установка пакетов должна пройти гладко(гарантий нет), у меня это происходило без ошибок.
- На данном этапе мы решили вопрос установки приложения под 64-bit архитектуру. Аналогичное мы можем проделать и для приложений под 32-bit архитектуру если у нас основная 64-bit, делаем по тому же принципу.
Как говорил выше, если даже установка идет с ошибками, не останавливаем данный процесс, даем завершиться установке, а после в том же терминале выполняем команду:
- Данная команда проверит и предложит установить пакеты которые не были установлены из-за ошибок при нашей попытке установки приложения выше.
Вот и все, архитектуру удалили, можем пользоваться установленным приложением.
По примеру выше, мы добавляли 32-bit архитектуру, так вот это должно пригодиться пользователям которые на 64-bit архитектуре, но хотят установить приложение TeamViewer возникает подобное сообщение при попытке установки:
Выбор ранее не выбранного пакета teamviewer.
(Чтение базы данных … на данный момент установлено 315507 файлов и каталогов.)
Распаковывается пакет teamviewer (из файла ./teamviewer_amd64.deb) …
dpkg: зависимости пакетов не позволяют настроить пакет teamviewer:
teamviewer зависит от lib32asound2, однако:
Пакет lib32asound2 не установлен.
teamviewer зависит от lib32z1, однако:
Пакет lib32z1 не установлен.
teamviewer зависит от ia32-libs, однако:
Пакет ia32-libs не установлен.
dpkg: ошибка при обработке параметра teamviewer (—install):
проблемы зависимостей — оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
teamviewer
На данном этапе, чтобы решить вопрос установки приложения TeamViewer, мы добавляем 32-bit архитектуру в 64-bit(ваша текущая), выполним команду:
Соглашаемся установить пакеты и жмем клавишу Enter, после проверяем, что TeamViewer успешно установился, удалим 32-bit архитектуру:
Как писал выше по установке TeamViewer под 64-bit архитектуру, у меня вот 32-bit, я соответственно ставлю под свою архитектуру и далее мы встречаемся с ошибкой:
root@Hacker:~/Загрузки# dpkg -i teamviewer_10.0.46203_i386.deb
Выбор ранее не выбранного пакета teamviewer.
(Чтение базы данных … на данный момент установлено 243957 файлов и каталогов.)
Preparing to unpack teamviewer_10.0.46203_i386.deb .
Unpacking teamviewer (10.0.46203) .
dpkg: зависимости пакетов не позволяют настроить пакет teamviewer:
teamviewer зависит от libjpeg62, однако:
Пакет libjpeg62 не установлен.
dpkg: error processing package teamviewer (—install):
проблемы зависимостей — оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
teamviewer
- Что мы делаем в данном случае чтобы приложение подтянуло нужные ему пакеты и установилось до конца и у нас была возможность работать с приложением TeamViewer.
- Далее согласиться установить пакеты нажав на клавишу Enter. Как видим неустановленные пакеты подтянулись и приложение удачно установилось.
Так же если кому интересно, советовал бы посмотреть видео, так же узнаете некоторые дополнительные команды:
На этом пожалуй все, приложение мы установили, как добавить и удалить нужные нам архитектуры обсудили, после уже практикуемся, пробуем, пользуемся материалом изложенным выше. Как говорил, нет никаких гарантий, что все приложения будут гладко устанавливаться и работать, некоторые устанавливаются без проблем и далее работают отлично, есть некоторые если и установил без ошибок, при клике на ярлык, а оно не запускается и так бывает все это побочные последствия несоответствия архитектуры под которую пишется приложение. Если у вас все же после прочтения материала выше остались вопросы или вы столкнулись с проблемой при добавлении архитектуры и установке пакета, спрашивайте в комментариях к материалу, постараюсь по возможности ответить каждому.
Debian: простое превращение i386 в amd64
Это краткая статья о том, как без переустановки организовать 64-битную архитектуру на вашем 32-битном Debian/Deabian-based дистрибутиве (который вы могли по-невнимательности загрузить вместо 64bit).
* Ваше железо должно изначально поддерживать amd64, магию творить никто не собирается.
* Это может повредить систему, так что действуйте очень осторожно.
* Всё проверялось на Debian10-buster-i386.
* Не делайте этого, если хоть что-то здесь не понимаете.
Dpkg, apt и sources.list
Сразу к делу, если вы сумaсшедший всё взвесили, начинаем подготовку пакетов (в принципе здесь порядок не имеет значения, но по пунктам удобнее)
1. Выбираем amd64 в /etc/apt/sources.list, вставляя ‘ [arch=amd64] ‘ между deb\deb-src и URL
# Base reps deb [arch=amd64] http://deb.debian.org/debian/ buster main contrib non-free deb-src [arch=amd64] http://deb.debian.org/debian/ buster main contrib non-free # Update reps deb [arch=amd64] http://deb.debian.org/debian/ buster-updates main deb-src [arch=amd64] http://deb.debian.org/debian/ buster-updates main # Security reps deb [arch=amd64] http://security.debian.org/debian-security/ buster/updates main deb-src [arch=amd64] http://security.debian.org/debian-security/ buster/updates main
Это нужно для того, чтобы в будущем загружались только 64-х битные пакеты.
2.Добавляем amd64 в dpkg, чтобы он не ругался:
$ sudo dpkg --add-architecture amd64
3.Обновляем список пакетов:
Ядро
Разумеется всё это не имеет смысла без 64-х битного ядра, поэтому устанавливаем его:
$ sudo apt install linux-headers-$VERSION-amd64 linux-image-amd64
Место $VERSION подставить нужную версию ядра.
После установки ядра grub перенастроится автоматически.
Завершение
После перезагрузки наша система уже сможет работать с amd64, но с пакетами могут возникнуть некоторые проблемы. У меня для их решения было достаточно выполнить данные команды:
$ sudo apt --fix-broken install $ sudo apt full-upgrade
Хотя сильно на этот счёт беспокоиться тоже не стоит — все нужные пакеты со временем сами установятся как зависимости, а ненужные удаляются так:
После приведённых выше операций можно опять поправить sources.list, убрав ‘ [arch=amd64] ‘,
чтобы с пакетами не было проблем.
Теперь в вашем распоряжении находится 64-битная система!