У меня ассоциация была, типа exe запускается там, где запускается.. и тд. Но это другое совсем. Здесь не скомпилированный файл, а пакет. Логично.
Ну смотри, во-первых, тебя интересует не сам пакет, а его содержимое. Если смотреть по-аналогии с exe, то, например, берем какое-нибудь приложение. Например, rabbitmq-server. Я хз, какая конкретно версия идет под Федору, но пофиг. rabbitmq-server собирается с использованием библиотек erlang. И вот перед тобой поставили задачу запустить rabbitmq-server под сусь (на самом деле он тут есть, но это сейчас не важно). Ты берешь пакет от федоры, пытаешься его поставить и при установке он тебе ругнется на то, что у тебя нет нужно версии erlang. Ты решаешь собрать rabbitmq самостоятельно с теми либами, которые у тебя есть на сусе. Начинаешь собирать ту же саму версию, что и под федорой и получаешь ошибку. Выясняешь, что в версии эрланга под сусе немного другой api. Ты идешь править исходники патчами, чтобы они работали с этим api. И успешно собираешь бинарник. И теперь у тебя есть rabbitmq-server под сусь и под федору. У них одинаковые версии, но версия от федоры не работает на сусе, а версия для суси не работает под федорой, т.к. отличается API из-за того, что отличается эрланг.
Что при этом ты можешь сделать: Ты можешь поставить на сусю такой же эрланг как на федоре. Но надо учитывать то, что у тебя может быть другой софт, который тоже использует эрланг и что эрланг тоже потянет за собой зависимости
В случае с exe на винде это всё прокатывает, т.к. обычно под виндой софтина поставляется со всеми необходимыми зависимостями, которые нужны для запуска. Поэтому у тебя в системе может находится 100500 экземпляров одной и той же библиотеки.
В пакете, чтобы заранее избегать этих проблем, прописывается список зависимостей, т.е. какие библиотеки и каких версий нужны для работы того или иного пакета. Бывает, что софт работает на других версиях библиотек, т.к. у либ стараются сохранять ABI, в отличие от винды (хотя это, вроде, в новых версиях мелкософтского компилятора поправили)