Как установить пакеты с несколькими архитектурами -на RHEL 8

Символические ссылки могут быть чем угодно, потому что символ может представлять любое количество вещей для любого количества программ/ОС/людей. Подобно символам в физическом мире, символ можно сделать из чего угодно и для чего угодно. Нет необходимости в проверке, так как цель уже существует в системе, и пользователь в любом случае будет иметь к ней доступ через свои привилегии.

Если вы действительно хотите, чтобы это поведение прекратилось. Вы можете создать сценарий, чтобы проверить, будет ли он указывать на себя, и вернуть ошибку, если это так, и создать ссылку, если это не так. После создания скрипта вы можете создать псевдоним для ln, указывающий на ваш скрипт.

Может выглядеть примерно так:

#!/bin/bash
if [ "$1" == "$2" ]
then 
echo "ERROR pointing to self!"
else
ln "$1" "$2"
fi
1
19.11.2021, 20:10
1 ответ

В RPM есть концепция «совместимых» архитектур, которая позволяет вам устанавливать i686пакеты в x86_64системе. Но он не распространяется на иностранные архитектуры и не позволяет вам -компилировать за пределы того, что поддерживается gcc -m.

Однако можно собрать пакеты для других архитектур, используя qemu-user-staticи mock:, подготовить исходный RPM, затем собрать его , используя mock, указав архитектуру:

mock -r fedora-35-aarch64 package.src.rpm

mockобнаружит, что ему нужно использовать эмуляцию, и будет использовать QEMU для обработки chroot. Как правило, это будет медленнее, чем кросс-компиляция -, но вы не столкнетесь с проблемами с host v.целевые двоичные файлы.

1
19.11.2021, 21:39

Теги

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