Я пытаюсь установить драйвер odbc для vPostgres (версия Vmware для postgres) на Ubuntu 11.10 (64-бит). Я загрузил файл rpm установщика (64-бит), и когда я пытаюсь установить rpm с помощью:
rpm -ivh Vmware-vPostgres-client.rpm, он показывает мне эту ошибку:
ошибка: Неудачные зависимости: libc.so.6()(64bit) требуется для VMware-vPostgres-client-1.0.1.1145-532311.x86_64 libc.so.6(GLIBC_2.2.5)(64bit) требуется для VMware-vPostgres-client-1.0.1.1145-532311.x86_64 libc.so.6(GLIBC_2.3)(64bit) требуется для VMware-vPostgres-client-1.0.1.1145-532311.x86_64 libc.so.6(GLIBC_2.3.3)(64bit) требуется для VMware-vPostgres-client-1.0.1.1145-532311.x86_64 libdl.so.2()(64bit) требуется для VMware-vPostgres-client-1.0.1.1145-532311.x86_64 libdl.so.2(GLIBC_2.2.5)(64bit) требуется для VMware-vPostgres-client-1.0.1.1145-532311.x86_64 libpthread.so.0()(64bit) требуется для VMware-vPostgres-client-1.0.1.1145-532311.x86_64 libpthread.so.0(GLIBC_2.2.5)(64bit) требуется для VMware-vPostgres-client-1.0.1.1145-532311.x86_64 libresolv.so.2()(64bit) необходим для VMware-vPostgres-client-1.0.1.1145-532311.x86_64 libresolv.so.2(GLIBC_2.2.5)(64bit) требуется для VMware-vPostgres-client-1.0.1.1145-532311.x86_64
Несколько вещей, которые я попробовал:
locate libpthread.so.0 возвращает:
/lib/i386-linux-gnu/libpthread.so.0 /lib/x86_64-linux-gnu/libpthread.so.0 /lib32/libpthread.so.0
Я получаю похожие расположения для всех остальных файлов: locate libc.so.6
/lib/i386-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libc.so.6 /lib32/libc.so.6
и так далее.
Я попробовал создать символические ссылки с помощью:
sudo ln -s lib/x86_64-linux-gnu/libc.so.6 /lib64/libc.so.6 sudo ln -s lib/x86_64-linux-gnu/libc.so.6 /lib/libc.so.6 sudo ln -s lib/x86_64-linux-gnu/libc.so.6 libc.so.6
но ни один из них не сработал. Я не уверен, где именно он пытается искать эти файлы.
ldd Vmware-vPostgres-client.rpm не помогает и возвращает «не динамический исполняемый файл», что и ожидалось
Я попробовал добавить путь в файл /etc/ld.so.conf
включить lib/x86_64-linux-gnu/libc.so.6
Я также пробовал установить LD_LIBRARY_PATH на указанный файл, но это бесполезно.
ldd --version показывает GLIBC 2.13
Может ли кто-нибудь помочь мне узнать, где именно он ищет файл?
решение1
Ubuntu использует формат пакетов Debian, поэтому вы не можете разумно устанавливать RPM-пакеты на дистрибутив на основе Deb. Хотя установить инструмент можно rpm
, зависимости пакетов не интегрируются с зависимостями пакетов Deb, и содержимое пакетов также может не работать.
Лучшим решением будет найти Deb-пакет нужного вам программного обеспечения, а следующим лучшим вариантом будет собрать его в Deb-пакет самостоятельно (что требует немало работы). Если это невозможно, то последним средством будет попробовать использоватьчужакдля преобразования RPM в Deb. Вам все равно придется вручную работать с зависимостями и, возможно, с изменениями, внесенными в скрипты пакетов.
решение2
"чужой" мне подходит:
$ sudo apt-get install alien
$ sudo alien VMware-vPostgres-client-1.0.1.1145-532311.x86_64.rpm
vmware-vpostgres-client_1.0.1.1145-532312_amd64.deb generated
$ sudo dpkg -i vmware-vpostgres-client_1.0.1.1145-532312_amd64.deb
...
Unpacking vmware-vpostgres-client (from vmware-vpostgres-client_1.0.1.1145-532312_amd64.deb) ...
Setting up vmware-vpostgres-client (1.0.1.1145-532312) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place