Я настроил экземпляр докера кросс-компиляции. Вкратце я запустил установку
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
Нажмите Ctrl+Alt+T.
Выполнитесь:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
Выполнитесь:
sudo gedit /etc/apt/sources.list
Можно использовать других редакторов, если Вы хотите.
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
Сохраните и выйдите.
Выполнитесь:
sudo apt update
libudev-dev
для armhf
архитектура:Выполнитесь:
sudo apt install libudev-dev:armhf
Разъяснение: пакеты мультидуги должны быть установлены с той же версией на всей архитектуре. Так, Вы должны иметь libudev-dev:armhf
с версией 229-4ubuntu21.4
, но Ваша текущая конфигурация репозитория не включает эту версию. Так, необходимо добавить строку с xenial-updates
где эта версия поддерживается.
О другом предложенном для добавления каналов я предложил, чтобы Вы добавили их в случае, если что-то идет не так, как надо.