The desktop version of Cisco Packet Tracer (CPT) is currently available in three flavours: 32-bit and 64-bit versions for Windows 7, 8.1 and 10 and a 64-bit version for Linux. There is no macOS version so I decided to install the 64-bit Linux version of CPT (7.1.0.0222)1 on Ubuntu 16.04.3 LTS running on VMware Fusion (10.1.1).
Before continuing I should mention that I have limited experience with Ubuntu and Linux in general. I merely enjoy dabbling when I need to and am unsure of the dangers or repercussions – if any – of the procedure detailed below which involves having two versions of the same library installed on one system. In my case, having Ubuntu on a VM solely for the purpose of running CPT presents little risk. Your situation may differ.
I followed the Installation section of these instructions to install CPT.
As part of the CPT installation I opted to have a symbolic link named packettracer – pointing to the file /opt/pt/packettracer – created in /usr/local/bin. /opt/pt is CPT’s default installation directory. However, when running packettracer very little appears to happen apart from being told that CPT is starting:
steve@ubuntu:~$ packettracer Starting Packet Tracer 7.1 steve@ubuntu:~$
Looking at /opt/pt/packettracer we can see that it executes PacketTracer7 located in /opt/pt/bin:
#!/bin/bash echo Starting Packet Tracer 7.1 PTDIR=/opt/pt export LD_LIBRARY_PATH=$PTDIR/lib pushd $PTDIR/bin > /dev/null ./PacketTracer7 "$@" > /dev/null 2>&1 popd > /dev/null
Executing /opt/pt/bin/./PacketTracer7 should give some clues:
steve@ubuntu:~$ /opt/pt/bin/./PacketTracer7 /opt/pt/bin/./PacketTracer7: error while loading shared libraries: libQt5Script.so.5: cannot open shared object file: No such file or directory
There’s an error loading libQt5Script.so.5, but this message is a little misleading. You’ll notice in /opt/pt/packettracer on line 6 that the LD_LIBRARY_PATH environment variable is temporarily set to /opt/pt/lib and tells CPT where to look for shared libraries. Let’s change the command to include setting the value of the LD_LIBRARY_PATH variable:
steve@ubuntu:~$ LD_LIBRARY_PATH=/opt/pt/lib /opt/pt/bin/./PacketTracer7 /opt/pt/bin/./PacketTracer7: error while loading shared libraries: libicui18n.so.52: cannot open shared object file: No such file or directory
There’s still an error loading a shared library, but this time it’s libicui18n.so.52. A quick search for libicui18n gives the following:
steve@ubuntu:~$ sudo updatedb; locate libicui18n /usr/lib/x86_64-linux-gnu/libicui18n.so.55 /usr/lib/x86_64-linux-gnu/libicui18n.so.55.1
It appears the correct library is installed, but CPT requires an older version – 52 instead of 55. A Debian package containing the older version of libicui18n is available at http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu52_52.1-3ubuntu0.8_amd64.deb.
To download the package type:
steve@ubuntu:~$ wget http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu52_52.1-3ubuntu0.8_amd64.deb
To install this package type:
steve@ubuntu:~$ sudo dpkg -i libicu52_52.1-3ubuntu0.8_amd64.deb
sudo updatedb; locate libicui18n now lists the following:
steve@ubuntu:~$ sudo updatedb; locate libicui18n /usr/lib/x86_64-linux-gnu/libicui18n.so.52 /usr/lib/x86_64-linux-gnu/libicui18n.so.52.1 /usr/lib/x86_64-linux-gnu/libicui18n.so.55 /usr/lib/x86_64-linux-gnu/libicui18n.so.55.1
CPT should now start:
steve@ubuntu:~$ packettracer Starting Packet Tracer 7.1
In summary, the Linux version of CPT (7.1.0.0222)1 requires an older version of the libicui18n library not available in Ubuntu 16.04.3 LTS. CPT (7.1.0.0222)1 will run on Ubuntu 16.04.3 LTS providing the older libicui18n.so.52 library is installed alongside the newer one. As a side note, I found that CPT (7.1.0.0222)1 does run without issue on Ubuntu 14.04.5 LTS where the required older version of the library is installed as default.
1 CPT was updated to version 7.1.1 on 8th December 2017, but will still not run unless the older libicui18n.so.52 is installed.