четверг, 24 декабря 2009 г.

java 1.3 + Mandriva x86_64

Возникла тут странная задача... поставить java 1.3 на 64х разрядный
линукс 2009 года выпуска. Вот что из этого получилось.

Устанавливал я на Mandriva 2009.1 x86_64.

Имеем дистр j2sdk-1_3_1_20-linux-i586.bin
Устанавливаем его

В резултате получаем каталог с развернутой сдк 1.3
переходим туда
cd jdk1.3.1_20

пробуем запустить джаву
bin/java -version

в ответ получаем
Error: can't find libjava.so.

с помощью strace можно выяснить где ищется эта библиотечка
но дабы не мучить читателя просто скажу.
...
stat("bin/../jre/lib/x86_64/libjava.so", 0x7fff66e6f570) = -1 ENOENT (No such file or directory)
...

Естественно никаких x86_64 там нет и быть не может
создаем ссылку на i386

ln -s ~/bin/jdk1.3.1_20/jre/lib/i386 ~/bin/jdk1.3.1_20/jre/lib/x86_64

Пробуем опять запустить

bin/java -version

Получаем
bin/../jre/bin/realpath: line 22: ~/bin/jdk1.3.1_20/bin/../jre/bin/x86_64/realpath: Нет такого файла или каталога
bin/../jre/bin/realpath: line 22: exec: ~/bin/jdk1.3.1_20/bin/../jre/bin/x86_64/realpath: cannot execute: Нет такого файла или каталога
bin/java: line 54: /bin/realpath: Нет такого файла или каталога
bin/java: line 55: /bin/realpath: Нет такого файла или каталога
grep: /lib/jvm.cfg: Нет такого файла или каталога
grep: /lib/jvm.cfg: Нет такого файла или каталога
java was not found in /bin/x86_64/native_threads/java

т.е. тоже самое

Создаем ссылку

ln -s ~/bin/jdk1.3.1_20/jre/bin/i386 ~/bin/jdk1.3.1_20/jre/bin/x86_64

Пробуем снова

bin/java -version

Получаем
java was not found in
~/bin/jdk1.3.1_20/bin/x86_64/native_threads/java

тожесамое только для каталога ~/bin/jdk1.3.1_20/bin/i386

ln -s ~/bin/jdk1.3.1_20/bin/i386
~/bin/jdk1.3.1_20/bin/x86_64

и снова пробуем
bin/java -version
~/bin/jdk1.3.1_20/bin/x86_64/native_threads/java: error while loading shared libraries: libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or directory

Данная библиотека находится в пакете libstdc++2.10
ставим пакет

после этого
bin/java -version
java version "1.3.1_20"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_20-b03)
Java HotSpot(TM) Client VM (build 1.3.1_20-b03, mixed mode)

Формально все запустилось... и даже работает

суббота, 5 декабря 2009 г.

Cisco VPN client

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

после заклинания

# ldconfig

клиент от требования библиотек отказался.

Сделал я ему профиль как указано в служебной инструкции а он скотина работать опять не хотит

грит
execv:No such file or directory

и все тут.

Решил я ему объяснить что таки он не прав ни разу. И решил применить для пущей надежности убеждения кунг-фу, strace то бишь. Но поскольку vpnclient это скрипт, то и кунг-фу я ему вонзил прямотаки в нутро. Прям в вызов бинаря. И с добивающим приёмом '-f'.

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

вот он виновник тунеядства.

/opt/cisco-vpnclient/bin/cvpnd

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

# rm -f /opt/cisco-vpnclient/bin/cvpnd
# ln -s $(which cvpnd) /opt/cisco-vpnclient/bin/cvpnd

как все начинает работать.

Остался собсно гря один нерешеный вопрос... кудыж сборщики то смотрели?

нет.. вру... еще 1 есть...

Зачем оная софтина для запуска отключает ядра проца все кроме
одного... а когда стартанет снова подключает.. О_о... чуднО