Система busybox поставляется с командой rpm в glibc-2.24. Как можно запустить программы из Fedora Core (FC) и/или более поздних версий в этой системе?
Я понял, что FC25 поставляется с той же версией glibc. Если я загружаю rpm-пакеты FC25 и устанавливаю их, иногда они просто запускаются. Некоторые другие потерпят неудачу. Я бы тоже хотел запустить FC30 или другие версии.
Проблема возникает из-за того, что пакеты FC перезаписывают существующие библиотеки в том же каталоге. Я придумал запустить bash, нужно только установить bash, glibc, glibc-common, ncurses-base, ncurses-libs, libgcc. Bash будет запускаться после установки этих пакетов. Поскольку это небольшое количество библиотек, их установка с версиями FC должна привести к незначительным различиям, которые не влияют на bash. Но незначительная разница может повлиять на другие программы, или установка большего количества пакетов может привести к большим различиям, что повлияет на большее количество программ.
Как это можно решить?
Я читал о пространствах имен Linux. Таким образом, один путь для начала — создать пространство имен, чтобы изолировать файловые системы хоста. Я попробовал это, чтобы создать файловую систему пространства имен:
cd /root
mkdir root-fc30
cd root-fc30
mkdir dev proc tmp var
cp -a /bin /sbin /lib /usr ./
mount -o bind /proc proc
mount -o bind /dev dev
mkdir root-old
Затем войдите в пространство имен:
unshare -m --propagation slave
pivot_root . root-old
После этого можно устанавливать новые пакеты. Но все же он перезапишет существующие библиотеки. Какие дальнейшие шаги можно предпринять для решения этой проблемы в изолированном пространстве имен?
Какие другие более чистые решения существуют?
docker. Или другая контейнерная техника. Они существуют только для того, чтобы решить эту проблему. - person KamilCuk   schedule 27.01.2020dockerдней люди использовалиchroot- весь дистрибутив был установлен/скопирован в каталог. Затем выfor i in sys proc dev; do mount -o bind /$i /dir_with_fedora/$i; doneмонтируете необходимые файловые системы и простоchroot /dir_with_fedoraзапускаете оболочку. Docker просто автоматизирует это (и многое другое). Я думаю, вы можете просто прочитать оchrootтогда. - person KamilCuk   schedule 28.01.2020fedora chroot downloadи находите; ) Или ищите что-то вродеfedora chroot installation. Похоже вы можете загружать и распаковывать образы докеров даже - person KamilCuk   schedule 28.01.2020