Re: Shareware for linux: технические моменты
От: /aka/ СССР  
Дата: 20.11.19 23:14
Оценка: 2 (1)
Здравствуйте, Unhandled_Exception, Вы писали:

U_E>Смущает только один момент. Как я понимаю, нельзя просто так собрать бинарники, чтобы они везде работали. Как же быть?


Вот здесь шароварщики просто так собирают бинарники: https://www.virtualhere.com/usb_server_software

Серверная часть, демон без интерфейса, у них работает действительно везде. На нашем микродистрибутиве, в котором от линукса одно ядро и кусочек libc, серверная часть запустилась сразу безо всяких костылей. Зависимости (после распаковки из upx):

$ldd vhusbdi386
        not a dynamic executable


Статически линковано со всем. Привет тем, у кого "libc нельзя линковать статически".

С интерфейсной частью всё намного сложнее.
  Две страницы зависимостей
$ ldd vhuit32
        linux-gate.so.1 (0xb7f77000)
        libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb7e04000)
        libSM.so.6 => /usr/lib/i386-linux-gnu/libSM.so.6 (0xb7df9000)
        libgtk-x11-2.0.so.0 => /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 (0xb78fe000)
        libgdk-x11-2.0.so.0 => /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0 (0xb783b000)
        libgio-2.0.so.0 => /usr/lib/i386-linux-gnu/libgio-2.0.so.0 (0xb7633000)
        libpangocairo-1.0.so.0 => /usr/lib/i386-linux-gnu/libpangocairo-1.0.so.0 (0xb7623000)
        libgdk_pixbuf-2.0.so.0 => /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0 (0xb75f6000)
        libcairo.so.2 => /usr/lib/i386-linux-gnu/libcairo.so.2 (0xb74a6000)
        libpango-1.0.so.0 => /usr/lib/i386-linux-gnu/libpango-1.0.so.0 (0xb7457000)
        libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xb73f2000)
        libglib-2.0.so.0 => /usr/lib/i386-linux-gnu/libglib-2.0.so.0 (0xb72b7000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb72b1000)
        libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb7132000)
        libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb702c000)
        libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb700e000)
        libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb6fed000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6e0f000)
        libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb6de1000)
        libICE.so.6 => /usr/lib/i386-linux-gnu/libICE.so.6 (0xb6dc4000)
        libuuid.so.1 => /lib/i386-linux-gnu/libuuid.so.1 (0xb6dba000)
        libgmodule-2.0.so.0 => /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0 (0xb6db4000)
        libXcomposite.so.1 => /usr/lib/i386-linux-gnu/libXcomposite.so.1 (0xb6dae000)
        libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xb6da9000)
        libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xb6da2000)
        libatk-1.0.so.0 => /usr/lib/i386-linux-gnu/libatk-1.0.so.0 (0xb6d79000)
        libpangoft2-1.0.so.0 => /usr/lib/i386-linux-gnu/libpangoft2-1.0.so.0 (0xb6d60000)
        libfontconfig.so.1 => /usr/lib/i386-linux-gnu/libfontconfig.so.1 (0xb6d13000)
        libfreetype.so.6 => /usr/lib/i386-linux-gnu/libfreetype.so.6 (0xb6c50000)
        libXrender.so.1 => /usr/lib/i386-linux-gnu/libXrender.so.1 (0xb6c44000)
        libXinerama.so.1 => /usr/lib/i386-linux-gnu/libXinerama.so.1 (0xb6c3f000)
        libXi.so.6 => /usr/lib/i386-linux-gnu/libXi.so.6 (0xb6c2c000)
        libXrandr.so.2 => /usr/lib/i386-linux-gnu/libXrandr.so.2 (0xb6c1d000)
        libXcursor.so.1 => /usr/lib/i386-linux-gnu/libXcursor.so.1 (0xb6c10000)
        libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xb6bfb000)
        libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb6bdc000)
        libmount.so.1 => /lib/i386-linux-gnu/libmount.so.1 (0xb6b70000)
        libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xb6b43000)
        libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xb6b29000)
        libpixman-1.so.0 => /usr/lib/i386-linux-gnu/libpixman-1.so.0 (0xb6a79000)
        libpng16.so.16 => /usr/lib/i386-linux-gnu/libpng16.so.16 (0xb6a3a000)
        libxcb-shm.so.0 => /usr/lib/i386-linux-gnu/libxcb-shm.so.0 (0xb6a35000)
        libxcb-render.so.0 => /usr/lib/i386-linux-gnu/libxcb-render.so.0 (0xb6a24000)
        librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb6a19000)
        libthai.so.0 => /usr/lib/i386-linux-gnu/libthai.so.0 (0xb6a0d000)
        libfribidi.so.0 => /usr/lib/i386-linux-gnu/libfribidi.so.0 (0xb69f1000)
        libffi.so.6 => /usr/lib/i386-linux-gnu/libffi.so.6 (0xb69e7000)
        libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb696e000)
        /lib/ld-linux.so.2 (0xb7f79000)
        libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb6969000)
        libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb6962000)
        libbsd.so.0 => /usr/lib/i386-linux-gnu/libbsd.so.0 (0xb6943000)
        libharfbuzz.so.0 => /usr/lib/i386-linux-gnu/libharfbuzz.so.0 (0xb682c000)
        libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xb67ef000)
        libblkid.so.1 => /lib/i386-linux-gnu/libblkid.so.1 (0xb6791000)
        libdatrie.so.1 => /usr/lib/i386-linux-gnu/libdatrie.so.1 (0xb6787000)
        libgraphite2.so.3 => /usr/lib/i386-linux-gnu/libgraphite2.so.3 (0xb6759000)


Выходит, опытные коллеги под linux используют GTK+ и ожидают, что у потенциальной аудитории это поедет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.