Linux: Alternativa de install_name_tool do MAC no CentOS

6

Eu estou procurando alternativa de install_name_tool do MAC no CentOS. Exatamente eu quero construir o MySQL em localização não padrão. Além disso, as bibliotecas compartilhadas do binário mysql devem estar em um local não padrão e adequadamente vinculadas.

Eu não era capaz de vincular bibliotecas compartilhadas libssl & libcrypto para o binário mysqld.

[user@localhost mysql]$ ldd /usr/local/mysql/bin/mysqld
        linux-gate.so.1 =>  (0x00186000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x008e2000)
        libz.so.1 => /lib/libz.so.1 (0x0097f000)
        librt.so.1 => /lib/librt.so.1 (0x00912000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x00c70000)
        libdl.so.2 => /lib/libdl.so.2 (0x00727000)
        libssl.so.1.0.0 => not found
        libcrypto.so.1.0.0 => not found
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00a7e000)
        libm.so.6 => /lib/libm.so.6 (0x008b0000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00a70000)
        libc.so.6 => /lib/libc.so.6 (0x00755000)
        /lib/ld-linux.so.2 (0x00731000)

Tenho certeza de que o openssl está instalado no diretório / usr / local / extra, já que também instalei o apache com perfeição, o que atualmente está funcionando, meu comando de configuração é:

cmake . -LH -DCMAKE_INCLUDE_PATH=/usr/local/extra/include -DCMAKE_LIBRARY_PATH=/usr/local/extra/lib -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/var -DSYSCONFDIR=/usr/local/mysql/etc -DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock -DCURSES_LIBRARY=/usr/local/extra/lib/libncurses.so.5 -DCURSES_INCLUDE_PATH=/usr/local/extra/include -DWITH_SSL=yes -DWITH_ZLIB=system

Ao configurar, também mostra:

-- checking for module 'openssl'
--   found openssl, version 0.9.8e-rhel5
-- Found OpenSSL: /usr/local/extra/lib/libssl.so;/usr/local/extra/lib/libcrypto.so (found version "1..")

Alguém pode me sugerir uma ferramenta para vincular bibliotecas compartilhadas ao binário.

    
por John D 29.11.2011 / 09:32

1 resposta

4

O utilitário PatchELF pode ser útil. Caso contrário, consulte a página ldconfig man e o arquivo: /etc/ld.so.conf

    
por 29.11.2011 / 13:39