Instalar lib's de versões antigas

1. Instalar lib's de versões antigas

Vagner Taschetti
Vag_taschetti

(usa KUbuntu)

Enviado em 27/08/2018 - 08:29h

Vou tentar ser objetivo...
Tenho um programa que preciso rodar no meu desktop, que tem instalado Kubuntu 18.04, e preciso de uma lib "desatualizada" para rodar o programa, porém o sistema acusa vários erros qdo substituo essa lib's... é possível ter mais de uma lib no sistema sendo versões diferentes.

Obrigado...
Vagner Taschetti


  


2. Re: Instalar lib's de versões antigas

Paulo Bonfanti
pbonfanti

(usa Debian)

Enviado em 27/08/2018 - 09:43h

Vag_taschetti escreveu:

Vou tentar ser objetivo...
Tenho um programa que preciso rodar no meu desktop, que tem instalado Kubuntu 18.04, e preciso de uma lib "desatualizada" para rodar o programa, porém o sistema acusa vários erros qdo substituo essa lib's... é possível ter mais de uma lib no sistema sendo versões diferentes.

Obrigado...
Vagner Taschetti


Se ainda estiver dentro da mesma API , você resolve esse problema criando um link simbólico com o nome da biblioteca que você precisa, apontando para a biblioteca que você realmente tem. Alguns exemplos do tipo de link:
lrwxrwxrwx 1 root root 26 Mai 15 2017 libkmediaplayer.so.4 -> libkmediaplayer.so.4.14.16
lrwxrwxrwx 1 root root 19 Set 2 2015 libkmime.so.4 -> libkmime.so.4.14.11
lrwxrwxrwx 1 root root 24 Mai 15 2017 libknewstuff2.so.4 -> libknewstuff2.so.4.14.16
lrwxrwxrwx 1 root root 24 Mai 15 2017 libknewstuff3.so.4 -> libknewstuff3.so.4.14.16
lrwxrwxrwx 1 root root 23 Abr 14 2016 libkonq.so.5abi1 -> libkonq.so.5.14.16.abi1

Mas deixa explicar essa parte, a nomenclatura de bibliotecas tem uma convenção: nome-da-biblioteca.so.MAJOR.MINOR
No caso da primeira linha
nome: libkmediaplayer
Major:4
Minor: 14.16
O conceito é que todas bibliotecas dentro do mesmo número major são compatíveis e devem funcionar com os aplicativos compilados para esse major,
por isso links dentro do mesmo major não são problemas, as versões Minor são geralmente correção de bugs e não quebram a compatibilidade.
Quando grandes mudanças são feitas, é mudado o número Major, e não é seguro rodar aplicações em uma biblioteca de versão Major diferente, você pode ter todo tipo de erro possível principalmente, pois uma biblioteca não funciona sozinha, elas são ligadas uma a outra como uma corrente, o mesmo ocorre com binários, você pode ver todas essas ligações com ldd:

root@betelgeuse:/home/usuario# ldd /usr/lib/libkmediaplayer.so.4.14.16
linux-vdso.so.1 => (0x00007ffe93ba0000)
libkparts.so.4 => /usr/lib/libkparts.so.4 (0x00007fe2b1428000)
libQtGui.so.4 => /usr/lib/x86_64-linux-gnu/libQtGui.so.4 (0x00007fe2b0734000)
libkdeui.so.5 => /usr/lib/libkdeui.so.5 (0x00007fe2b00b9000)
libQtDBus.so.4 => /usr/lib/x86_64-linux-gnu/libQtDBus.so.4 (0x00007fe2afe36000)
libQtCore.so.4 => /usr/lib/x86_64-linux-gnu/libQtCore.so.4 (0x00007fe2af943000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fe2af5c1000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe2af1f7000)
libkio.so.5 => /usr/lib/libkio.so.5 (0x00007fe2aed2e000)
libkdecore.so.5 => /usr/lib/libkdecore.so.5 (0x00007fe2ae84b000)
libQtXml.so.4 => /usr/lib/x86_64-linux-gnu/libQtXml.so.4 (0x00007fe2ae605000)
libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007fe2ae3c2000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe2ae1a5000)
libaudio.so.2 => /usr/lib/x86_64-linux-gnu/libaudio.so.2 (0x00007fe2adf8c000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fe2adc7b000)
libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007fe2ada56000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fe2ad83c000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fe2ad592000)
libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007fe2ad33f000)
libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6 (0x00007fe2ad137000)
libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6 (0x00007fe2acf1d000)
libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007fe2acd0d000)
libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007fe2acb03000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fe2ac8f1000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fe2ac5b7000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe2ac2ae000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fe2ac098000)
libattica.so.0.4 => /usr/lib/x86_64-linux-gnu/libattica.so.0.4 (0x00007fe2abddb000)
libQtNetwork.so.4 => /usr/lib/x86_64-linux-gnu/libQtNetwork.so.4 (0x00007fe2aba86000)
libQtSvg.so.4 => /usr/lib/x86_64-linux-gnu/libQtSvg.so.4 (0x00007fe2ab82d000)
libdbusmenu-qt.so.2 => /usr/lib/x86_64-linux-gnu/libdbusmenu-qt.so.2 (0x00007fe2ab5f9000)
libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007fe2ab3f3000)
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007fe2ab1a7000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe2aafa3000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fe2aad9b000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe2b1889000)
libstreamanalyzer.so.0 => /usr/lib/libstreamanalyzer.so.0 (0x00007fe2aab1e000)
libsolid.so.4 => /usr/lib/libsolid.so.4 (0x00007fe2aa815000)
libacl.so.1 => /lib/x86_64-linux-gnu/libacl.so.1 (0x00007fe2aa60d000)
libattr.so.1 => /lib/x86_64-linux-gnu/libattr.so.1 (0x00007fe2aa408000)
libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007fe2aa1f8000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fe2a9fd6000)
libdlrestrictions.so.1 => /usr/lib/libdlrestrictions.so.1 (0x00007fe2a9dd1000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007fe2a9ba8000)
libXt.so.6 => /usr/lib/x86_64-linux-gnu/libXt.so.6 (0x00007fe2a993f000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fe2a973b000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fe2a94cb000)
libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007fe2a92c3000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fe2a90be000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fe2a8e9c000)
libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007fe2b19ea000)
libstreams.so.0 => /usr/lib/libstreams.so.0 (0x00007fe2a8c64000)
libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2 (0x00007fe2a88a9000)
libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007fe2b19c9000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fe2a86a3000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fe2a8481000)
libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007fe2a81a0000)
libicuuc.so.55 => /usr/lib/x86_64-linux-gnu/libicuuc.so.55 (0x00007fe2a7e0c000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007fe2a7bf8000)
libicudata.so.55 => /usr/lib/x86_64-linux-gnu/libicudata.so.55 (0x00007fe2a6141000)

Ou seja para a libkmediaplayer do meu sistema funcionar direito ela precisa dessa lista de bibliotecas em versão compatível, uma versão muito diferente (Major) ia causar problemas com todas essas outras, por isso muita coisa que funciona em uma versão de distro não funciona na próxima porque o código não foi portado para a nova versão. Outra questão é que binários e bibliotecas costumam ser vinculados ao kernel tambem, por isso acontece de algumas bibliotecas sofrerem upgrade junto com o kernel, observe o ldd com o binário kate por exemplo:

root@betelgeuse:/home/usuario# file /usr/bin/kate
/usr/bin/kate: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=c8b10a6ce9291249e31cd9db754ec63f3b5c2e7c, stripped

root@betelgeuse:/home/usuario# ldd /usr/bin/kate
linux-vdso.so.1 => (0x00007fff8a3b9000)
libKF5TextEditor.so.5 => /usr/lib/x86_64-linux-gnu/libKF5TextEditor.so.5 (0x00007f30fdd24000)
libKF5Parts.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Parts.so.5 (0x00007f30fdacd000)
libKF5KIOWidgets.so.5 => /usr/lib/x86_64-linux-gnu/libKF5KIOWidgets.so.5 (0x00007f30fd7b4000)
libKF5KIOCore.so.5 => /usr/lib/x86_64-linux-gnu/libKF5KIOCore.so.5 (0x00007f30fd459000)
libKF5XmlGui.so.5 => /usr/lib/x86_64-linux-gnu/libKF5XmlGui.so.5 (0x00007f30fd165000)
libKF5TextWidgets.so.5 => /usr/lib/x86_64-linux-gnu/libKF5TextWidgets.so.5 (0x00007f30fcf24000)
libKF5Service.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Service.so.5 (0x00007f30fcc90000)
libKF5Completion.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Completion.so.5 (0x00007f30fca5a000)
libKF5IconThemes.so.5 => /usr/lib/x86_64-linux-gnu/libKF5IconThemes.so.5 (0x00007f30fc81f000)
libKF5ConfigWidgets.so.5 => /usr/lib/x86_64-linux-gnu/libKF5ConfigWidgets.so.5 (0x00007f30fc5ce000)
libKF5I18n.so.5 => /usr/lib/x86_64-linux-gnu/libKF5I18n.so.5 (0x00007f30fc37b000)
libKF5WidgetsAddons.so.5 => /usr/lib/x86_64-linux-gnu/libKF5WidgetsAddons.so.5 (0x00007f30fc03a000)
libKF5ConfigGui.so.5 => /usr/lib/x86_64-linux-gnu/libKF5ConfigGui.so.5 (0x00007f30fbe1a000)
libQt5Xml.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Xml.so.5 (0x00007f30fe545000)
libKF5ConfigCore.so.5 => /usr/lib/x86_64-linux-gnu/libKF5ConfigCore.so.5 (0x00007f30fbbbf000)
libKF5WindowSystem.so.5 => /usr/lib/x86_64-linux-gnu/libKF5WindowSystem.so.5 (0x00007f30fb977000)
libQt5Widgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007f30fb2ea000)
libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007f30fada2000)
libKF5CoreAddons.so.5 => /usr/lib/x86_64-linux-gnu/libKF5CoreAddons.so.5 (0x00007f30fab14000)
libKF5Activities.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Activities.so.5 (0x00007f30fa8e4000)
libKF5DBusAddons.so.5 => /usr/lib/x86_64-linux-gnu/libKF5DBusAddons.so.5 (0x00007f30fa6d4000)
libQt5DBus.so.5 => /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5 (0x00007f30fe4c4000)
libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007f30fa1fe000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f30f9e7c000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f30f9b73000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f30f97a9000)
libQt5Script.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Script.so.5 (0x00007f30f9521000)
libKF5Archive.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Archive.so.5 (0x00007f30f92ee000)
libKF5JobWidgets.so.5 => /usr/lib/x86_64-linux-gnu/libKF5JobWidgets.so.5 (0x00007f30f90c7000)
libQt5PrintSupport.so.5 => /usr/lib/x86_64-linux-gnu/libQt5PrintSupport.so.5 (0x00007f30fe44f000)
libKF5ItemViews.so.5 => /usr/lib/x86_64-linux-gnu/libKF5ItemViews.so.5 (0x00007f30f8e8f000)
libKF5GuiAddons.so.5 => /usr/lib/x86_64-linux-gnu/libKF5GuiAddons.so.5 (0x00007f30f8c75000)
libKF5Codecs.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Codecs.so.5 (0x00007f30f8a3b000)
libKF5SonnetUi.so.5 => /usr/lib/x86_64-linux-gnu/libKF5SonnetUi.so.5 (0x00007f30f8818000)
libKF5SonnetCore.so.5 => /usr/lib/x86_64-linux-gnu/libKF5SonnetCore.so.5 (0x00007f30f85f7000)
libQt5Network.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Network.so.5 (0x00007f30f849d000)
libattr.so.1 => /lib/x86_64-linux-gnu/libattr.so.1 (0x00007f30f8298000)
libacl.so.1 => /lib/x86_64-linux-gnu/libacl.so.1 (0x00007f30f8090000)
libKF5GlobalAccel.so.5 => /usr/lib/x86_64-linux-gnu/libKF5GlobalAccel.so.5 (0x00007f30f7e6f000)
libKF5Attica.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Attica.so.5 (0x00007f30f7bd8000)
libQt5Svg.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Svg.so.5 (0x00007f30fe3f3000)
libKF5Auth.so.5 => /usr/lib/x86_64-linux-gnu/libKF5Auth.so.5 (0x00007f30f79c5000)
libQt5X11Extras.so.5 => /usr/lib/x86_64-linux-gnu/libQt5X11Extras.so.5 (0x00007f30fe3ed000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f30f768b000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f30f7469000)
libxcb-keysyms.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-keysyms.so.1 (0x00007f30f7266000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f30f7049000)
libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f30f6df6000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f30f6ae5000)
libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f30f68c0000)
libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f30f6662000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f30f6448000)
libGL.so.1 => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 (0x00007f30f61d4000)
libfam.so.0 => /usr/lib/libfam.so.0 (0x00007f30f5fcb000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f30f5db5000)
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f30f5b69000)
libicui18n.so.55 => /usr/lib/x86_64-linux-gnu/libicui18n.so.55 (0x00007f30f5707000)
libicuuc.so.55 => /usr/lib/x86_64-linux-gnu/libicuuc.so.55 (0x00007f30f5373000)
libpcre16.so.3 => /usr/lib/x86_64-linux-gnu/libpcre16.so.3 (0x00007f30f510d000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f30f4f09000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f30f4d01000)
/lib64/ld-linux-x86-64.so.2 (0x00007f30fe38f000)
libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f30f4af1000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f30f48cf000)
libproxy.so.1 => /usr/lib/x86_64-linux-gnu/libproxy.so.1 (0x00007f30f46ae000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f30f44aa000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f30f42a4000)
libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f30f409c000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f30f3e2c000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f30f3b82000)
libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f30f395c000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f30f3733000)
libxcb-dri3.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0 (0x00007f30f3530000)
libxcb-present.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-present.so.0 (0x00007f30f332d000)
libxcb-sync.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007f30f3126000)
libxshmfence.so.1 => /usr/lib/x86_64-linux-gnu/libxshmfence.so.1 (0x00007f30f2f23000)
libglapi.so.0 => /usr/lib/x86_64-linux-gnu/libglapi.so.0 (0x00007f30f2cf2000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f30f2ae0000)
libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f30f28dd000)
libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f30f26d7000)
libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f30f24d5000)
libxcb-glx.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007f30f22bc000)
libxcb-dri2.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0 (0x00007f30f20b7000)
libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007f30f1eb1000)
libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007f30f1c9f000)
libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f30f1c1a000)
libicudata.so.55 => /usr/lib/x86_64-linux-gnu/libicudata.so.55 (0x00007f30f0163000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f30eff41000)
libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f30efc60000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f30efa4c000)


Resumindo, se a sua biblioteca exigida (você não disse qual é) é compatível com seu sistema, um link simbólico resolve, simples e rápido, se ela é incompatível , na melhor das hipóteses o aplicativo funciona mal ou não funciona.
No tempo do slackware algumas coisas eu baixava código fonte do aplicativo, de bibliotecas e compilava tudo até dar certo ou totalmente errado, e as vezes quebrava o sistema mesmo. É sim possível ter várias versões de biblioteca, mas não é recomendável.
Você não forneceu nenhum detalhe do software que instalou então fica difícil até sugerir uma abordagem, mas espero ter deixado claro porque você está com esse problema.




3. Especificando o problema

Vagner Taschetti
Vag_taschetti

(usa KUbuntu)

Enviado em 27/08/2018 - 10:50h

Obrigado pela resposta, está tão completa que conseguiria fazer as suas sugestões... Mesmo assim vou explicar meu problema...
Instalei a sistema de emissão de NF-e fornecido pelo Sebrae... O sistema roda sob o Java e é necessário instalar algumas libs, porém a versão do Kubuntu que estou usando 18.04 atualizou todas essas libs e o sistema parou de funcionar... Já tinha feito a substituição das libs em um outra oportunidade porém o sistema fica dando vários erros de lib e dependencias






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts