GrammaTech / ddisasm

A fast and accurate disassembler
https://grammatech.github.io/ddisasm/
GNU Affero General Public License v3.0
647 stars 59 forks source link

fail to install ddisasm on Ubuntu 18.04 #17

Closed ZhangZhuoSJTU closed 3 years ago

ZhangZhuoSJTU commented 3 years ago

Hi, I follow the README to install pre-built ddisasm on my ubuntu 18.04 machine.

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.5 LTS
Release:        18.04
Codename:       bionic

I successfully installed ddisasm following the guidance.

$ sudo add-apt-repository ppa:mhier/libboost-latest
$ echo "deb [trusted=yes] https://grammatech.github.io/gtirb/pkgs/bionic ./" | sudo tee -a /etc/apt/sources.list.d/gtirb.list
$ sudo apt-get update
$ sudo apt-get install ddisasm

However, when I try to executable ddisasm, the following error message shows out.

$ ddisasm
ddisasm: error while loading shared libraries: libgtirb.so.1.8.7: cannot open shared object file: No such file or directory

I then check the dynamic library required by ddisasm:

 $ ldd /usr/bin/ddisasm
        linux-vdso.so.1 (0x00007ffcadb6e000)
        libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1 (0x00007ff729950000)
        libgtirb_pprinter.so.1 => /usr/lib/libgtirb_pprinter.so.1 (0x00007ff7296d0000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff7294b1000)
        libboost_filesystem.so.1.67.0 => /usr/lib/libboost_filesystem.so.1.67.0 (0x00007ff729296000)
        libboost_program_options.so.1.67.0 => /usr/lib/libboost_program_options.so.1.67.0 (0x00007ff729013000)
        libboost_system.so.1.67.0 => /usr/lib/libboost_system.so.1.67.0 (0x00007ff728e0e000)
        libgtirb.so.1.8.7 => not found
        libcapstone.so.5 => /usr/lib/libcapstone.so.5 (0x00007ff7283e8000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007ff72805f000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff727cc1000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ff727aa9000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff7276b8000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff7274b4000)
        libgtirb.so.1.9.0 => /usr/lib/libgtirb.so.1.9.0 (0x00007ff727219000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ff72b016000)
        libprotobuf.so.10 => /usr/lib/x86_64-linux-gnu/libprotobuf.so.10 (0x00007ff726dc0000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ff726ba3000)

It seems there are two libgtirbs (libgtirb.so.1.8.7 and libgtirb.so.1.9.0), among which libgtirb.so.1.8.7 is missed.

eschulte commented 3 years ago

Thanks for the heads up @ZhangZhuoSJTU!

I'm rebuilding consistent packages for ddisasm and gtirb-pprinter and I'll update/close this thread once they're published. Re-running the steps above using these new packages should fix this problem, but please reopen this thread if the problem persists.

eschulte commented 3 years ago

Okay, it took a while to get the whole chain of dependencies rebuilt and through CI, but the packages are all updated now and should be consistent.

Thanks again for the report and please let us know if you run into any more issues.