Кросс-скомпилируйте для armhf и установите статическую библиотеку

Я настроил экземпляр докера кросс-компиляции. Вкратце я запустил установку

apt-get update
apt-get install binutils-multiarch

dpkg --add-architecture armhf
# Manually add correct armhf repositories to /etc/apt/sources.list
apt-get update
apt-get install libudev-dev:armhf

Во время этого последнего шага я получаю следующую ошибку:

The following packages have unmet dependencies:
libudev-dev:armhf : Depends: libacl1:armhf (>= 2.2.51-8) but it is not going to be installed
                    Depends: libblkid1:armhf (>= 2.19.1) but it is not going to be installed
                    Depends: libc6:armhf (>= 2.17) but it is not going to be installed
                    Depends: libgcc1:armhf (>= 1:3.5) but it is not going to be installed
                    Depends: libkmod2:armhf (>= 5~) but it is not going to be installed
                    Depends: libselinux1:armhf (>= 2.0.65) but it is not going to be installed
                    Depends: libudev1:armhf (= 229-4ubuntu4) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Установка их вручную не является опцией с тех пор libc6:armhf конфликты с в настоящее время устанавливаемым amd64 libc6 и закончат тем, что перезаписали этот пакет. Я просто хочу установить libudev:armhf упакуйте таким образом, что я могу связаться с ним.

/etc/apt/sources.list:

deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ xenial main restricted
deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted

deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ xenial-updates main restricted

deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ xenial universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ xenial-updates universe

deb [arch=amd64] http://security.ubuntu.com/ubuntu/ xenial-security main restricted
deb [arch=amd64] http://security.ubuntu.com/ubuntu/ xenial-security universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu/ xenial-security multiverse

Выполнение apt-cache policy libudev-dev:{amd64,armhf} производит следующее:

libudev-dev:
  Installed: (none)
  Candidate: 229-4ubuntu21.4
  Version table:
     229-4ubuntu21.4 500
        500 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
     229-4ubuntu21.1 500
        500 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages
     229-4ubuntu4 500
        500 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages
libudev-dev:armhf:
  Installed: (none)
  Candidate: 229-4ubuntu4
  Version table:
     229-4ubuntu4 500
        500 http://ports.ubuntu.com/ubuntu-ports xenial/main armhf Packages
2
задан 8 August 2018 в 03:34

1 ответ

Шаг 1 - Открывает терминал:

Нажмите Ctrl+Alt+T.

Шаг 2 - резервное копирование:

Выполнитесь:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.old

Шаг 3 - Открывает редактора:

Выполнитесь:

sudo gedit /etc/apt/sources.list

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

Шаг 4 - редактирование sources.list:

Удалите все сюда и добавьте их:

deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ xenial main multiverse restricted universe
deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports/ xenial main multiverse restricted universe
deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ xenial-updates main multiverse restricted universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu/ xenial-security main multiverse restricted universe

Сохраните и выйдите.

Шаг 5 - Обновление Ваш индекс репозитория:

Выполнитесь:

sudo apt update

Шаг 6 - установка libudev-dev для armhf архитектура:

Выполнитесь:

sudo apt install libudev-dev:armhf

Разъяснение: пакеты мультидуги должны быть установлены с той же версией на всей архитектуре. Так, Вы должны иметь libudev-dev:armhf с версией 229-4ubuntu21.4, но Ваша текущая конфигурация репозитория не включает эту версию. Так, необходимо добавить строку с xenial-updates где эта версия поддерживается.

О другом предложенном для добавления каналов я предложил, чтобы Вы добавили их в случае, если что-то идет не так, как надо.

2
ответ дан 2 December 2019 в 03:31

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

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