Netscape на Linux в 2020 году

Я загрузил исходный код evince (исходный код, предоставленный Debian 9.9, evince 3.22.1 ), и поскольку все ярлыки записываются «как -есть» в файлах интернационализации (.po), я думаю, они жестко запрограммированы.

Например:

help/fr/fr.po:msgid "<keyseq><key>Ctrl</key><key>R</key></keyseq>"
help/fr/fr.po:msgstr "<keyseq><key>Ctrl</key><key>R</key></keyseq>"

Пытаюсь копнуть дальше, но способ управления ярлыком evince довольно... странный:)

1
17.11.2020, 04:07
2 ответа

Вам потребуется версия библиотеки GTK2 для i686. Вы не указали свой дистрибутив, поэтому сложно сказать, как его установить.

В Fedora 33 это будет:

dnf install gtk2.i686

Для Ubuntu/Debian/Mint/и т. д. это, вероятно, сработает:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libgtk2.0-0:i386
1
18.03.2021, 22:49

Используйте ldd, чтобы увидеть, что ожидает увидеть исполняемый файл. Определите все недостающие библиотеки и:

  1. Попробуйте найти пакеты с файлами библиотек для вашего дистрибутива, а затем загрузить и установить их.
  2. Если точная версия отсутствует, попробуйте связать поддельную символическую ссылку с точным именем файла с библиотекой.so, которая больше всего похожа на нее.
  3. Если вы все еще не можете найти что-то подобное, найдите пакет deb/rpm/whatever, который содержит эту устаревшую библиотеку, и установите его вручную (вы можете просто заглянуть внутрь deb/rpm с помощью mcи скопируйте этот файл, который вам нужен. В этом случае вы можете столкнуться с тем, что.so не имеет других.so, с которыми он был скомпилирован, поэтому вы можете начать эту процедуру с no. 1 для этой конкретной библиотеки .
  4. Если это не сработает (после достаточной работы все должно работать -системные вызовы для ядер 32/64 не менялись с течением времени -это вопрос совместимости для всего ядра Linux )вам может понадобиться установить старый дистрибутив Linux, под которым он работал, и скомпилировать библиотеку или даже весь пакет Netscape статически, и использовать этот статически связанный файл в новой системе.
  5. И наоборот, вы можете использовать исходный пакет в новой системе из старой системы, которая поддерживала продукт, и собрать (и скомпоновать его с новыми библиотеками )в новой системе.
  6. Если по какой-то причине это не работает, найдите,или создайте контейнер Docker с требуемым продуктом -. Это действительно правильный путь, поскольку Docker был создан именно для этой цели.

Это должно вас завести. В большинстве случаев мне нужно было запустить какой-нибудь старый двоичный объект с отсутствующими библиотеками, фальшивую символическую ссылку (. Обычно я помещал их в /use/local/lib/fake, чтобы отслеживать их ). иногда я сталкивался с отсутствующими символами. Также обратите внимание на различия 64/32 бит. 64-битный код x86 полностью отличается от 32-битного x86. Еще одна проблема может заключаться в том, что в таком пакете, как Netscape, много двоичных файлов, и большинство из них нужно проверять с помощью ldd.

(Кстати -это действительно ностальгия, а не чистая необходимость?)

2
18.03.2021, 22:49

Теги

Похожие вопросы