LINUX.ORG.RU

Netscape Navigator 9 в Debian 11

 , ,


2

3

Качаем бинарную версию Netscape Navigator 9 for Linux, ставим пакеты `libgtk2.0:i386`, `libpangox-1.0-0:i386`, `libxt6:i386`, `libstdc++5:i386` в Debian 11 Bullseye и все работает!

Забавно, что если перетащить вкладку из нетшкафа в современный firefox она в нем откроется, а наоборот, увы, не работает.

>>> Просмотр (1920x1032, 328 Kb)

★★★

Проверено: hobbit ()
Последнее исправление: zx_gamer (всего исправлений: 2)
Ответ на: комментарий от Werenter

А на это есть пруфы? Я не знал, что они часто ломают обратную совместимость. У меня есть Java 8 и 11, и все приложения работают в хотя бы одной из них. Но даже если и так, в Питоне ведь то же самое.

damix9 ★★★
()
Ответ на: комментарий от alex1101

Ага, конечно. Бинарники от XP далеко не всегда совместимы с более новыми версиями Windows. Плюс почти каждая программа тащит с собой MSVCR. Если в GNU/Linux всё линковать статически, проблем тоже не будет. Только так никто не делает, ибо незачем, только место засирать. Разработчики предоставляют исходники, из которых можно получить рабочий бинарник на любой системе, где есть нужные библиотеки. А проприетарщики пусть линкуют статически, впрочем, они так и делают.

Werenter ★★☆
()
Ответ на: комментарий от Werenter

Только так никто не делает

потому что не работает

Бинарники от XP далеко не всегда совместимы с более новыми версиями Windows

Линуксу до такой совместимости всё равно расти и расти

alex1101
()
Ответ на: комментарий от damix9

Ну например то, что PyCharm тащит в арче с собой в зависимостях свою версию jre, не системную. А питон не лучше, в версии 3.11 всё сломали(Arch хоть и роллинг, а питон всё ещё 3.10, ибо на 3.11 некоторые программы перестанут работать).

Werenter ★★☆
()

Это же подделка, покажите хотя бы 6-й нетшкаф.

bread
()
Ответ на: комментарий от Exmor_RS

Это ты каждый раз начинаешь писать, что под Linux якобы нельзя собирать бинарники так, чтобы они работали под разными дистрибутивами много лет спустя.

Тут очередной пример того, что ты пишешь ложь. Да, это сложнее, чем под один дистрибутив собрать, но вполне реально.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от alex1101

потому что не работает

А можно для новичков в программировании объяснить на пальцах что именно не работает и как оно может не работать? Мне интересно понять на чем основано твое утверждение, если оно вообще на чем-то основано. Если приложение скомпоновано статически и не использует разделяемые библиотеки то как оно может не заработать? Магия? Или я чего-то не понимаю?

mbivanyuk ★★★★★
()
Ответ на: комментарий от Werenter

Нет, смотри мой пост выше. в windows libc не занимается базовыми вещами вррде сисколов и загрузки библиотек. Из-за этого ты там можешь прилинковать libc и не окажешься в полной изоляции от системы. В linux прилинковав libc статически ты фактически лишаешься возможности использования хостовых библиотек (например, libGL.so.1 и всяких там LLVM от которых он зависит, на деле не полностью, но оно работает совсем не так, как ожидается)
Притащив же свой libc даже с динамической линковкой ты так же не сможешь без проблем использовать библиотеки с хоста. Простой пример - я собирал статический бинарь который линковал libX11 статически. В итоге иксовые в каком-то месте неявно грузили динамически libXcursor, он грузил libX11 уже динамический, тот у себя не находил подключения к иксам в глобальных структурах и падал. Мало того, этого не происходило на системе с gentoo на которой я это собирал. В ней просто динамическая загрузка из статического libc не работала. Но почему-то стоило мне перетащить бинарник в дебиан - так она ВНЕЗАПНО начинала работать и всё сыпалось.
ещё в статических бинарях сломан ресрлвинг dns. Просто потому что его решили сделать модульным и он пытается его загрузить с хоста. У меня даже где-то заглушка была с реализацией ресолвера чтобы это всё исправить.
Ещё glibc пытается грузить модули на функциях связанных с авторизацией и получением текущего пользователя. И так же - на каких-то системах это просто ломается, на каких-то модули грузятся, но оно может или работать криво или сыпаться

mittorn ★★★★★
()
Ответ на: комментарий от mbivanyuk

В линуксе нельзя статически прилинковать libc не сломав при этом всё. Вот оно и не работает. В винде не важно - линкуется ли libc статически илитдинамически - ты можешь загрузить все нужные тебе версии в процесс и они не ломают друг друга и не ломают софт на этом завязанный. Чтобы в линуксе было так же - надо вытащить системно-критические фичи вроде аллокатора и динамического загрузчика, а libc релаизовывать поверх. Тогда можно будет без проблем эти libc тащить с собой, не важно статически или в виде пакетов (аналога vcredist)
А сейчас даже если это работает - приводит к куче проблем и получаются штуки типа flatpak которые вынуждены пакетировать себе все возможные реализации opengl. Это и есть аналог этой «статической» линковки когда ты libc тащишь с собой

mittorn ★★★★★
()
Последнее исправление: mittorn (всего исправлений: 1)
Ответ на: комментарий от damix9

Такого нет. (Если не брать в расчёт вердроид)

zx_gamer ★★★
() автор топика
Ответ на: комментарий от mittorn

В линуксе нельзя статически прилинковать libc не сломав при этом всё.

musl. Но вообще да, проблема существует.

В винде не важно - линкуется ли libc статически илитдинамически - ты можешь загрузить все нужные тебе версии в процесс и они не ломают друг друга и не ломают софт на этом завязанный.

В винде еще и резолвинг имён при линковке иначе осуществляется.

Чтобы в линуксе было так же - надо вытащить системно-критические фичи вроде аллокатора и динамического загрузчика, а libc релаизовывать поверх. Тогда можно будет без проблем эти libc тащить с собой, не важно статически или в виде пакетов (аналога vcredist)

Я не вижу, как вытаскивание аллокатора и динамического загрузчика поможет решить проблему. Можешь привести кейсы, когда это актуально?

У glibc другая проблема со статической линковой - nss. Вся nss-машинерия, по хорошему, должна быть вынесена в отдельный процесс и запускаться как системный сервис. А программы бы просто подключались к нему по RPC. В libc остался бы простой переходник, в котором нечему ломаться по ABI.

Вообще качество архитектуры у GNU очень удручает. И архитектурные/инфраструктурные просчёты не чинятся десятилетиями, никто даже не пытается.

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от mittorn

в windows libc не занимается базовыми вещами вррде сисколов и загрузки библиотек

Так в линуксе основной смысл libc именно в дергании сисколов. Она за этим и нужна.

А так вообще у меня лежат наброски по архитектурному перепиливанию libc, где она делится на 3 внятные части:

  • Алгоритмическую. Реализация алгоритмов, не привязанных к конкретной ОС и не требующую вызова сисколов. (И соответственно, эту часть libc можно использовать хоть вообще без ОС, например линковать в код загрузчика ядра.)
  • Системную. С реализацией unix-like API поверх сисколов ядра.
  • Платформенную. С реализацией всей высокоуровневой машинерии такой как динамический загрузчик и nss.
wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от wandrien

Переносимость всегда имеет разумные пределы, список поддерживаемых ОС или дистрибутивов принято указывать в описании приложения. Хотя я думаю что проблема сильно преувеличена.

mbivanyuk ★★★★★
()
Ответ на: комментарий от damix9

В Linux, который без GNU.

Ой да ладно! Там тоже куча проблем со старым софтом вплоть до неработоспособности. Если ты, конечно, об Android/Linux.

skiminok1986 ★★★★★
()
Ответ на: комментарий от alex1101

а для начала разберёмся где их нет

В Windows

Ага. То то там старый софт просто не работает в принципе. Хотя, можно поставить старую винду и на ней запустить, конечно, но тут нет отличия от GNU/Linux.

skiminok1986 ★★★★★
()
Ответ на: комментарий от alex1101

Только так никто не делает

потому что не работает

Проприетарщики делают и оно работает. Так что опять 4.2. Ты бы сперва попробовал разобраться в теме, а потом уже кидаться обвинениями. А то все, кто хоть что-то понимает в никсах, уже даже не хихикают, а кто не понимает, те могут быть введены в заблуждение. А потом поставят Windows и будут сильно удивлены, что там далеко всё не так радужно, как ты живописуешь.

skiminok1986 ★★★★★
()
Ответ на: комментарий от alex1101

Попробуй, заодно и нам потом расскажешь. Ты же утверждал что это не делается потому что невозможно и просил пакет - вот тебе пакет. Если мало могу еще накидать.

mbivanyuk ★★★★★
()
Ответ на: комментарий от zx_gamer

glibc статически не линкуется. Qt тоже. Статическая линковка в линуксе вообще сломана напрочь.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от mbivanyuk

Попробовал. Загрузил вот этот драйвер, вышел из KDE в tty, выгрузил драйвер nvidia, запустил run.

Первым делом пакет потребовал установить make и сорцы ядра (самодостаточность уже пошла по звезде), установил.

Пошла сборка драйвера и вылетела с километром ошибок, последние строчки лога:

make[2]: *** [scripts/Makefile.build:252: /tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-uvm/uvm_common_test.o] Ошибка 1
In file included from /tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-uvm/uvm_channel_mgmt.h:26,
                 from /tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-uvm/uvm_gpu_ops_tests.h:32,
                 from /tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-uvm/uvm_channel_basic_sanity_tests.c:23:
/tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-uvm/uvm_linux.h:136:10: фатальная ошибка: asm/kmap_types.h: Нет такого файла или каталога
  136 | #include <asm/kmap_types.h>         /* page table entry lookup          */
      |          ^~~~~~~~~~~~~~~~~~
In file included from /tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-uvm/uvm_channel_mgmt.h:26,
                 from /tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-uvm/uvm_gpu_ops_tests.h:32,
                 from /tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-uvm/uvm_channel_directed_tests.c:24:
/tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-uvm/uvm_linux.h:136:10: фатальная ошибка: asm/kmap_types.h: Нет такого файла или каталога
  136 | #include <asm/kmap_types.h>         /* page table entry lookup          */
      |          ^~~~~~~~~~~~~~~~~~
компиляция прервана.
компиляция прервана.
make[2]: *** [scripts/Makefile.build:252: /tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-uvm/uvm_channel_directed_tests.o] Ошибка 1
make[2]: *** [scripts/Makefile.build:252: /tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-uvm/uvm_channel_basic_sanity_tests.o] Ошибка 1
In file included from /tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-uvm/uvm_common.h:49,
                 from /tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-uvm/uvm_channel_mgmt.c:23:
/tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-uvm/uvm_linux.h:136:10: фатальная ошибка: asm/kmap_types.h: Нет такого файла или каталога
  136 | #include <asm/kmap_types.h>         /* page table entry lookup          */
      |          ^~~~~~~~~~~~~~~~~~
компиляция прервана.
make[2]: *** [scripts/Makefile.build:252: /tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-uvm/uvm_channel_mgmt.o] Ошибка 1
In file included from /tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-modeset/nvidia-modeset-linux.c:31:
/tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-modeset/nvidia-modeset-os-interface.h:19:10: фатальная ошибка: stddef.h: Нет такого файла или каталога
   19 | #include <stddef.h>  /* size_t */
      |          ^~~~~~~~~~
компиляция прервана.
make[2]: *** [scripts/Makefile.build:252: /tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/nvidia-modeset/nvidia-modeset-linux.o] Ошибка 1
make[2]: Цель «/tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel/» не была пересобрана из-за ошибок.
make[1]: *** [Makefile:2021: /tmp/selfgz770725/NVIDIA-Linux-x86_64-358.16/kernel] Ошибка 2
make[1]: Цель «modules» не была пересобрана из-за ошибок.
make: *** [Makefile:81: modules] Ошибка 2
ERROR: The nvidia kernel module was not created.
ERROR: Installation has failed.  Please see the file '/var/log/nvidia-installer.log' for details.  You may find suggestions on fixing installation problems in the README available on the Linux driver download page at www.nvidia.com.

Итог: проприетарный драйвер nvidia это никакой не самодостаточный пакет, он не работает спустя смешные 7 лет после выпуска.

Если мало могу еще накидать.

Да не стоит, я уже понял, что ты балабол и ламобот.

alex1101
()
Последнее исправление: alex1101 (всего исправлений: 1)
Ответ на: комментарий от wandrien

Так это ж не я предложил такой дебильный пример.

Мне сразу было понятно, что пример дебильный и предложить его мог только ламер, но ради чистоты опыта всё же попробовал.

Может, ты покажешь пример самодостаточного бинаря, который работает в Линуксах спустя 10 лет после выпуска?

alex1101
()
Ответ на: комментарий от alex1101

я уже понял, что ты балабол и ламобот

Петушара ты дырявый, я то тут вообще при чем? Ты пытаешься ставить драйвер 2015 года, там все что угодно может быть начиная с отсутствия поддержки современных карт nvidia до ошибок в твоей тупой манджаре, а я то каким образом в этом виноват? Ты манька тупая доказывала что так не делается, я тебя ткнул твоим ебалом что делается. Сучка, еще и грубит.

mbivanyuk ★★★★★
()
Ответ на: комментарий от alex1101

Может, ты покажешь пример самодостаточного бинаря, который работает в Линуксах спустя 10 лет после выпуска?

Название             : dmenu-xft
Версия               : 4.5-1
Описание             : Dynamic X menu - with xft support
Архитектура          : i686
URL                  : http://tools.suckless.org/dmenu/
Лицензии             : MIT
Группы               : Нет
Предоставляет        : dmenu
Зависит от           : sh  libxinerama  libxft
Доп. зависимости     : Нет
Требуется            : Нет
Опционально для      : Нет
Конфликтует с        : dmenu
Заменяет             : Нет
Установленный размер : 44,00 KiB
Сборщик              : Unknown Packager
Дата сборки          : Пт 13 июл 2012 12:45:28
Дата установки       : Пт 13 июл 2012 12:45:32
Причина установки    : Явно установлен
Установочный скрипт  : No
Проверен             : Неизвестно

Название             : gentoo
Версия               : 0.19.13-1
Описание             : A lightweight file manager for GTK
Архитектура          : i686
URL                  : http://www.obsession.se/gentoo/
Лицензии             : GPL2
Группы               : Нет
Предоставляет        : Нет
Зависит от           : gtk2  gamin
Доп. зависимости     : Нет
Требуется            : Нет
Опционально для      : Нет
Конфликтует с        : Нет
Заменяет             : Нет
Установленный размер : 1632,00 KiB
Сборщик              : Unknown Packager
Дата сборки          : Чт 13 сен 2012 11:21:11
Дата установки       : Чт 13 сен 2012 11:21:19
Причина установки    : Явно установлен
Установочный скрипт  : No
Проверен             : Неизвестно

Название             : lxadmin-git
Версия               : 20120807-1
Описание             : A collection of tools to configure your desktop under LXDE
Архитектура          : i686
URL                  : http://lxde.org
Лицензии             : GPL
Группы               : lxde-git
Предоставляет        : Нет
Зависит от           : python
Доп. зависимости     : Нет
Требуется            : Нет
Опционально для      : Нет
Конфликтует с        : Нет
Заменяет             : Нет
Установленный размер : 400,00 KiB
Сборщик              : Unknown Packager
Дата сборки          : Вт 07 авг 2012 21:05:01
Дата установки       : Вт 07 авг 2012 21:11:03
Причина установки    : Явно установлен
Установочный скрипт  : No
Проверен             : Неизвестно

Название             : mmv
Версия               : 1.01b.orig-3
Описание             : multiple move files
Архитектура          : i686
URL                  : http://linux.maruhn.com/sec/mmv.html
Лицензии             : GPL
Группы               : Нет
Предоставляет        : Нет
Зависит от           : Нет
Доп. зависимости     : Нет
Требуется            : Нет
Опционально для      : Нет
Конфликтует с        : Нет
Заменяет             : Нет
Установленный размер : 36,00 KiB
Сборщик              : Unknown Packager
Дата сборки          : Вт 07 фев 2012 14:49:42
Дата установки       : Вт 07 фев 2012 14:49:53
Причина установки    : Явно установлен
Установочный скрипт  : Yes
Проверен             : Неизвестно

Сойдёт?

wandrien ★★
()
Ответ на: комментарий от mbivanyuk

а я то каким образом в этом виноват?

Ты наверное никаким, тут природа сфейлилась, добавив тебе лишнюю хромосому.

И да, не брызгай слюнями, такие истерики давно никого не впечатляют.

alex1101
()
Ответ на: комментарий от wandrien

Не-а) Это же пакеты в репозитории, сами они могут не меняться, но их зависимости могут постоянно перепиливаться под меняющееся окружение, обеспечивая работоспособность.

Речь именно об отдельных пакетах/программах, ну типа как portable-экзешники в винде.

alex1101
()
Последнее исправление: alex1101 (всего исправлений: 1)
Ответ на: комментарий от vbcnthfkmnth123

Можно и в линукс весь тулчейн с собой таскать, слинковав с ним.

grem ★★★★★
()
Ответ на: комментарий от alex1101

Лол. Это бинарники, собранные на локалхосте 11 лет назад. При чем тут репозиторий?

Речь именно об отдельных пакетах/программах, ну типа как portable-экзешники в винде.

Этот dmenu или gentoo-fm заработает на debian stable вот точно так же, если его туда перекинуть.

wandrien ★★
()
Ответ на: комментарий от wandrien

Это бинарники, собранные на локалхосте 11 лет назад

Хорошо, но они ведь наверняка не заработают на рандомной linux-системе. На моей, например, т.к. не будет зависимостей.

alex1101
()
Ответ на: комментарий от wandrien

Это уже не то.

Могу даже показать, как должно выглядеть. Идёшь сюда, загружаешь 64-битный tar.xz, распаковываешь, запускаешь бинарь - вуаля!

https://i.postimg.cc/5fN1W5fZ/opera1216.png

Ругнулось только на это:

$ ./opera 
/mnt/data/Soft/Linux/opera-12.16-1860.x86_64.linux/lib/opera/opera_autoupdatechecker: /usr/lib/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by /mnt/data/Soft/Linux/opera-12.16-1860.x86_64.linux/lib/opera/opera_autoupdatechecker)
alex1101
()
Ответ на: комментарий от alex1101

Впрочем, я подозреваю, что оно так легко заработало потому что у меня KDE-система со всей Qt-требухой. В какой-нибудь убунте может и не завестись.

alex1101
()
Ответ на: комментарий от wandrien

Что значит «докопаться»? Надобность пердолиться с зависимостями это первое, что бросается в глаза и делает их красными

alex1101
()
Ответ на: комментарий от wandrien

Божественная ОС существует только в моём воображении

alex1101
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.