LINUX.ORG.RU

Проблема с openssl

 , ,


0

1

Итак, дома у меня гента. Собираю я пакеты на работе, а дома устанавливаю через emerge -K. Однако, возникла такая проблема: не работает openssl.

Я даже пробовал откатиться на 1 версию назад, собрав пакет на домашнем компьютере. Все собирается устанавливается, однако, на стадии регенерации сертификатов получается вот что:

 * Running 'c_rehash /etc/ssl/certs/' to rebuild hashes #333069 ...
/usr/bin/openssl: symbol lookup error: /usr/bin/openssl: undefined symbol: i2d_ECPKParameters
...
При запуске самого openssl он пишет:
openssl
openssl: symbol lookup error: openssl: undefined symbol: i2d_ECPKParameters
equery говорит, что у меня эта версия установлена:
equery l openssl
 * Searching for openssl ...
[IP-] [  ] dev-libs/openssl-1.0.1g:0


Что нужно переустановить, чтобы заработала openssl?

Из-за нее и ssh не работает:

ssh
ssh: symbol lookup error: ssh: undefined symbol: EC_GROUP_set_asn1_flag

☆☆☆☆☆

Ты указывал параметры march и/или mtune в make.conf системы на которой собираешь и на которой устанавливаешь пакеты?

Какой процессор на одном и другом ПК?

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

Естественно, я не указывал архитектуру (из-за того, что изначально у меня было -march=native я с месяц безрезультатно бился, пытаясь запустить бинарники с работы дома).

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

Я это уже видел. С пустым LD_LIBRARY_PATH пересобрал. Фигвам.

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

Япона мать!

Вот так работает:

LD_LIBRARY_PATH=/usr/lib64 openssl

Как такое может быть, если в /usr у меня

lrwxrwxrwx   1 root root      5 май 15 05:24 lib -> lib64

Где же косяк-то? Что за бред — пихать системную библиотеку в LD_LIBRARY_PATH?

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: Япона мать! от Eddy_Em

Вот что за бред? Есть же эта директория явно:

cat ld.so.conf 
# ld.so.conf autogenerated by env-update; make all changes to
# contents of /etc/env.d directory
/lib64
/usr/lib64
/usr/local/lib64
/lib32
/usr/lib32
/usr/local/lib32
/lib
/usr/lib
/usr/local/lib
include ld.so.conf.d/*.conf
/usr/lib32/OpenCL/vendors/nvidia
/usr/lib64/OpenCL/vendors/nvidia
/usr/lib32/opengl/xorg-x11/lib
/usr/lib64/opengl/xorg-x11/lib
/usr/lib64/itcl3.4/
/usr/lib64/itk3.4/
/usr/lib64/qca2
/usr/lib64/qt4
/usr/lib32/qt4
/usr/lib/qt4
/usr/qt/3/lib64
/usr/qt/3/lib32
/usr/qt/3/lib
/usr/lib/postgresql
/usr/lib64/postgresql
/usr/lib64/postgresql-9.3/lib64/
/usr/lib64/opencascade-6.7.0/ros/lin/lib64
/usr/games/lib64
/usr/games/lib32
/usr/games/lib
/opt/cuda/lib64
/opt/cuda/lib
/usr/lib64/fltk-1
/usr/lib64/octave/3.6.4

Eddy_Em ☆☆☆☆☆
() автор топика

Ну все! Оторвать мне руки и в задницу засунуть!

Запустил ldconfig. Теперь запуск любой команды дает:

ls
ls: relocation error: /lib64/libc.so.6: symbol _dl_find_dso_for_object, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference

Не успел завершить установку — опять поломал! Вот же руки из задницы!!!

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

Пхытон отвалился:

/usr/bin/python3.3: : <куча бреда, на который ЛОР матерится>: Error 7006176

Eddy_Em ☆☆☆☆☆
() автор топика

Не, ну вашпе! Как теперь что-нибудь установить?

emerge openssl
/usr/bin/python3.3: : <0x1f is not a legal XML character> : Error 7040192
Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Ага! Та же шняга, что и выше, но теперь с libdl.so.2.

Ищу, что там осталось левого.

А нет ли команды, чтобы почистить систему от левых бинарей? А то всякие revdev-rebuild'ы нифига не видят.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от LongLiveUbuntu
equery u openssl
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for dev-libs/openssl-1.0.1h-r1:
 U I
 - - bindist       : Disable EC/RC5 algorithms (as they seem to be patented) -- note: changes the ABI
 - - gmp           : Add support for dev-libs/gmp (GNU MP library)
 - - kerberos      : Add kerberos support
 - - rfc3779       : Enable support for RFC 3779 (X.509 Extensions for IP Addresses and AS Identifiers)
 - - static-libs   : Build static versions of dynamic libraries as well
 - - test          : Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2 handles this internally, so don't set it in make.conf/package.use anymore
 + + tls-heartbeat : Enable the Heartbeat Extension in TLS and DTLS
 - - vanilla       : Do not add extra patches which change default behaviour; DO NOT USE THIS ON A GLOBAL SCALE as the severity of the meaning changes drastically
 + + zlib          : Add support for zlib (de)compression

На работе так же, но пашет без указания /usr/lib64 в LD_LIBRARY_PATH. Пробую еще раз пересобирать.

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

Продолжай расследование. Мы всем лором, затаив дыхание, наблюдаем

Turbid ★★★★★
()

Смотря разницу между ldd /usr/bin/ssh и LD_LIBRARY_PATH=/usr/lib64 ldd /usr/bin/ssh, я обнаружил "левый" файл: /lib64/libcrypto.so.1.0.0, который, видимо, остался от предыдущих попыток реставрации генты (возможно, не туда скопировал что-то).

Удалил его, запустил ldconfig заново, ssh заработал!

В общем, основная проблема — в генте нельзя определить, что какой-то системный файл является "честной" сиротой, а не был забульбенен каким-нибудь скриптом (вроде того же ldconfig).

Т.е. в таком случае — либо вычищать руками, либо все подчистую удалять и с нуля ставить (что крайне лень, т.к. даже из бинарников, скомпиленных на работе, установка около суток длится).

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

В общем, основная проблема — в генте нельзя определить, что какой-то системный файл является «честной» сиротой,

equery b «честна» сирота

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

Кстати, как я и говорил, не для всего такое сработает правильно:

equery b /usr/bin/gcc 
 * Searching for /usr/bin/gcc ... 
фигвам

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

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

Хреновато. Можно и нужное так убить нафиг.

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

А, не, все в порядке: там действительно такая гора мусора. Я, похоже, когда делал cp -R, неправильно назначение указал, в итоге /usr/lib64 попало в /lib64.

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

Можно и нужное так убить нафиг.

Мозг надо включать в этой ситуации, да.

созданное скриптами считается «сиротой».

Да, иначе никак. portage об этих файлах никак узнать не может. Так что мозг в руки и вперёд. Идеально конечно систему левыми либами и бинарями не засорять, но всякое бывает...

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

Зачем? Оно и так работает.

Eddy_Em ☆☆☆☆☆
() автор топика

В общем, я типа уже потихоньку огентовываюсь.

Попользуюсь еще с месяцок на домашнем компьютере, и если никаких косяков не всплывет (а вообще, в генте очень тяжко с софтом — qcad еле-еле поставил, kicad в оверлеях какой-то кривой, freecad тоже вроде бы встал, но как-то хреново), поставлю везде генту. На работе буду периодически обновляться, а домашний компьютер и ноутбук буду бинарниками пичкать.

Но вот на "железячные" компьютеры все-таки придется какую-нибудь фигню вроде debian stable старого ставить. Особенно под ARM.

Eddy_Em ☆☆☆☆☆
() автор топика

Но вот на «железячные» компьютеры все-таки придется какую-нибудь фигню вроде debian stable старого ставить. Особенно под ARM.

Ну хз. Я обновляю свою Raspberry Pi с бинарных пакетов - никаких проблем.

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

Спасибо!

Возьму на заметку. А то подумываю взять для управления кубиборду и USB'шный TV-тюнер к ней (к сожалению, до сих пор всякие EM-CCD работает через одно место, и вместо того, чтобы через какой-нибудь шустрый интерфейс отдавать цифру, они делают ЦАП).

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

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

Что ты пытался реставрировать? В общем случае никогда не копируй что-либо в ручную в системные директории, в особенности, если не уверен в результате. Но вообще что-либо копировать в ручную в любом случае вредно.

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

Я разворачивал stage3 поверх "неправильных" файлов. Ну, малость в cp забыл слэш в конце назначения указать. Стыдобища!

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