Eu tenho um grande número de bibliotecas compartilhadas como esta:
libexpat.so.1.6.7 libqquicklayoutsplugin.so libstdc++.so.6.0.24
libexportlib.so.1.0.0 libqsvg.so libsystemd.so.0.19.0
libfontconfig.so.1.10.1 libQt53DAnimation.so.5.11.3 libwidgetsplugin.so
libfreetype.so.6.16.0 libQt53DCore.so.5.11.3 libwindowplugin.so
libgcc_s.so.1 libQt53DExtras.so.5.11.3 libX11.so.6.3.0
libgcrypt.so.20.2.2 libQt53DInput.so.5.11.3 libX11-xcb.so.1.0.0
Estou tentando percorrer todas as minhas bibliotecas compartilhadas e criar links simbólicos soltando o número da versão (se eles tiverem algum número de versão). Por exemplo:
libgcrypt.so.20.2 -> libgcrypt.so.20.2.2
libgcrypt.so.20 -> libgcrypt.so.20.2.2
libgcrypt.so -> libgcrypt.so.20.2.2
Até agora, tentei encontrar todas as bibliotecas compartilhadas com número de versão com:
find . -name '*.so.*'
Mas não consigo descobrir como usar awk
e ln -s
comandos:
find . -name '*.so.*' -exec #awk and ln -s commands goes here# \;
Alguém pode me dar uma dica?
Isso realmente parece ser o trabalho de outra coisa (
ldconfig
?), mas:O comando shell faz um loop sobre os argumentos (os nomes dos arquivos) e, para cada nome de arquivo, remove as extensões para obter os destinos do link (até que o destino não tenha extensão, depois que o
.so
é removido). Remova oecho
para realmente fazer os links.