其實我一路想問 一個program 係Ubuntu run到 理論上係咪應該係其他distro 都用到
我都想知Dynamic library 依樣嘢,linux 係咪做得冇Win咁好定點。感覺windows個library compatibility 係做得好啲。
不過一方面,好多program 自帶local嘅放喺executable 個dir到。
--
Linux 行舊版軟件都常會有library outdated / ELF not match嘅問題。
簡單啲嘅做法例如佢要libxxx.0.1.so,我就裝直symlink個新版libxxx.0.2.so過去libxxx.0.1.so,好多時都work
Arch,好多時arch repo冇library 我都可以喺AUR裝返
係, 簡單講, 如果你有個linux exe, 放去第二部電腦, 的確未必會work
要work既前提, 一係好似rust個類係static link
一係要大家都有一樣version既dynamic library, 用windows講法即係dll
通常windows會將dll送埋比user, 所以windows晒位過linux, 但好處就係方便流通
部部windows機, 唔同版本都會run到個program, 因為所有requirement都運晒比user
但呢樣野係design principle問題, windows主流既app係 proprietary, 佢地唔會比source code user, 所以佢地唔可以假設個user有特定dll, 咁所以windows developer一定會運晒所有dll比用家
但linux多數係open source app, linux好少ship binary (即係exe) 比user
佢地既dll, 都會係open source, 所以用家理論上可以compile晒所有野, 就可以run到program
所以open source developer唔會咁得閑運dll比user
而dll, 呢D通常distro搞掂, 只有好少數app要compile, 所以linux既usability黎講分別不大