Как установить 64-разрядный .deb файл на 32-разрядной машине?

У меня есть Ubuntu 14.04. Я недавно загрузил Viber. Viber .deb файл имеет 64-разрядную архитектуру. Я хочу установить его на своем компьютере, но мой компьютер только поддерживает 32-разрядный.

Вывод выполнения lscpu следующие:

Architecture: i686
CPU op-mode(s): 32-bit, 64-bit 
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1 
Core(s) per socket: 2 
Socket(s): 1 
Vendor ID: GenuineIntel 
CPU family: 6 
Model: 23 
Stepping: 10 
CPU MHz: 2800.000 
BogoMIPS: 5586.12 
Virtualization: VT-x 
L1d cache: 32K 
L1i cache: 32K 
L2 cache: 2048K
17
задан 10 July 2015 в 08:29

6 ответов

При условии, что ваше оборудование поддерживает 64-разрядную архитектуру, что обеспечивает:

Операционные режимы ЦП: 32-разрядные, 64-разрядные

и пакет был подготовлен для использования многоархитектурной архитектуры, т.е. также верно:

 dpkg -I viber.deb
 new debian package, version 2.0. <--- here
 size 57046082 bytes: control archive=8024 bytes.
       0 bytes,     0 lines      0                    
    1210 bytes,    29 lines      control              
    9475 bytes,    33 lines   *  copyright            
    7404 bytes,    85 lines      md5sums              
      39 bytes,     2 lines   *  postinst             #!/bin/bash
     800 bytes,    35 lines   *  preinst              #!/bin/bash
     500 bytes,    24 lines   *  prerm                #!/bin/bash
 Package: viber
 Version: 4.2.2.6
 Section: non-free/net
 Priority: extra
 Architecture: amd64 <---- and here

вы можете просто установить необходимые 64-битные библиотеки и двоичные файлы, которые зависят от пакета (которого нет, подробнее об этом позже), который вам нужен для запуска приложения, с виртуальным нулевым влиянием на производительность. В моем случае я просто отлично установил пакет:

$ sudo dpkg --add-architecture amd64
## adding 64-bits architecture package, in my system I didn't need to
## but it's likely you have
$ sudo apt-get update # this downloads the package list for amd64 arch
$ sudo dpkg -i viber.deb
Selecting previously unselected package viber.
(Reading database ... 268703 files and directories currently installed.)
Preparing to unpack viber.deb ...
Unpacking viber (4.2.2.6) ...
Setting up viber (4.2.2.6) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for gnome-menus (3.13.3-1) ...
Processing triggers for mime-support (3.56) ...
Processing triggers for desktop-file-utils (0.22-1) ...

И тут начались проблемы ...

Менеджеры пакетов решили, что они не должны указывать какие-либо зависимости для своего пакета,

 Installed-Size: 141336
 Conflicts: Viber (<< 4.2.2.6)
 Replaces: Viber (<< 4.2.2.6)
 Maintainer: Viber Media Inc <support@viber.com>

которые им действительно нужны:

ldd /opt/viber/Viber | grep 'not found'
    libXcomposite.so.1 => not found
    libxslt.so.1 => not found
    libxml2.so.2 => not found
    libgstreamer-0.10.so.0 => not found
    libgstapp-0.10.so.0 => not found
    libgstbase-0.10.so.0 => not found
    libgstinterfaces-0.10.so.0 => not found
    libgstpbutils-0.10.so.0 => not found
    libgstvideo-0.10.so.0 => not found
    libsqlite3.so.0 => not found

, поэтому вы должны найти и установить недостающие библиотеки вручную! Это легко, если вы знаете правильные инструменты. Здесь пригодится apt-файл , а также http://packages.ubuntu.com функция «Поиск содержимого пакетов» также подойдет. Но я пошел дальше и поискал их:

Эти файлы уже установлены в моей системе, вам нужно только скопировать имя пакета, перед двоеточием, заканчивающимся на amd64 . Вы должны скопировать имена пакетов в том виде, в котором они есть:

dpkg -S $(ldd /opt/viber/Viber | awk '{print $3}' | grep -vP 'not|viber')
libc6:amd64: /lib/x86_64-linux-gnu/libpthread.so.0
libc6:amd64: /lib/x86_64-linux-gnu/libdl.so.2
libc6:amd64: /lib/x86_64-linux-gnu/librt.so.1
libstdc++6:amd64: /usr/lib/x86_64-linux-gnu/libstdc++.so.6
libc6:amd64: /lib/x86_64-linux-gnu/libm.so.6
libgcc1:amd64: /lib/x86_64-linux-gnu/libgcc_s.so.1
libc6:amd64: /lib/x86_64-linux-gnu/libc.so.6
libx11-6:amd64: /usr/lib/x86_64-linux-gnu/libX11.so.6
libxext6:amd64: /usr/lib/x86_64-linux-gnu/libXext.so.6
zlib1g:amd64: /lib/x86_64-linux-gnu/libz.so.1
libgl1-mesa-glx:amd64: /usr/lib/x86_64-linux-gnu/libGL.so.1
libxrender1:amd64: /usr/lib/x86_64-linux-gnu/libXrender.so.1
libglib2.0-0:amd64: /lib/x86_64-linux-gnu/libglib-2.0.so.0
libglib2.0-0:amd64: /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
libxcb1:amd64: /usr/lib/x86_64-linux-gnu/libxcb.so.1
libglapi-mesa:amd64: /usr/lib/x86_64-linux-gnu/libglapi.so.0
libxdamage1:amd64: /usr/lib/x86_64-linux-gnu/libXdamage.so.1
libxfixes3:amd64: /usr/lib/x86_64-linux-gnu/libXfixes.so.3
libx11-xcb1:amd64: /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1
libxcb-glx0:amd64: /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0
libxcb-dri2-0:amd64: /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0
libxcb-dri3-0:amd64: /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0
libxcb-present0:amd64: /usr/lib/x86_64-linux-gnu/libxcb-present.so.0
libxcb-sync1:amd64: /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1
libxshmfence1:amd64: /usr/lib/x86_64-linux-gnu/libxshmfence.so.1
libxxf86vm1:amd64: /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1
libdrm2:amd64: /usr/lib/x86_64-linux-gnu/libdrm.so.2
libpcre3:amd64: /lib/x86_64-linux-gnu/libpcre.so.3
libffi6:amd64: /usr/lib/x86_64-linux-gnu/libffi.so.6
libxau6:amd64: /usr/lib/x86_64-linux-gnu/libXau.so.6
libxdmcp6:amd64: /usr/lib/x86_64-linux-gnu/libXdmcp.so.6

Они у меня не были установлены, которые я получил с помощью ldd / opt / viber / Viber | grep 'не найден' | awk '{printf "% s $ \ n", $ 1}' | поиск apt-файла -x -a amd64 -f - | sed 's / \: /: amd64: /' :

$ ldd /opt/viber/Viber | grep 'not found' | awk '{printf "%s$\n", $1}' | apt-file search -x -a amd64 -f - | sed 's/\:/:amd64:/'
libgstreamer-plugins-base0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstapp-0.10.so.0
libgstreamer-plugins-base0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstinterfaces-0.10.so.0
libgstreamer-plugins-base0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstpbutils-0.10.so.0
libgstreamer-plugins-base0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstvideo-0.10.so.0
libgstreamer0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstbase-0.10.so.0
libgstreamer0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
libsqlite3-0:amd64: /usr/lib/x86_64-linux-gnu/libsqlite3.so.0
libxcomposite1:amd64: /usr/lib/x86_64-linux-gnu/libXcomposite.so.1
libxml2:amd64: /usr/lib/x86_64-linux-gnu/libxml2.so.2
libxslt1.1:amd64: /usr/lib/x86_64-linux-gnu/libxslt.so.1

apt-file был дразнилкой, предлагая мне 64-битные пакеты, поэтому мне пришлось выполнить sudo apt-file -a amd64 update , чтобы заставить его иметь список 64-битных файлов.

Теперь позвольте мне объяснить, что все вышесказанное:

  • ldd / path / to / binary : читает двоичный файл и сообщает вам, какие требуются библиотеки, символы и т. Д.
  • dpkg -S : поиск, в каких пакетах содержится конкретный установленный файл.
  • awk , sed и grep : изменяют текстовый поток для обработки только интересных частей или отображения желаемого результата.
  • | , $ (...) : первый позволяет мне перенаправить вывод команды другому, а второй позволяет мне выполнять / оценивать команду перед основными будет казнен.

TL; dr просто установите эти пакеты:

sudo dpkg --add-architecture amd64 ## adding 64-bits architecture package
sudo apt-get update
sudo apt-get install libgstreamer-plugins-base0.10-0:amd64 libgstreamer-plugins-base0.10-0:amd64 libgstreamer-plugins-base0.10-0:amd64 libgstreamer-plugins-base0.10-0:amd64 libgstreamer0.10-0:amd64 libgstreamer0.10-0:amd64 libsqlite3-0:amd64 libxcomposite1:amd64 libxml2:amd64 libxslt1.1:amd64 libc6:amd64 libdrm2:amd64 libffi6:amd64 libgcc1:amd64 libgl1-mesa-glx:amd64 libglapi-mesa:amd64 libglib2.0-0:amd64 libpcre3:amd64 libstdc++6:amd64 libx11-6:amd64 libx11-xcb1:amd64 libxau6:amd64 libxcb1:amd64 libxcb-dri2-0:amd64 libxcb-dri3-0:amd64 libxcb-glx0:amd64 libxcb-present0:amd64 libxcb-sync1:amd64 libxdamage1:amd64 libxdmcp6:amd64 libxext6:amd64 libxfixes3:amd64 libxrender1:amd64 libxshmfence1:amd64 libxxf86vm1:amd64 zlib1g:amd64

Вам также необходимо установить 64-битное ядро.

22
ответ дан 23 November 2019 в 02:16

Не возможно установить программное обеспечение, которые поддерживают дугу на только 64 бита на ОС на 32 бита, тогда как реверс верен. Для установки программного обеспечения на 64 бита, Вам будут нужны аппаратные средства, которые поддерживают 64 бита и ОС на 64 бита, работающая на вершине его.

Также я хотел бы упомянуть, что не возможно установить 64 бита ОС как Виртуальная машина на аппаратных средствах, которые поддерживают архитектуру на только 32 бита. Ваши аппаратные средства должны поддерживать архитектуру на 64 бита наряду с поддержкой виртуализации для создания виртуальных машин на 64 бита.

11
ответ дан 23 November 2019 в 02:16

Я должен сказать, что Вы не верны [приблизительно 116]

мой компьютер [только 1 110] поддержки, 32-разрядные

Согласно выводу выполнения lscpu Ваша версия Ubuntu, которая установила, 32 бита, в то время как Ваша система может поддержать приложение на 64 бита, если Вы хотите установить приложение на 64 бита, необходимо установить 64 бита Ubuntu ОС. посмотрите это строки ниже:

Architecture: i686              # <-- your kernel is 32 bit (32 bit Ubuntu)
CPU op-mode(s): 32-bit, 64-bit  # <-- your cpu can handle 32 or 64 bit instructions
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1 
Core(s) per socket: 2 
Socket(s): 1 
Vendor ID: GenuineIntel 
CPU family: 6 
Model: 23 
Stepping: 10 
CPU MHz: 2800.000 
BogoMIPS: 5586.12 
Virtualization: VT-x 
L1d cache: 32K 
L1i cache: 32K 
L2 cache: 2048K

Загрузка и установка Ubuntu на 64 бита 14.04.1 и затем устанавливают Viber также.

10
ответ дан 23 November 2019 в 02:16

Можно установить программное обеспечение на 64 бита на машине, созданной с аппаратными средствами на 32 бита таким же образом, можно работать, говорится в программном обеспечении ARM относительно цели x86, с помощью динамического перевода.

В основном, часть программного обеспечения такой как qemu находится промежуток программы и Ваш компьютер, выполняя перевод от системы команд AMD64 до x86 (вероятно, i686) один (с очень серьезный хит производительности по общему признанию, который в Вашем случае мог быть полностью преодолимым).

, Учитывая Вас используют человечность, у Вас есть превосходное часть документации относительно того, как установить это . В основном у Вас есть один из двух вариантов, можно или запустить программу в полной среде VM на 64 бита с ее собственным ядром или, что я думаю, что Вы хотите, вот визуализация пространства пользователя, это использует преобразование (я не думаю, что это обычно называют, преобразовывая в эти дни, но забудьте новое слово) переводить системные вызовы от 64 битов до 32 битов так, чтобы можно было использовать собственное ядро.

Теперь руководство объясняет это лучше, чем я, но короче говоря необходимо установить qemu, и qemu-kvm-extras-static пакеты тогда используют qemu-debootstrap для установки среды и библиотек для 64 битных программ. Тогда необходимо использовать binfmt_misc и статический qemu интерпретатор (qemu-arch-static, в случае, вероятно, x86_64, x64 или AMF64) для выполнения программы внутри, это - среда.

Примечание, что однако, Ваш ЦП, кажется, поддерживает инструкции на 64 бита, таким образом, для Вас может быть возможно установить человечность на 64 бита, Вы можете без любой эмуляции выполненный x86-код на машине AMD64 и если Вы в состоянии сделать это, может быть легче, если, с другой стороны, Вы хотите обнаружить qemu, и мир эмуляции архитектуры (может прибыть в руку позже, если Вы создали программу для, говорят... ARM, такой как что-то созданное для телефона) я рекомендую, чтобы Вы продолжили вперед, но остерегались, вещи иногда берут немного игры или отладки, прежде чем они будут работать приятно.

10
ответ дан 23 November 2019 в 02:16

Если Вы выполняете системное использование на 32 бита

sudo dpkg - ссылка архитектуры силы-i viber.deb

: , Как Установить Viber на Ubuntu 13.10, 32 бита

-1
ответ дан 23 November 2019 в 02:16

Считайте приблизительно 32 бита (x86) и приложения на 64 бита:
http://www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm

Иногда возможно, что приложение или единственный пакет [один .deb файл] действуют как оба после установки.
т.е., x86 app on x86 OS и x64 app on x64 OS

1
ответ дан 23 November 2019 в 02:16

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

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