Não há nenhuma opção que você possa fornecer para o recurso ldd
e nenhum recurso ldd
para o qual você pode ligar para incluir libnss_dns.so.1
na lista de bibliotecas a serem copiadas. Essa biblioteca é carregada dinamicamente em tempo de execução devido ao conteúdo dos arquivos de configuração que não têm nada a ver com o vinculador dinâmico (a saber, /etc/nsswitch.conf
) e ldd
simplesmente não podem saber quais bibliotecas o programa pode ou não carregar dinamicamente dessa maneira .
Você descobrirá que provavelmente haverá toda uma variedade de outros arquivos que você precisa copiar manualmente para fazer um chroot funcional: tudo de /dev/null
para configuração local, dependendo do que estiver usando. / p>
PS: I don't want to copy it manually because I want my script to be cross architecture.
Infelizmente, obter um chroot
é uma coisa inerentemente não portátil. Ou seja, não há APIs padrão que você possa usar para configurar uma.
(Eu acho que você não quer dizer "arquitetura cruzada" aqui: supondo que você tenha um procedimento de trabalho para configurar um chroot, digamos, SPARC, o mesmo procedimento deve funcionar bem, digamos, x86_64, dado o mesmo sistema operacional.)
Você pode tentar usar algo como debootstrap
para configurar um novo chroot. Pelo menos, ele está ligado a um gerenciador de pacotes, portanto, garante que todas as dependências estejam presentes. Mesmo assim, debootstrap
deixa vários arquivos de sistema (como /etc/fstab
) em um tipo de estado TODO.