#7 - Installing Cisco Packet Tracer 9.0 on Linux Mint 22.3 without XDG, MIME, and icon errors

Table of Contents
- Assumptions
- The normal Cisco installation method
- The problem
- Root cause
- Clean installation procedure
- 1. Prepare the local user directories
- 2. Create a local gnome icon theme file
- 3. Fix ownership before installing
- 4. Copy the installer to /tmp
- 5. Install Packet Tracer with XDG variables set correctly
- 6. Fix ownership after installation
- 7. Final validation
- Do I need to run dpkg-reconfigure packettracer?
- Cleanup
- Final notes
Recently, I installed Cisco Packet Tracer 9.0 on Linux Mint using the official Ubuntu .deb package provided by Cisco Networking Academy.
Cisco provides Packet Tracer through the NetAcad Resource Hub, where the installer is available for Windows, Linux, and macOS:
https://www.netacad.com/resources/lab-downloadsCisco also provides a simple PDF with the official download and installation instructions:
https://www.netacad.com/skillsforall/files/Cisco_Packet_Tracer_Download_and_Installation_Instructions.pdfThe official process is simple: download the .deb package, open a terminal, go to the folder where the file was downloaded, and install it with apt.
That method is correct. However, on my Linux Mint system, I noticed that the Packet Tracer installer may produce some annoying desktop integration errors related to XDG paths, MIME registration, icon cache generation, and file ownership under the user profile.
This post documents what happened, why it happened, and the clean installation procedure that worked for me.
Assumptions
In this post, I will use the following example user:
bwotecSo the home directory used in the commands will be:
/home/bwotecIf your Linux username is different, replace bwotec with your own username.
You can check your username with:
whoamiYou can also check your home directory with:
echo "$HOME"In this example, I assume the Packet Tracer installer was downloaded to:
/home/bwotec/Downloads/CiscoPacketTracer_900_Ubuntu_64bit.debor, using the home shortcut:
~/Downloads/CiscoPacketTracer_900_Ubuntu_64bit.debThe normal Cisco installation method
The normal installation method would be:
cd ~/Downloads
sudo apt install ./CiscoPacketTracer_900_Ubuntu_64bit.debThe ./ is important because it tells apt to install a local .deb file from the current directory.
Alternatively, you can use the full path:
sudo apt install /home/bwotec/Downloads/CiscoPacketTracer_900_Ubuntu_64bit.debIn many Ubuntu-like environments, this is enough.
The installer should:
Install Packet Tracer
Ask for the EULA
Create desktop launchers
Register MIME types
Register icons
Update icon caches
Allow Packet Tracer to start from the menu or terminalHowever, on my Linux Mint system, the application installed, but the post-installation scripts produced desktop integration errors.
The problem
During installation, I saw messages like:
Directory '/home/bwotec/.local/share/mime/packages' does not exist!
xdg-icon-resource: No writable system icon directory found.
gtk-update-icon-cache: No theme index file.
ln: failed to create symbolic link '/home/bwotec/.local/share/icons/gnome/index.theme': File existsLater, when launching Packet Tracer, I also saw a permission error similar to this:
mkdir: cannot create directory ‘/home/bwotec/.local/.packettracer/lib’: Permission deniedSo Packet Tracer itself was installed, but some user-level desktop integration files were created incorrectly.
Root cause
The problem was not Linux Mint itself.
The issue came from how the Cisco Packet Tracer .deb package handles some post-installation tasks.
The package runs its installation scripts with root privileges, but those scripts also try to modify files inside the normal user’s home directory:
/home/bwotec/.localThe installer detects the non-root user correctly:
Non-root user: bwotec
Non-root home: /home/bwotecHowever, because the package scripts run through sudo, some files under ~/.local may be created as root.
That can later cause permission problems when Packet Tracer tries to write to:
/home/bwotec/.local/.packettracerAnother issue is related to the local icon theme path:
~/.local/share/icons/gnome/index.themeThe Cisco script may expect this file to point to:
/usr/share/icons/gnome/index.themeBut on my Linux Mint system, that file did not exist.
My system had icon themes such as:
/usr/share/icons/hicolor
/usr/share/icons/Adwaita
/usr/share/icons/Mint-Y
/usr/share/icons/Mint-Y-Orangebut not:
/usr/share/icons/gnome/index.themeBecause of that, the installer could create or reuse a broken gnome/index.theme link, and then gtk-update-icon-cache would complain:
gtk-update-icon-cache: No theme index file.Clean installation procedure
This procedure prepares the expected user-level folders before installing Packet Tracer.
The goal is to avoid the XDG, MIME, icon cache, and permission errors during the first installation.
Again, replace bwotec with your actual Linux username.
1. Prepare the local user directories
Create the user-level directories expected by the installer:
mkdir -p ~/.local/share/mime/packages
mkdir -p ~/.local/share/applications
mkdir -p ~/.local/share/icons
mkdir -p ~/.local/share/icons/gnomeThese directories are inside your own home folder.
They do not modify system-wide directories like:
/usr/share/icons
/usr/share/applications
/usr/share/mime2. Create a local gnome icon theme file
This avoids the broken symlink problem related to:
/usr/share/icons/gnome/index.themeCreate a local index.theme file:
cat > ~/.local/share/icons/gnome/index.theme <<'EOF'
[Icon Theme]
Name=gnome
Comment=Local compatibility icon theme for Cisco Packet Tracer
Directories=48x48/apps,48x48/mimetypes
[48x48/apps]
Size=48
Context=Applications
Type=Fixed
[48x48/mimetypes]
Size=48
Context=MimeTypes
Type=Fixed
EOFThis file is created only inside the user profile:
/home/bwotec/.local/share/icons/gnome/index.themeIt does not change any system theme.
This was the key step that prevented the installer from relying on a broken symlink to a non-existent GNOME icon theme file.
3. Fix ownership before installing
Before installing, make sure your ~/.local directory belongs to your user:
sudo chown -R bwotec:bwotec ~/.localRemember to replace bwotec with your own username.
You can verify that no files inside ~/.local are owned by root:
find ~/.local -maxdepth 6 -user root -ls 2>/dev/nullThe expected result is no output.
4. Copy the installer to /tmp
This step is optional, but I recommend it.
If the .deb file is installed directly from ~/Downloads, apt may show a warning about the _apt user not being able to access the file.
To avoid that, copy the installer to /tmp and make it readable:
cp ~/Downloads/CiscoPacketTracer_900_Ubuntu_64bit.deb /tmp/
chmod 644 /tmp/CiscoPacketTracer_900_Ubuntu_64bit.deb5. Install Packet Tracer with XDG variables set correctly
Now install the package using apt, but explicitly set the XDG variables so the installer knows where the user-level application, MIME, and icon data should live:
sudo env \
XDG_DATA_HOME=/home/bwotec/.local/share \
XDG_DATA_DIRS=/home/bwotec/.local/share:/usr/local/share:/usr/share \
HOME=/home/bwotec \
apt install /tmp/CiscoPacketTracer_900_Ubuntu_64bit.debAgain, replace bwotec with your own username.
When the installer asks for the EULA:
1) Show EULA text again
2) Accept EULA
3) Decline EULA
#?choose:
2With the local folders prepared and the gnome/index.theme file created, the installation should complete with messages like:
gtk-update-icon-cache: Cache file created successfully.In my final installation, the previous errors disappeared.
I no longer saw:
Directory ... mime/packages does not exist
Note that '/home/bwotec/.local/share' is not in the search path
xdg-icon-resource: No writable system icon directory found
gtk-update-icon-cache: No theme index file
ln: failed to create symbolic link ... File exists6. Fix ownership after installation
Even with the cleaner installation method, the Cisco installer may still create files inside ~/.local as root.
So after installation, fix ownership again:
sudo chown -R bwotec:bwotec ~/.local/share/applications ~/.local/share/icons ~/.local/share/mime ~/.local/.packettracerReplace bwotec with your own username.
Then check again:
find ~/.local -maxdepth 6 -user root -ls 2>/dev/nullThe expected result is no output.
If something unrelated appears, inspect it before deleting anything.
In my case, I once found this file owned by root:
/home/bwotec/.local/share/lesshstThat file was not related to Packet Tracer. It was probably created by running commands with sudo while forcing HOME=/home/bwotec.
I fixed it with:
sudo chown bwotec:bwotec ~/.local/share/lesshst7. Final validation
Run:
sudo dpkg --audit
apt list --installed | grep packettracer
which packettracer
find ~/.local -maxdepth 6 -user root -ls 2>/dev/null
packettracerExpected results:
sudo dpkg --auditshould return nothing.
This command:
apt list --installed | grep packettracershould show something like:
packettracer/now 9.0 amd64 [installed,local]This command:
which packettracershould return:
/usr/local/bin/packettracerThe find command should return nothing, meaning there are no root-owned files left under ~/.local.
Finally, Packet Tracer should start normally:
Cisco_Packet_Tracer_9.0.0:...:/opt/pt/packettracer.AppImageDo I need to run dpkg-reconfigure packettracer?
In my final clean installation, I did not need it.
I used dpkg-reconfigure packettracer only during troubleshooting to test the package configuration scripts after fixing the icon theme issue.
The command would be:
sudo env \
XDG_DATA_HOME=/home/bwotec/.local/share \
XDG_DATA_DIRS=/home/bwotec/.local/share:/usr/local/share:/usr/share \
HOME=/home/bwotec \
dpkg-reconfigure packettracerHowever, after preparing the directories and creating the local gnome/index.theme before installation, the normal apt install completed cleanly.
So, for a fresh installation, dpkg-reconfigure should not be necessary.
Cleanup
After installation, the temporary installer can be removed:
rm -f /tmp/CiscoPacketTracer_900_Ubuntu_64bit.debThe copy in Downloads can also be removed if you do not want to keep it:
rm -i ~/Downloads/CiscoPacketTracer_900_Ubuntu_64bit.debI used rm -i here so the shell asks for confirmation before deleting the original downloaded installer.
Final notes
The official Cisco installation method is correct for a normal Ubuntu/Linux environment. Cisco’s own installation guide shows the Linux installation using a local .deb package and apt.
The issue in my case was not the apt install command itself. The problem was the Packet Tracer post-installation script behavior on Linux Mint.
The script tries to integrate the application with the desktop environment by registering MIME types, icons, and desktop launchers, but it does this in a fragile way:
It runs as root.
It writes into the normal user's ~/.local directory.
It expects a gnome icon theme path that does not exist on my Linux Mint installation.Preparing the expected user directories, creating a valid local gnome/index.theme, setting the correct XDG variables during installation, and fixing ownership afterward resulted in a clean and working Packet Tracer 9.0 installation on Linux Mint.
The application installed correctly, dpkg reported no package issues, the packettracer command was available, and no root-owned files remained inside my ~/.local directory.
