Нужна помощь в установке 32-битного приложения на моем 11.10 64bit. Multi-arch не работает

Я думал, что 11.10 должен иметь поддержку нескольких архитектур, но установка 32-разрядного .deb дает мне ошибку «неправильной архитектуры». Что мне нужно сделать, чтобы установить этот deb?

CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb

Вот результат, когда я пытаюсь принудительно выполнить установку с помощью команды force architecture

Selecting previously deselected package crossplatformui:i386.
(Reading database ... 186238 files and directories currently installed.)
Unpacking crossplatformui:i386 (from CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb) ...
Setting up crossplatformui:i386 (2.1.1) ...
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service acpid restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop acpid ; start acpid. The restart(8) utility is also available.
acpid stop/waiting
acpid start/running, process 2569
package libqtgui4 exist
QT_VERSION = 4
make -C /lib/modules/3.0.0-12-generic/build M=/usr/local/bin/ztemtApp/zteusbserial/below2.6.27 modules
make[1]: Entering directory `/usr/src/linux-headers-3.0.0-12-generic'
  CC [M]  /usr/local/bin/ztemtApp/zteusbserial/below2.6.27/usb-serial.o
/usr/local/bin/ztemtApp/zteusbserial/below2.6.27/usb-serial.c:34:28: fatal error: linux/smp_lock.h: No such file or directory
compilation terminated.
make[2]: *** [/usr/local/bin/ztemtApp/zteusbserial/below2.6.27/usb-serial.o] Error 1
make[1]: *** [_module_/usr/local/bin/ztemtApp/zteusbserial/below2.6.27] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.0.0-12-generic'
make: *** [modules] Error 2
dpkg: error processing crossplatformui:i386 (--install):
 subprocess installed post-installation script returned error exit status 2
Processing triggers for gnome-menus ...
Processing triggers for desktop-file-utils ...
Processing triggers for bamfdaemon ...
Rebuilding /usr/share/applications/bamf.index...
Errors were encountered while processing:
 crossplatformui:i386

Может кто-то помочь ?

2
задан 20 October 2011 в 19:49

4 ответа

Похоже, что заголовок не найден из-за многокричных изменений. Извлеките deb-файл, примените исправления, перестройте deb и установите его:

Измените каталог, содержащий debfile. Создайте временный каталог для исправления материала и перейдите в него (имя каталога было выбрано случайным образом):
mkdir kasapa-deb && cd kasapa-deb
Извлеките файлы управления и установки:
dpkg --control CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb
dpkg --extract CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb .
Примените исправления, отредактировав DEBIAN/postinst. Если строка с CFLAGS += еще не существует, вставьте (например, после первых прокомментированных строк, строки с ведущими #):
CFLAGS += -I/usr/include/$(shell dpkg-architecture -qDEB_BUILD_MULTIARCH)
Если она уже существует, просто добавьте часть -I ... к существующему CFLAGS (разделенные пробелом). Пока вы на нем, вы можете сделать пакет отображаемым как 64-битный, при условии, что файлы в пакете действительно 64-разрядные. Отредактируйте DEBIAN/control и измените Architecture: i386 на Architecture: amd64. Переустановите пакет, создав новый файл в родительском каталоге:
dpkg-deb -b . ..
Установите новый пакет:
sudo dpkg -i ../[name of the package that was just created].deb
Теперь вы можете удалить временный каталог.

Это теоретически предполагается работать. Если пакет содержит двоичные файлы, которые созданы для 32-разрядных, вам также необходимо установить 32-разрядные зависимости, например libc6:

sudo apt-get install libc6:i386
1
ответ дан 25 May 2018 в 17:50
  • 1
    Я успешно создал amd64 deb с вашей помощью сейчас, когда я пытаюсь установить отчеты терминалов пакета, что у меня есть существующая версия в системе (одна из которых я использовал команду force architecture для установки). Как удалить ранее установленные файлы и установить мой deb? – Mysterio 24 October 2011 в 14:23
  • 2
    Попробуйте sudo apt-get purge crossplatformui:i386. – Lekensteyn 24 October 2011 в 14:39
  • 3
    Я отказался от установки этого пакета, но ваш ответ был действительно полезен – Mysterio 24 October 2011 в 18:19

Похоже, что заголовок не был найден из-за многовариантных изменений. Извлеките deb-файл, примените исправления, перестройте deb и установите его:

  1. Перейдите в каталог, содержащий debfile.
  2. Создайте временный каталог для исправления и перемещения в него (имя каталога было выбрано случайным образом):
    mkdir kasapa-deb && cd kasapa-deb
    
  3. Извлеките файлы управления и установки:
    dpkg --control CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb
    dpkg --extract CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb .
    
  4. Примените исправления, отредактировав DEBIAN/postinst. Если строка с CFLAGS += еще не существует, вставьте (например, после первых прокомментированных строк, строки с ведущими #):
    CFLAGS += -I/usr/include/$(shell dpkg-architecture -qDEB_BUILD_MULTIARCH)
    
    Если она уже существует, просто добавьте часть -I ... к существующему CFLAGS (разделенные пробелом)
  5. Пока вы на нем, вы можете сделать пакет как 64-разрядный, при условии, что файлы в пакете действительно 64-разрядные. Измените DEBIAN/control и измените Architecture: i386 на Architecture: amd64.
  6. Восстановите пакет, создав новый файл в родительском каталоге:
    dpkg-deb -b . ..
    
  7. Установите новый пакет:
    sudo dpkg -i ../[name of the package that was just created].deb
    
  8. Теперь вы можете удалить временный каталог.

Это теоретически предполагается работать. Если пакет содержит двоичные файлы, которые созданы для 32-разрядных, вам также необходимо установить 32-разрядные зависимости, например libc6:

sudo apt-get install libc6:i386
1
ответ дан 6 August 2018 в 02:58

Попробуйте установить его через терминал.

Вы открываете терминал и должны находиться в вашей домашней папке

user@computer:~$

type cd Downloads (или папке, в которой находится ваш пакет (d2)

user@computer:~/Downloads$

Затем введите

sudo dpkg --force-architecture -i CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb

и пакет должен быть установлен без проверки архитектуры.

Вы также можете посмотреть здесь (прокрутите вниз до модема Espresso), возможно, это поможет вам. Но в целом это делается, как я писал.

1
ответ дан 25 May 2018 в 17:50
  • 1
    Я не хотел идти этим методом, как это сделал в 11.04, и это не сработало, поэтому я попробую еще раз и отчитаюсь. Спасибо за быстрый ответ – Mysterio 20 October 2011 в 19:24
  • 2
    проверить выход этой команды в отредактированном вопросе – Mysterio 20 October 2011 в 19:47

Попробуйте установить его через терминал.

Вы открываете терминал и должны находиться в вашей домашней папке

user@computer:~$

типа cd Downloads (или в папке, в которой находится ваш пакет in), и вы должны находиться в папке загрузки

user@computer:~/Downloads$

Затем введите

sudo dpkg --force-architecture -i CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb

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

Вы также можете посмотреть здесь (прокрутите вниз до модема Espresso), возможно, это поможет вам. Но в целом это делается, как я писал.

1
ответ дан 7 August 2018 в 20:38

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

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