Да бинарники и не привязываются к дистрибутивам вообще... Главное - платформа, а вторичное - предустановленные в систему библиотеки, которые использует программа. Бывает так, что они новее, чем есть в системе, и тогда программа не запускается. Решается проблема обновлением библиотеки. Чаще всего это glibc, которую надо именно обновить, а не просто найти и положить в каталог с программой или в /usr/lib, как с любой другой. Когда программа ругается на glibc, её надо скомпилировать из исходного кода, и она заработает - это же касается и любой другой, если возиться не хочется! Если она не закрытая. Можно ещё дистрибутив обновить, чтобы появился целый ряд почти всех обновлённых библиотек. Это мы касаемся только если нужна новая библиотека. Бывают ситуации, когда нужна старая. Почему её нет в дистрибутиве? Возможно, не была выбрана максимальная установка, или сняты пакеты, устанавливающие старые библиотеки и позволяющие запустить вобще любой бинарник. Ubuntu не предлагает вариантов установки вовсе, устанавливая фиксированный минимальный набор программ. У меня в openSuSE есть много старых библиотек, поэтому бинарники запускаются все. И это удобно: есть, например, libopenal.so.0 и libopenal.so.1. Две версии библиотеки. Есть символическая ссылка libopenal.so, ссылающаяся на 1 версию, чтобы все новые программы собирались именно с новой. Обновляю дистрибутив - мой ioquake3 работает по-прежнему, не требуя libopenal.so.0. И не надо загружать с сайта новый. Или какой-нибудь filezilla не попросит libgnutls.so.26 потому, что в системе есть только libgnutls.so.31. wine использует сотню библиотек системы для того, чтобы при эмуляции функций Windows не изобретать велосипед, а только сделать прослойку над уже хорошо работающими аналогами функций Linux. Конечно, при компиляции можно самому выбрать, что надо, а что нет, но речь не об этом. Пакет от Fedora 12 вряд ли запустится в Mandriva 2009.1, потребовав библиотек 20. Но это скорее исключение, чем правило. Обычно любой бинарник запускается в любом дистрибутиве Linux, пакеты легко конвертируются из RPM в DEB и работают, и никакой привязки к дистрибутивам нет, потому что библиотеки везде одни и те же - различаются лишь версии.
|