Почему у меня установлен один и тот же пакет для обеих архитектур?

Ubuntu просто выберет самую последнюю версию пакета, доступную для него. Вы можете просмотреть доступные ему версии в любое время, используя команду apt-cache policy <package>. У меня нет PPA, и я нахожусь на 14.04, но вот что я вижу:

$ apt-cache policy codeblocks
codeblocks:
  Installed: (none)
  Candidate: 13.12-3
  Version table:
     13.12-3 0
        500 http://archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages

Если у вас несколько версий, вы можете принудительно установить установленную версию:

[ f2]

Но как только вы приступите к обновлению sudo apt-get, он вернется к последней версии. Вы можете обойти это, привязав пакет, но я не буду вдаваться в это, если вам это действительно не нужно. Это может вызвать большие проблемы в долгосрочной перспективе.

1
задан 3 June 2017 в 02:35

6 ответов

Все пакеты на установленной системе amd64 Ubuntu являются amd64, если явно не указано иное.

Пакеты, перечисленные как *-i386, представляют собой пакеты совместимости для архитектуры amd64, которые обычно необходимы в качестве зависимости для установленного пакета.

Таким образом, вы можете установить пакет, доступный для архитектуры amd64 (версия amd64 пакета i386), которая написана для i386 без необходимости «добавлять» это «foreign-architecture».

Однако, если пакет указан как *:i386, это i386 пакет.

Некоторые пакеты доступны только в версии i386. Это кажется более распространенным с проприетарными пакетами, и поэтому вино часто является проблемой, поскольку все мы знаем, как окна не будут запускать много вещей без каталога x86 (32-разрядный).

[!d6 ]

С учетом сказанного я считаю, что внешняя архитектура i386 включена по умолчанию в более новых версиях Ubuntu.

Вы можете удалить версии всех пакетов в вашей системе i386, хотя вам следует сделать поэтому, с осторожностью, поскольку это может вызвать проблемы совместимости с такими приложениями, как Wine.

Будьте уверены, однако, что Ubuntu и apt всегда будут устанавливать по умолчанию amd64 версию пакета i386 версии (кроме Wine). Как правило, вы должны указать версию i386, и если арка не указана, система почти всегда будет устанавливать и использовать версию amd64, если она доступна и установлена.

1
ответ дан 22 May 2018 в 21:56
  • 1
    Спасибо за ответ! Где пакеты относятся к использованию формата *[i386]:(amd64|i386)? Я видел только обозначения i386 и amd64 в индексах APT и файлах состояния. – mac9416 3 June 2017 в 04:47
  • 2
    @ mac9416 Один пример: wine1.6-i386, который на самом деле является wine1.6-i386: amd64. Поскольку это стандартная архитектура,: amd64 обычно будет опущен. Таким образом, любой пакет, который указан как packagename-i386, на самом деле является packagename-i386: amd64, если он не является packagename-i386: i386. У вас, вероятно, есть некоторые компоненты i386, такие как библиотеки и другие подобные материалы совместимости. В большинстве случаев вы не можете установить две архитектуры одного и того же приложения, так как оба пакета предоставят один и тот же файл, например / usr / bin / something, создающий конфликт, который необходимо будет устранить во время установки. – mchid 3 June 2017 в 19:21
  • 3
    @ mac9416. Библиотеки, в отличие от исполняемых файлов, обычно имеют уникальный путь в зависимости от архитектуры, поэтому конфликт при установке обоих пакетов библиотеки архитектуры отсутствует. – mchid 3 June 2017 в 19:24
  • 4
    @ mac9416 Для таких приложений, как вино, вы можете указать архитектуру при создании своего префикса вина, и у вас может быть более одного префикса вина для каждой архитектуры. – mchid 3 June 2017 в 19:27
  • 5
    @ mac9416 Они упоминаются при использовании команды dpkg -l | grep i386. – mchid 3 June 2017 в 19:33

Все пакеты на установленной системе amd64 Ubuntu являются amd64, если явно не указано иное.

Пакеты, перечисленные как *-i386, представляют собой пакеты совместимости для архитектуры amd64, которые обычно необходимы в качестве зависимости для установленного пакета.

Таким образом, вы можете установить пакет, доступный для архитектуры amd64 (версия amd64 пакета i386), которая написана для i386 без необходимости «добавлять» это «foreign-architecture».

Однако, если пакет указан как *:i386, это i386 пакет.

Некоторые пакеты доступны только в версии i386. Это кажется более распространенным с проприетарными пакетами, и поэтому вино часто является проблемой, поскольку все мы знаем, как окна не будут запускать много вещей без каталога x86 (32-разрядный).

С учетом сказанного я считаю, что внешняя архитектура i386 включена по умолчанию в более новых версиях Ubuntu.

Вы можете удалить версии всех пакетов в вашей системе i386, хотя вам следует сделать поэтому, с осторожностью, поскольку это может вызвать проблемы совместимости с такими приложениями, как Wine.

Будьте уверены, однако, что Ubuntu и apt всегда будут устанавливать по умолчанию amd64 версию пакета i386 версии (кроме Wine). Как правило, вы должны указать версию i386, и если арка не указана, система почти всегда будет устанавливать и использовать версию amd64, если она доступна и установлена.

1
ответ дан 18 July 2018 в 12:15

Все пакеты на установленной системе amd64 Ubuntu являются amd64, если явно не указано иное.

Пакеты, перечисленные как *-i386, представляют собой пакеты совместимости для архитектуры amd64, которые обычно необходимы в качестве зависимости для установленного пакета.

Таким образом, вы можете установить пакет, доступный для архитектуры amd64 (версия amd64 пакета i386), которая написана для i386 без необходимости «добавлять» это «foreign-architecture».

Однако, если пакет указан как *:i386, это i386 пакет.

Некоторые пакеты доступны только в версии i386. Это кажется более распространенным с проприетарными пакетами, и поэтому вино часто является проблемой, поскольку все мы знаем, как окна не будут запускать много вещей без каталога x86 (32-разрядный).

С учетом сказанного я считаю, что внешняя архитектура i386 включена по умолчанию в более новых версиях Ubuntu.

Вы можете удалить версии всех пакетов в вашей системе i386, хотя вам следует сделать поэтому, с осторожностью, поскольку это может вызвать проблемы совместимости с такими приложениями, как Wine.

Будьте уверены, однако, что Ubuntu и apt всегда будут устанавливать по умолчанию amd64 версию пакета i386 версии (кроме Wine). Как правило, вы должны указать версию i386, и если арка не указана, система почти всегда будет устанавливать и использовать версию amd64, если она доступна и установлена.

1
ответ дан 24 July 2018 в 19:56

Пакеты i386 установлены в вашей системе amd64, потому что программы i386 не могут использовать библиотеки amd64.

Вот как amd64 компьютеры могут запускать программы i386 и amp; amd64. Если программа amd64 запрашивает libxml2, вызывается amd64 версия libxml2. Если программа i386 запрашивает libxml2, и она получает версию amd64, они несовместимы - вместо этого она получает i386 версию libxml2.

Итак, причина почему установлены пакеты i386 и amd64, для поддержки программ i386 в системах amd64.

2
ответ дан 22 May 2018 в 21:56

Пакеты i386 установлены в вашей системе amd64, потому что программы i386 не могут использовать библиотеки amd64.

Вот как amd64 компьютеры могут запускать программы i386 и amp; amd64. Если программа amd64 запрашивает libxml2, вызывается amd64 версия libxml2. Если программа i386 запрашивает libxml2, и она получает версию amd64, они несовместимы - вместо этого она получает i386 версию libxml2.

Итак, причина почему установлены пакеты i386 и amd64, для поддержки программ i386 в системах amd64.

2
ответ дан 18 July 2018 в 12:15

Пакеты i386 установлены в вашей системе amd64, потому что программы i386 не могут использовать библиотеки amd64.

Вот как amd64 компьютеры могут запускать программы i386 и amp; amd64. Если программа amd64 запрашивает libxml2, вызывается amd64 версия libxml2. Если программа i386 запрашивает libxml2, и она получает версию amd64, они несовместимы - вместо этого она получает i386 версию libxml2.

Итак, причина почему установлены пакеты i386 и amd64, для поддержки программ i386 в системах amd64.

2
ответ дан 24 July 2018 в 19:56

Другие вопросы по тегам:

Похожие вопросы: