Перша відповідь хитра: Це залежить
Якщо ви випускаєте бінарні файли, вважайте, що відповідь є "ні", якщо ви не поширюєте всі зв'язки, які вона коли-небудь пов’язана з цим (з нуля, що дратує, якщо ви не забезпечите справді величезну систему, яка так чи інакше стоїть. ) або статично пов'язують еквівалент.
... але чарівники і гроші, і майстри грошей ...
У IBM є кілька «загальних установців Unixish», які мене шокували, працюючи скрізь, де я їх пробував: кілька лінусів декількох поколінь ядер, OpenSolaris (або як його зараз називають), Solaris та BSD. Але вони величезні. І речі, які вони надають, однаково величезні. Ніяких програм з невеликих гоночних автомобілів не публікується таким чином, лише великі підприємства, які ви очікували від IBM.
Що стосується того, що ви просто користуєтеся Linux, але добре працюєте в більшості Linuxdom, це здається можливим у двійковій формі, про що свідчить різноманітність встановлених бінарних установщиків типу "для Linux (загального)", які ви побачите у деяких постачальників. Кілька чатів, браузерів, ігор, метаінсталяторів тощо публікуються таким чином, але завжди величезними постачальниками, які можуть витратити час, щоб отримати це право. Вони начебто дивовижні, що вони можуть сказати "для Linux" і бути впевненими, що це спрацює, але це, мабуть, так і є.
Але ...
Я поширюю своє програмне забезпечення як джерело з утилітою збирання. Я роблю це в C, Erlang, Python, Guile тощо. Це дає мені набагато більшу гнучкість щодо того, буде вона запускатись чи ні, і набагато простіше написати buildscript, який гарантує, що потрібні речі існують під час збирання, ніж переконайтеся, що все на своєму місці під час виконання. Коли це існує, тривіально написати автоматичне оновлення для вашої програми, якщо ви поширюєте джерело: джерело зазвичай набагато менше, ніж двійкове, що включає всі депси та інші божевілля. Використовуючи цей метод, у мене не було особливих проблем з надійним розгортанням у Unices (а іноді і в Windows, але це трохи більше завдання).
Досить дитячої гри, озбройтеся!
Коли ви ставитесь серйозно, як, наприклад, srsly srs, до того, щоб плавно вписатись у світ Linux, ви поширюєте C-джерела або звертаєтесь до повністю керованого середовища для хакерсько-чудової мови, яка вже створена. Наприклад, якщо ви пишете код Python, ви можете перевірити версії та знати, з якою версією CPython працює ваша версія, і, як правило, очікувати існування сумісної версії на даному Linux (і це набагато простіше перевірити, ніж широкий аналіз C libs / версії, які ви можете використовувати). Erlang, Підступність, Python, Perl, CL і т.д., все дуже прості цілі для такого типу розгортання, і багато з них мають центральне сховище, наприклад CPAN або pip (або будь-яке інше), де користувачі можуть запускати команду, щоб самостійно витягнути підписане джерело, коли вони цього захочуть, і знати, що загалом справи працюватимуть так, як ви задумали .
[Додаток: 1. Навіть Haskell в цілому може витягнути це через Кабал - хоча я би з обережністю ставлюся до цього у виробничих умовах. 2. З Erlang існують абсолютно різні стратегії розгортання, які гарантують, що ваш код має повне оточення. 3. Python йде на крок далі з віртуальними середовищами; не всі умови роботи так само допомагають тобі.]
Цей останній шрифт про керовані середовища в Linux є дивним . І, як бонус, він дозволяє визначити набагато більш загальні залежності, дозволити їх автоматично вирішувати без зайвих зусиль з вашого боку, не вимагає написання пакета на дистрибутив, і ви можете перестати дбати про те, чи система 32 чи 64 біт (взагалі, все одно).