compilação rtmpdump sem raiz, librtmp.so.1 = não encontrado

1

Então, eu compilei com sucesso para ~/.local editando a opção prefix no makefile para prefix=~/.local o programa compila bem, e fiz o mesmo com librtmp . Ao executar ldd no binário, recebo a seguinte saída:

ldd rtmpdump-ksv/rtmpdump
linux-vdso.so.1 =>  (0x00007ffedb4d2000)
librtmp.so.1 => not found
libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007fc7489a5000)
libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fc7485ac000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fc748395000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc748113000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc747d87000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fc747b83000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc748c15000)

Eu tentei copiar ibrtmp.so.1 e librtmp.so para todos os diretórios em ~/.local

    
por pyCtrl_ 06.04.2015 / 11:54

2 respostas

1

Os programas não pesquisam bibliotecas no mesmo diretório que o executável por padrão. A organização de diretório tradicional sob Unix possui executáveis em diretórios chamados …/bin e bibliotecas em diretórios chamados …/lib .

Se você definir prefix=~/.local ao compilar o software, terminará instalando os executáveis em ~/.local/bin e as bibliotecas em ~/.local/lib . Para informar ao sistema sobre essas bibliotecas, adicione as seguintes linhas ao seu ~/.profile ou organize as variáveis de ambiente PATH e LD_LIBRARY_PATH .

PATH=$PATH:~/.local/bin
export LD_LIBRARY_PATH=~/.local/lib

No OSX, use DYLD_LIBRARY_PATH em vez de LD_LIBRARY_PATH .

    
por 07.04.2015 / 03:01
1

Qual é a sua distribuição? Sua distribuição tem rtmpdump disponível como um pacote binário? O Debian faz, por exemplo, e, portanto, o Ubuntu e o Mint deveriam, por exemplo. Se sim, por que você não está usando? Em qualquer caso,

apt-file search librtmp.so

librtmp-dev: /usr/lib/x86_64-linux-gnu/librtmp.so
librtmp0: /usr/lib/x86_64-linux-gnu/librtmp.so.0
librtmp1: /usr/lib/x86_64-linux-gnu/librtmp.so.1

Então, tente instalar librtmp-dev , se estiver disponível. Isso pode satisfazer sua dependência ausente.

Em geral, verifique primeiro os pacotes binários existentes na sua distribuição antes de compilar e instalar o software localmente.

    
por 06.04.2015 / 12:10