Jawaban jelek lebih dulu: Tergantung
Jika Anda melepaskan binari, menganggap jawaban "tidak" kecuali Anda mendistribusikan semua libs yang pernah melibatkan dengan itu (dari bawah ke atas, yang menjengkelkan kecuali jika Anda menyediakan sistem yang benar-benar besar yang berdiri di atas pula sendiri ) atau secara statis menghubungkan yang setara.
... tapi penyihir dan uang, dan penyihir uang ...
IBM memiliki beberapa installer "Unixish umum" yang telah mengejutkan saya dengan bekerja di mana-mana saya telah mencobanya: beberapa Linuces dari beberapa generasi kernel, OpenSolaris (atau apa pun namanya sekarang), Solaris, dan BSD. Tapi mereka sangat besar. Dan hal-hal yang mereka sediakan sama besarnya. Tidak ada program mobil balap kecil yang dipublikasikan dengan cara ini, hanya hal-hal jenis perusahaan yang besar yang Anda harapkan dari IBM.
Sejauh hanya tinggal di Linux, tetapi bekerja dengan baik di sebagian besar Linuxdom, ini tampaknya mungkin dalam bentuk biner, sebagaimana dibuktikan oleh beragam jenis "untuk Linux (umum)" installer biner yang akan Anda lihat dari beberapa vendor. Beberapa obrolan, peramban, permainan, penginstal-meta, dll. Diterbitkan dengan cara ini, tetapi selalu oleh vendor besar yang dapat menghabiskan waktu untuk melakukan hal ini dengan benar. Sungguh menakjubkan mereka dapat mengatakan "untuk Linux" dan secara umum yakin bahwa itu akan berhasil, tetapi ini tampaknya menjadi masalahnya.
Tapi...
Saya mendistribusikan perangkat lunak saya sebagai sumber dengan utilitas bangun. Saya melakukan ini dalam C, Erlang, Python, Tipu muslihat , dll. Ini memberi saya lebih banyak fleksibilitas tentang apakah itu akan berjalan atau tidak, dan jauh lebih mudah untuk menulis buildscript yang memastikan hal-hal yang benar ada pada waktu membangun daripada untuk pastikan semuanya ada pada saat runtime. Setelah itu ada, sepele untuk menulis pembaruan otomatis untuk program Anda jika Anda mendistribusikan sumber: sumber biasanya jauh lebih kecil daripada biner yang mencakup semua deps dan kegilaan lainnya. Dengan menggunakan metode ini, saya tidak memiliki banyak masalah yang dapat diandalkan untuk digunakan di seluruh Unices (dan kadang-kadang Windows, tapi itu lebih merupakan tugas).
Permainan anak cukup, bekali dirimu sendiri!
Ketika Anda mulai serius, seperti srsly srs, tentang menyesuaikan dengan lancar di dunia Linux, Anda mendistribusikan sumber C atau beralih ke lingkungan yang dikelola sepenuhnya untuk bahasa yang sangat menyenangkan yang telah dibangun sebelumnya. Jika Anda menulis kode Python, misalnya, Anda dapat memeriksa versi dan mengetahui versi CPython mana yang bekerja dengan Anda, dan umumnya mengharapkan beberapa versi yang kompatibel ada di Linux yang diberikan (dan ini jauh lebih mudah untuk diperiksa daripada sapuan luas C libs / versi yang mungkin Anda gunakan). Erlang, Guile, Python, Perl, CL, dll semuanya sangat target mudah untuk penyebaran semacam ini, dan banyak dari mereka memiliki repositori pusat seperti CPAN atau pip (atau apa pun) di mana pengguna dapat menjalankan perintah untuk menarik sendiri sumber yang ditandatangani ketika mereka menginginkannya, dan tahu bahwa segala sesuatu pada umumnya akan berfungsi seperti yang Anda inginkan .
[Tambahan: 1. Bahkan Haskell umumnya dapat melakukan ini melalui Cabal - meskipun saya akan berhati-hati dalam melakukan itu di lingkungan produksi. 2. Ada strategi penyebaran "rilis" yang sama sekali berbeda dengan Erlang yang menjamin kode Anda membawa lingkungan yang lengkap dengannya. 3. Python melangkah lebih jauh dengan lingkungan virtual; tidak semua runtime banyak membantu Anda.]
Bagian terakhir tentang lingkungan terkelola di Linux ini sangat luar biasa . Dan, sebagai bonus, ini memungkinkan Anda untuk menentukan dependensi yang jauh lebih umum, membuatnya diselesaikan secara otomatis tanpa usaha ekstra dari Anda, tidak perlu menulis paket per distro, dan Anda dapat berhenti peduli apakah suatu sistem adalah 32 atau 64 bit (umumnya, bagaimanapun).