Менеджер нескольких пакетов [закрыт]

Есть ли ловушка при использовании нескольких менеджеров пакетов? Могу ли я одновременно использовать yum от Redhat и aptitude от Debian?

Я наткнулся на эту статью и эту инфографику - Результаты сравнения дистрибутивов Linux 2011

Я был склонен выбрать Debian, но быстрая установка виртуальной машины показала, что ядро ​​еще не обновлено до версии 3.2 в стабильном репозитории. Поэтому я планирую перейти на Archlinux, но инфографика оценивает его как низкую доступность пакетов, и мне было интересно, смогу ли я установить файлы .deb или .rpm из репозиториев Fedora или Ubuntu.


person Lord Loh.    schedule 23.04.2012    source источник
comment
Интересно, использовал ли он гимп в духе линукса для создания этой графики.   -  person John Riselvato    schedule 23.04.2012
comment
Проголосуйте, чтобы закрыть: Может ли кто-нибудь с полномочиями переместить это в нужный форум? unix.stackexchange.com ?   -  person Lord Loh.    schedule 24.04.2012
comment
Я бы посоветовал вам взглянуть на Bedrock Linux.   -  person Amint    schedule 01.03.2021


Ответы (1)


Короткий ответ: да, вы можете, но на самом деле вы не должны.

Ниже приведен список вещей (в произвольном порядке), которые следует учитывать при установке кросс-дистрибутива:

  • Ад зависимостей

Основная причина существования таких вещей, как yum/apt/yast, заключается в том, чтобы избежать того, что известно как ад зависимостей< /а>. Используя пакеты из других систем, вы теряете работу, вложенную в пакеты, из-за чистой установки.

Вторичный менеджер пакетов захочет удовлетворить свои собственные зависимости и установить кучу вещей, которые уже установлены. Это означает, что вы должны устанавливать пакеты по частям, чтобы не перезаписать уже установленные пакеты из основного менеджера пакетов и не столкнуться со всевозможными проблемами.

  • Используют ли они один и тот же менеджер пакетов?

Если они это сделают, вы даже сможете просто установить его напрямую, но у вас, вероятно, будут проблемы с зависимостями или конфликты пакетов. Если это не так, вы можете извлечь пакет с помощью различных инструментов и просто поместить бинарные файлы в файловую систему (посмотрите на Alien или это сообщение об извлечении файлов .rpm и .deb).

Это даст вам файлы в системе, но нет гарантии, что это будет работать сразу после установки. Может потребоваться (и обычно требуется) дополнительная ручная охота.

  • Версии базовых пакетов, таких как glibc, одинаковы или очень близки?

Если да, то вероятность проблемы меньше. Чем больше разница между базовыми пакетами двух дистрибутивов, тем больше вероятность того, что у вас будут отсутствовать общие библиотеки, которые недоступны в дистрибутиве, на котором вы работаете, потому что версия отличается, а имя файла не соответствует двоичному файлу. находясь в поиске.

Технически вы также можете извлечь базовые зависимости из другого дистрибутива и поместить их в файловую систему, но это, безусловно, вызовет у вас проблемы, если вам когда-нибудь понадобится скомпилировать что-то из исходного кода. Представьте, как запутается gcc.

  • Пакет, который вы устанавливаете, требует определенного модуля ядра?

Лучший способ, которым я могу сформулировать это, — это распространенная проблема, с которой я сталкиваюсь в эти дни при покупке виртуальных машин у веб-хостинга; вы получаете собственное ядро ​​xen или virtuozzo, а iptables не работает напрямую, потому что сетевой фильтр находится в ядре, а ABI изменился. Это может быть довольно головной болью, чтобы заставить его снова работать, и эта проблема не ограничивается iptables. Мой лучший совет здесь — выбрать дистрибутив, ядро ​​которого находится в собственном базовом репозитории.

  • Компиляция из исходников

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

person Corey Henderson    schedule 23.04.2012
comment
Большое спасибо :-) Это очень хороший ответ. Я бы хотел, чтобы этот вопрос был перемещен, а не закрыт. - person Lord Loh.; 30.04.2012