LINUX.ORG.RU

Eagle 7.7.0 требует старый libssl.so

 ,


0

1

Eagle 7.7.0 наличиствует в slackbuilds.org Он не запускается, ругается, мол

eagle: error while loading shared libraries: libssl.so.1.0.0:

Поискал, где у меня libssl.so

[ installed ] - openssl-1.1.1zb_p2-x86_64-1_slack15.0
[ installed ] - openssl-solibs-1.1.1zb_p2-x86_64-1_slack15.0

Попробовал # ln -sf /usr/lib64/libssl.so /opt/eagle-7.7.0/bin/libssl.so.1.0.0

Наверное это было очень наивно. Результат тот же eagle: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory

Что бы мне посоветовали знающие люди V_v? По всему похоже, что производитель прекратил аттракцион невиданной щедрости, и современных бесплатных версий этой программы я не найду. Можно ли вписать ее в существующую среду?

Или может есть свободные программы, способные открывать файлы для Eagle?

Перемещено hobbit из general



Последнее исправление: Csandriel_x64 (всего исправлений: 2)

Это совершенно разные библиотеки. Но это и хорошо. Откуда-нибудь скопируй libssl.so.1.0.0. И уж крайне маловероятно, что ей место в /opt/…

Пример, что есть в ubuntu 18.04:

$ ls -l /usr/lib/i386-linux-gnu/libssl*
-rw-r--r-- 1 root root 431288 Feb 27  2019 /usr/lib/i386-linux-gnu/libssl.so.1.0.0
-rw-r--r-- 1 root root 602468 May 28  2020 /usr/lib/i386-linux-gnu/libssl.so.1.1
-rw-r--r-- 1 root root 363280 Jun 23  2020 /usr/lib/i386-linux-gnu/libssl3.so

А ешё помимо этого была libssl.so.0.9.8.

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

Ну вот. Скачал на pkgs.org

openssl-1.0-1.0.2.u-5-x86_64.pkg.tar.zst

Это как бы архив. Кажется для Арча. Все одержимое директории /usr/lib, которая в нем,

а это

├── libcrypto.so.1.0.0
├── libssl.so.1.0.0
└── openssl-1.0
    ├── engines
    │   ├── lib4758cca.so
    │   ├── libaep.so
    │   ├── libatalla.so
    │   ├── libcapi.so
    │   ├── libchil.so
    │   ├── libcswift.so
    │   ├── libgmp.so
    │   ├── libgost.so
    │   ├── libnuron.so
    │   ├── libpadlock.so
    │   ├── libsureware.so
    │   └── libubsec.so
    ├── libcrypto.so -> ../libcrypto.so.1.0.0
    ├── libssl.so -> ../libssl.so.1.0.0
    └── pkgconfig
        ├── libcrypto.pc
        ├── libssl.pc
        └── openssl.pc

с помощью MC скопировал в свою /usr/lib64

Конфликтов не было.

Теперь требуется старый glibc,

eagle: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /lib64/libcrypto.so.1.0.0)
Csandriel_x64
() автор топика
Ответ на: комментарий от Csandriel_x64

GLIBC_2.34 - это старее, чем у тебя в системе? Чаще такой вопрос возникает, если в системе GLIBC старее, чем нужен библиотеке. А в этом случае, так просто уже не исправишь. Нужно программу запускать со своим комплектом библиотек.

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

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

GLIBC_2.34 - это старее, чем у тебя в системе?

Выясняется, что это новее, чем у меня. Хм.

[/var/log/packages] 
$ ls -la glibc*
-rw-r--r-- 1 root root  24K Aug  3 09:43 glibc-2.33-x86_64-8_slack15.0
-rw-r--r-- 1 root root 272K Aug  3 09:44 glibc-i18n-2.33-x86_64-8_slack15.0
-rw-r--r-- 1 root root 1019 Aug  3 09:44 glibc-profile-2.33-x86_64-8_slack15.0
-rw-r--r-- 1 root root  71K Aug  3 09:44 glibc-zoneinfo-2025b-noarch-1_slack15.0

Я уже понял, что это обширный пакет

[/var/log/packages] 
$ cat glibc-2.33*|xclip -selection clipboard


PACKAGE NAME:     glibc-2.33-x86_64-8_slack15.0
COMPRESSED PACKAGE SIZE:     5.1M
UNCOMPRESSED PACKAGE SIZE:     33M
PACKAGE LOCATION: ./glibc-2.33-x86_64-8_slack15.0.txz
PACKAGE DESCRIPTION:
glibc: glibc (GNU C libraries)
glibc:
glibc: This package contains the GNU C libraries and header files. You'll
glibc: need this package to compile programs.
glibc:
glibc: The GNU C library was originally authored by Roland McGrath.
glibc:
glibc: Homepage: https://www.gnu.org/software/libc/
glibc:
glibc:
glibc:
FILE LIST:
./
bin/
etc/
etc/nscd.conf.new
etc/profile.d/
etc/profile.d/glibc.csh.new
etc/profile.d/glibc.sh.new
etc/rpc
install/
install/doinst.sh
install/slack-desc
lib64/
lib64/incoming/
lib64/incoming/ld-2.33.so
lib64/incoming/libBrokenLocale-2.33.so
lib64/incoming/libanl-2.33.so
lib64/incoming/libc-2.33.so
lib64/incoming/libcrypt-2.33.so
lib64/incoming/libdl-2.33.so
lib64/incoming/libm-2.33.so
lib64/incoming/libmemusage.so
lib64/incoming/libmvec-2.33.so
lib64/incoming/libnsl-2.33.so
lib64/incoming/libnss_compat-2.33.so
lib64/incoming/libnss_db-2.33.so
lib64/incoming/libnss_dns-2.33.so
lib64/incoming/libnss_files-2.33.so
lib64/incoming/libnss_hesiod-2.33.so
lib64/incoming/libpcprofile.so
lib64/incoming/libpthread-2.33.so
lib64/incoming/libresolv-2.33.so
lib64/incoming/librt-2.33.so
lib64/incoming/libthread_db-1.0.so
lib64/incoming/libutil-2.33.so

Проще всего, наверное, найти версию libssl.so.1.0.0 скомпилированную для моего, более старого glibc. Или самому ее скомпилять?

Или найти пакет с новым glibc, распаковать его отдельно, и передать путь к нему через LD_LIBRARY_PATH при запуске Eagle?

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

libssl.so.1.0.0 скомпилированную для моего, более старого glibc…

Самый простой вариант.

пакет с новым glibc, распаковать его отдельно, и передать путь к нему через LD_LIBRARY_PATH…

Вариант сложнее. Может понадобится не только GLIBC.

тупо обновить свой glibc?

А это вообще возможно? Если-бы было возможно, то наверно уже обновилось-бы.

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

Я вообще-то еще понял, что glibc требуется для libcrypto.so.1.0.0 который я подтянул уже, как-то незаметно.

Между прочим, сейчас заменил свой новый libssl.so.1.0.0 на симлинк к существующему libssl.so – и странно, как будто разницы не видно. По-прежнему требует glbic 2.34 для librclypto.so.1.0.0

Говоришь в консоли ldd твой_бинарик, смотришь где он ищет этот симлинк, туда и ложишь.


# ldd /usr/bin/eagle
/usr/bin/eagle: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /lib64/libcrypto.so.1.0.0)
	linux-vdso.so.1 (0x00007ffc5c4ec000)
	libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007f7cd25b8000)
	libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x00007f7cd25a8000)
	libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00007f7cd2598000)
	libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f7cd24d0000)
	libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007f7cd2480000)
	libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f7cd2468000)
	libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f7cd2320000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f7cd2318000)
	libXi.so.6 => /usr/lib64/libXi.so.6 (0x00007f7cd2300000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f7cd22d8000)
	librt.so.1 => /lib64/librt.so.1 (0x00007f7cd22c8000)
	libssl.so.1.0.0 => /lib64/libssl.so.1.0.0 (0x00007f7cd2258000)
	libcrypto.so.1.0.0 => /lib64/libcrypto.so.1.0.0 (0x00007f7cd1fd8000)
	libcups.so.2 => /usr/lib64/libcups.so.2 (0x00007f7cd1f38000)
	libz.so.1 => /lib64/libz.so.1 (0x00007f7cd1f18000)
	libX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1 (0x00007f7cd1f10000)
	libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f7cd1ee0000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f7cd1d98000)
	libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00007f7cd1d78000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f7cd1b98000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f7cd25f8000)
	libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007f7cd1b88000)
	libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f7cd1b70000)
	libpng16.so.16 => /usr/lib64/libpng16.so.16 (0x00007f7cd1b38000)
	libharfbuzz.so.0 => /usr/lib64/libharfbuzz.so.0 (0x00007f7cd1a40000)
	libbrotlidec.so.1 => /usr/lib64/libbrotlidec.so.1 (0x00007f7cd1a30000)
	libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007f7cd18c0000)
	libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x00007f7cd1868000)
	libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x00007f7cd1790000)
	libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x00007f7cd1760000)
	libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f7cd1758000)
	libgnutls.so.30 => /usr/lib64/libgnutls.so.30 (0x00007f7cd1550000)
	libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f7cd1510000)
	libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f7cd1508000)
	libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007f7cd1500000)
	libgraphite2.so.3 => /usr/lib64/libgraphite2.so.3 (0x00007f7cd14d0000)
	libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f7cd1398000)
	libbrotlicommon.so.1 => /usr/lib64/libbrotlicommon.so.1 (0x00007f7cd1370000)
	liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f7cd1348000)
	libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x00007f7cd1338000)
	libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f7cd1330000)
	libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f7cd1310000)
	libp11-kit.so.0 => /usr/lib64/libp11-kit.so.0 (0x00007f7cd11d8000)
	libidn2.so.0 => /usr/lib64/libidn2.so.0 (0x00007f7cd11b0000)
	libunistring.so.2 => /usr/lib64/libunistring.so.2 (0x00007f7cd1028000)
	libnettle.so.8 => /usr/lib64/libnettle.so.8 (0x00007f7cd0fe0000)
	libhogweed.so.6 => /usr/lib64/libhogweed.so.6 (0x00007f7cd0f90000)
	libgmp.so.10 => /usr/lib64/libgmp.so.10 (0x00007f7cd0f10000)
	libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f7cd0e98000)
	libffi.so.7 => /usr/lib64/libffi.so.7 (0x00007f7cd0e88000)

Ух ты. Спасибо. Очень ценный ход, на будущее.
Сча врежу чайку, откачу все, и попробую сначала.

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

Есть оригинальная GNU Libc в -current, если этот Eagle не пересобрать, то придëтся собирать нужный комплект либ родными слакбилдами, с PREFIX=/opt и указывать их через LD_PRELOAD.

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

В общем, поудалял то, что наустанавливал. Симлинками на существующие у меня аналоги удовлетворил все требования бинарника, но он продолжает ругаться

$ eagle
eagle: /usr/lib64/libcrypto.so.1.0.0: version `OPENSSL_1.0.1d' not found (required by /lib64/libssl.so.1.0.0)
eagle: /usr/lib64/libcrypto.so.1.0.0: version `OPENSSL_1.0.1' not found (required by /lib64/libssl.so.1.0.0)
eagle: /usr/lib64/libcrypto.so.1.0.0: version `OPENSSL_1.0.2' not found (required by /lib64/libssl.so.1.0.0)
eagle: /usr/lib64/libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /lib64/libssl.so.1.0.0)
Csandriel_x64
() автор топика
Ответ на: комментарий от Csandriel_x64

`OPENSSL_1.0.0’

Насколько я понимаю, не может оно зарезолвить эти символы внутри библиотеки. Рекомендую установить твой eagle из репозитария. А если оно из репозитария, то доустановить ещё одну из 4 версий openssl. Если и это не прокатит, это повод сменить дистр.

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

если этот Eagle не пересобрать,

Если я все правильно понимаю, это некогда пробная версия, когда-то Autodesk выпускал. Исходников нет. В слакбилде лежит .run файл. Пробовал его запускать ручками. Он требует тот же самый libcrypto.so.1.0.0 пробовал его симлинком от libcrypto.so подменить, ругается

#   ./eagle.run
/tmp/eagle-setup.24847/eagle-7.7.0/bin/eagle: /usr/lib64/libcrypto.so.1.0.0: version `OPENSSL_1.0.1d' not found (required by /lib64/libssl.so.1.0.0)
/tmp/eagle-setup.24847/eagle-7.7.0/bin/eagle: /usr/lib64/libcrypto.so.1.0.0: version `OPENSSL_1.0.1' not found (required by /lib64/libssl.so.1.0.0)
/tmp/eagle-setup.24847/eagle-7.7.0/bin/eagle: /usr/lib64/libcrypto.so.1.0.0: version `OPENSSL_1.0.2' not found (required by /lib64/libssl.so.1.0.0)
/tmp/eagle-setup.24847/eagle-7.7.0/bin/eagle: /usr/lib64/libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /lib64/libssl.so.1.0.0)
Csandriel_x64
() автор топика
Ответ на: комментарий от yars068

то придëтся собирать нужный комплект либ родными слакбилдами, с PREFIX=/opt и указывать их через LD_PRELOAD.

Это типа PREFIX=/opt mylibа.slackbuild ? А потом LD_PRELOAD=/opt/usr/lib64/mylyba.so для этих либ указать?

Я думаю пока забухать отдохнуть, потом погуглить LD_LIBRARY_PATH, и воспользоваться Силой этим подходом.

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

Ты тут упоминал MC. В своё время, для подобной задачи в «user menu» сделал пункт:

+= d /usr/local/* | d /opt* & t lr & ! t t
ld-linux
  ld='ld-linux.so.2'
  [ -e "%d/ld-linux-x86-64.so.2" ] && ld='ld-linux-x86-64.so.2'
   %d/${ld} --library-path %d %d/%f -V

Ставишь указатель на свою программу, в «user menu» выбираешь пункт, программа запускается, как если-бы LD_LIBRARY_PATH указывал на каталог с этой программой. Смотришь результат, какая либа понадобилась, копируешь в этот каталог.

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

То что ты написал, похоже на цитаты из некрономикона.

Но большое спасибо. Как нибудь освою.

А пока докладываю результат моих всех усилий. Короче начал все сначала. Поудалял все, что наставил. Переустановил свои стоковые openssl пакеты.

И загрузил требуемые либы снова. Подошла openssl-1.0-1.0.2.u-1-x86_64.pkg.tar.zst Качал с pkgs.org

Из архива, из его папки /usr/lib, вынул содержимое и воткнул то что там было (картина с деревом представлена в треде выше) в свою /usr/lib64.

Никаких коллизий не возникло.

После чего углубился в вопрос, чем именно занимается слакбилд. Мне оно сильно не понравилось. Пошел на slackbuilds.org, нашел там ссылку eagle-lin64-7.7.0.run скачал его ручками. И запустил. Вот этими вот лапками вот в этих вот лаптях. И оно заработало.

Выбрал лицензию EXPRESS, типа некомерческую. Хвала Аллаху. Все шуршит, как будто.

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

Это если оно так умеет, обычно не умеет. Но это легко правится в слакбилде. Если пакет собирается автотулзами, то нужно вместо --prefix=/usr указать --prefix=${PRERFIX}:-/usr}, тогда переменную окружения можно будет задавать на командной строке, как выше.

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

Оно ж устарело уже года 2 назад

Да ничего. Я тоже не молодею. Если мантайнеры держат в репах, значит оно еще работает, да. А памятуя историю трояна тысячелетия – systemd – я вообще не считаю новизну плюсом в кармочку надежности. Скорее наоборот. Слака вообще дистр очень древний, с очень древней идеологией, которую я разделяю и ценю: чем проще в устройстве, тем надежней в работе.

А она проста как лом, в сравнении с systemd-дистрами, где этот троян фактически оттеснил пользователя от происходящего в системе. Он стал реальным рутом, которого можно о чем-то попросить, слезно, а иначе в системе ничего не изменить и даже не понять ничего.

Для этого он и создавался: чтобы его авторы, – в том числе проклятый Поттеринг, да почернеет его рыло и усохнут яйца – захватили контроль над основной ОС серверов, да и вообще над ОС будущего. Не даром Мердока грохнули. Он ведь не хотел пускать systemd в debian, который на тот момент имел значительную долю рынка, и решение которого влияло на весь рынок.

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

Ты его в opt сделал, а надо рядом с 1.1.1

Я уже понял, что либы не ищутся рядом с бинарником. Вот что значит запои. Винда головного мозга берет свое. Она выржала лучшие годы, и вот пошел рецедив.

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

Слака вообще дистр очень древний, с очень древней идеологией, которую я разделяю и ценю: чем проще в устройстве, тем надежней в работе

openssl эту идеологию не разделяет - это монстр с жутким переусложненным кодом, в котором регулярно находят уязвимости. Его нельзя оставлять без обновлений.

Если бы в слаке реально об этом беспокоились, то перешли бы на wolfssl или aws-lc. Лучшая SSL-либа сейчас - это гугловый boringssl, но к сожалению там не поддерживают обратную совместимость.

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

В слаке до сих пор openssl 1.1.1?

Нет, посмотри на версию, там 1.1.1zb. Применены платные патчи от разработчиков openssl, которые выпускаются за деньги для неподдерживаемых публично версий.

MOPKOBKA ★★★★★
()

Выше какие то сложные советы с SlackBuild давали. Предлагаю скачать старые .so из 14.2, новые из current, и положить их в определенную папку, и прописать эту папку в LD_PRELOAD перед запуском eagle. Что бы вручную не прописывать, предлагаю сделать скрипт eagle.sh где будет export LD_LIBRARY_PATH и exec eagle.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)

Eagle 7.7.0 наличиствует в slackbuilds.org
Он не запускается, ругается, мол
eagle: error while loading shared libraries: libssl.so.1.0.0

Да, есть. Этот слакбилд перепаковывает официальные бинарники, которые собраны с openssl-1.0.
А вот в Slackware-15.0 устаревший openssl-1.0 (последний релиз был 20.12.2019) отсутствует по соображениям безопасности.

Попробовал # ln -sf /usr/lib64/libssl.so /opt/eagle-7.7.0/bin/libssl.so.1.0.0

Это не Windows, где библиотеки не в системных каталогах могут поискать без специального на то указания ;-)

Тем не менее, если бы попробовали сделать правильно:

# cd /usr/lib64
# ln -s ../../lib64/libssl.so.1.1 libssl.so.1.0.0
# ln -s ../../lib64/libcrypto.so.1.1 libcrypto.so.1.0.0
ничем хорошим это все равно не кончилось бы, поскольку версия 1.1 имеет несовместимость в виде удаления используемого в 1.0 символа CRYPTO_num_locks
opt/eagle-7.7.0/bin/eagle: symbol lookup error: /opt/eagle-7.7.0/bin/eagle: undefined symbol: CRYPTO_num_locks


В качестве эксперимента собрал openssl-1.0.2u из 14.2 тамошним слакбилдом
https://slackware.uk/slackware/slackware64-14.2/patches/source/openssl/
затем скопировал искомую пару файлов
libcrypto.so.1.0.0, libssl.so.1.0.0
из /tmp/package-ossllibs/lib64/
в /usr/lib64

и eagle запустился.
Что с ним дальше делать не знаю, возможно где-то еще есть косяки, но проблемы нужно решать по мере поступления ;)

Держать неподдерживаемую библиотеку в системном каталоге (/usr/lib64, /lib64) — идея очень не очень, этот вариант использовал только для теста. По-хорошему стоило бы собрать в отдельный каталог, скажем, где-то в /opt/openssl-1.0/, дополнительно указывать его при запуске eagle (в LD_LIBRARY_PATH) или прибить ему наглухо чем-то вроде
patchelf --set-rpath чего-добавить:еще-чего-добавить eagle...
Ну и файлы собрать предварительно в пакет и его поставить, а не копировать руками; не критично, но привычка полезная.

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

15.0 не обновляется, а только получает обновления безопасности. Самый дистрибутивный свежак – в -current. Поэтому и сижу на -current, мне нет нужды в замороженных версиях ПО.

yars068 ★★★★★
()