2012-04-23 3 views
8

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

я наткнулся this article и это инфографика - 2011 Linux Distro comparison result

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

+0

Интересно, использовал ли он gimp в духе linux для создания этой графики. –

+1

Голосовать за закрытие: Может ли кто-нибудь с полномочиями переместить это на правильный форум? unix.stackexchange.com? –

ответ

7

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

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

  • Dependency ад

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

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

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

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

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

  • Являются ли версии базовых пакетов такими, как glibc, такими же или очень близкими?

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

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

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

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

  • Компиляция из источника

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

+2

Большое спасибо :-) Это очень хороший ответ. Я хочу, чтобы этот вопрос был перенесен, а не закрыт. –