Я считаю, что простой шумовой ответ очень полезен. Поэтому я постараюсь рассказать здесь о другом.
Во-первых, у всех двоичных файлов есть зависимости от библиотек. И если вы посмотрите на имена файлов библиотек и каталоги CentOS / RHEL / Oracle Linux, вы обнаружите, что они сильно отличаются от этого дистрибутива на основе Debian. Т.е. если скопировать бинарники из одного в другой, не получится.
Смотрим на Debian "/ bin / ls":
ldd /bin/ls
linux-vdso.so.1 => (0x00007ffc269b0000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fb8f3fa2000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb8f3bd8000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fb8f3968000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb8f3764000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb8f41c4000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb8f3547000)
И OracleLinux "/ bin / ls":
ldd /bin/ls
linux-vdso.so.1 => (0x00007ffe8999b000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f9831e8e000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f9831c89000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007f9831a80000)
libc.so.6 => /lib64/libc.so.6 (0x00007f98316b3000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f9831451000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f983124d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f98320b5000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007f9831048000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9830e2c000)
Насколько мне известно, существует два больших класса дистрибутивов: на основе Debian и на основе Redhat. (ipkg, opkg, dpkg - все это debian, а yum / rpm - для Redhat)
И менеджер пакетов должен понимать структуру файловой системы и копировать соответствующие файлы в правильные каталоги.
Buildroot можно построить настолько компактно, что вся ваша «ОС» будет состоять из нескольких файлов с минимальным пространством пользователя или без какого-либо запущенного демона. Практически все можно настроить, если вы знаете, как это сделать.
И процитирую: https://buildroot.org/downloads/manual/manual.html#faq-no-binary-packages
вывод состоит в том, что добавление отслеживания установленных файлов для их удаления, когда пакет не выбран, или для создания репозитория бинарных пакетов, - это то, чего очень трудно добиться с надежностью, и это добавит много сложностей.
И еще одно преимущество конструкции buildroot заключается в том, что нет межбинарных библиотек, которые могли бы повредить друг друга, поскольку они всегда перестраиваются с самого начала:
С другой стороны, при выполнении полного обновления системы путем одновременного обновления всего образа корневой файловой системы образ, развернутый во встроенной системе, гарантированно будет действительно тем, который был протестирован и подтвержден. em >
person
Peter Teoh
schedule
08.01.2019