LINUX.ORG.RU

загрузка двух версий библиотеки


0

1

Какие нужны драйвера/ры для работы ключа JaCarta от Ростелекома? (комментарий)

root@machine:/usr/lib/mozilla/plugins$ ldd lib/* | grep "=>" | sed "s/(.*)//g" | sort | uniq
...
	libcrypto.so.1.0.0 => /usr/lib/mozilla/plugins/lib/libcrypto.so.1.0.0 
	libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 
...


root@machine:/usr/lib/mozilla/plugins$ ldd lib/libssl.so.1.0.0
	linux-vdso.so.1 (0x00007fff9d1ff000)
	libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f4991985000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4991781000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f49913d7000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f49911c0000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f4991ffa000)

поможет ли указание LD_PRELOAD или LD_LIBRARY_PATH? Как и куда его правильно вписывать, чтобы оно действовало только на одну программу?

user@machine:/usr/lib/mozilla/plugins$ LD_LIBRARY_PATH=/usr/lib/mozilla/plugins/lib/ ldd lib/libssl.so.1.0.0
	linux-vdso.so.1 (0x00007fffa21ff000)
	libcrypto.so.1.0.0 => /usr/lib/mozilla/plugins/lib/libcrypto.so.1.0.0 (0x00007fe80a6bb000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe80a4a5000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe80a0fb000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fe80ad0c000)

запускал так firefox

user@machine:/usr/lib/mozilla/plugins$ LD_LIBRARY_PATH=/usr/lib/mozilla/plugins/lib/ firefox
user@machine:/usr/lib/mozilla/plugins$

плагин не работает

стёр файл pluginreg.dat
rm /home/user/.mozilla/firefox/profile.default/pluginreg.dat
теперь плагин загружается нормально.

Догадался я об этом запуская

$ LD_LIBRARY_PATH=/usr/lib/mozilla/plugins/lib/ strace 2>~/rep.txt iceweasel

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

Итог: 7 тупейших тредов на одну проблему.

facepalm.png

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

решение проблем на форуме уже зашквар, а не количество тредов

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

решение проблем на форуме уже зашквар

а парламент не место для дискуссий

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

Знаешь, увидев столько тредов, я аж решил посмотреть, что там. В итоге, чтобы плагин загрузился на Debian stable, понадобилось:

  • переименовать npIFCplugin.so в libnpIFCplugin.so;
  • удалить lib/libconfig.so.9, который шёл в комплекте с плагином;
  • поставить пакет libconfig9

Всё. Никаких пакетов из testing'а или sid'а не нужно.

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

было бы круто, если бы ты ещё пояснил, как ты до этих действий догадался, почему они необходимы и к каким эффектам приводят (т.е. одним словом - как это работает)

vmw8sl ()
Ответ на: комментарий от i-rinat

т.е. если более точно, то:
1) зачем добавлять префикс lib, если это плагин
(а не динамиччески загружаемая библиотека общего пользования), непонятно какой эффект вызывает добавление такого префикса
2) в чем разница между файлами lib/libconfig.so.9 и libconfig9
(т.е. чем вызвана необходимость замены)

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

зачем добавлять префикс lib

Хм, действительно, и без этого подхватывает. Но вообще-то плагин и есть загружаемая библиотека, а в линуксах их принято называть libsomething.so. npSomething.dll это Windows-стайл.

Похоже, Fx запоминает имя файла, чтобы не пробовать лишний раз. А так как в процессе манипуляций дата файла не менялась, он его и не сканировал. Скорее всего, можно было touch'нуть файл, этого бы хватило.

в чем разница между файлами lib/libconfig.so.9 и libconfig9

lib/libconfig.so.9 требует более свежую версию glibc, так как слинкован с ней. libconfig.so.9 из дистрибутива слинкован с дистрибутивной версией glibc. Так можно обойтись без обновления libc.

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

ок. В чем была ошибка авторов пакета? И как её правильно исправить, чтобы работало во всех версиях линукса?

Если я правильно понимаю, то надо добавить зависимость от пакета libconfig9, а такой пакет может существовать не во всех дистрибутивах. Либо надо слинковать его как-то более статически?

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

тут пишут:

You should be using -static, not -Wl,-static. The latter bypasses gcc's knowledge, and therefore gcc is still trying to link the shared libgcc_s.so rather than the static libgcc_eh.a.

If your aim is to link libc statically but libpthread dynamically, this is simply not going to work. You cannot mix and match different versions of libpthread; it's part of glibc, just a separate file, and the internals need to match. Even with the same version, I think linking libc statically and libpthread dynamically will be very broken.

vmw8sl ()
Ответ на: комментарий от i-rinat

В чем была ошибка авторов пакета? И как её правильно исправить

«правильный» ответ на этот вопрос - сделать репозитории пакетов для каждого дистрибутива и толкать пакет мейнтейнерам дистрибутивов.

А как сделать распространение в виде аддона к Firefox? ведь для firefox пакетной системы нет...

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

а такой пакет может существовать не во всех дистрибутивах

Его нет только в Ubuntu 12 и более ранних. В Debian 7 он уже есть.

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

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

vmw8sl ()
Ответ на: комментарий от i-rinat

кроме Ubuntu и Debian ещё полно других дистрибутивов. Надо вопрос рассматривать в принципе - можно ли такой плагин сделать полностью статически?

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

красиво сделать это не получится.

ссылку прочитал, почему не получится - не понял. Поясни, пожалуйста, твою мысль...

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

кроме Ubuntu и Debian ещё полно других дистрибутивов

Ну проверь все, делов-то. http://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timelin...

можно ли такой плагин сделать полностью статически

Просто рассмотри оба варианта. Допустим, можно, тогда <...>. Допустим, нельзя, тогда <...>.

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

Допустим, можно, тогда <...>.

тогда делаем, а потом используем

Допустим, нельзя, тогда <...>

удлиняем инструкцию, пусть мучаются миллионы пользователей

vmw8sl ()
Ответ на: комментарий от i-rinat

Ну проверь все, делов-то.

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

Я же спрашиваю - можно ли сделать универсально. И у тебя почему-то возникает вопрос - а зачем. Ты странный.

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

И у тебя почему-то возникает вопрос - а зачем. Ты странный.

Ты нашёл способ, который искал. Твоё предложение апстрим скорее всего проигнорирует. Что будешь делать дальше?

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

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

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

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

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

средствами Firefox ты плагин не поставишь,
обновлять его тоже не сможешь

интернет не согласен:

You can install a plugin as part of an extension (optionally using an XPI) if you want.

А мне как раз главное его задеплоить

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