Installing LM Studio 0.3.1 or 0.3.2 on Ubuntu 24.04 is not as simple as downloading the .AppImage file, chmod it, and executing it. At least not for me! My system is running Ubuntu Studio 24.04 LTS with minimal additional applications installed as of this article and corresponding video. Step through the following guide as I show you exactly what I did in order to get LM Studio 0.3.2 to launch successfully. As an added bonus, I even show you how to add a proper menu item as well. NOTE: Even though I’m using Ubuntu Studio (KDE Plasma), the .desktop file location is the same if you are running a vanilla Gnome based Ubuntu.

Download LM Studio

After downloading the LM Studio AppImage file from https://lmstudio.ai the first thing you must do is make the file executable:

1chmod +x ./LM_Studio-0.3.2.AppImage

At this point, depending on what version you have installed on your system, it may actually load.. However, here is what happend to me when I attempted to execute the LM Studio 0.3.2 AppImage on Ubuntu Studio 24.04 LTS:

1./LM_Studio-0.3.2.AppImage

Note that the error message states something about a “chrome-sandbox” … well, I don’t have Chrome installed. So let’s get that installed and see if it resolves the problem. Nope, that was not it since I still get the same error. When I attempt to run with sudo, I get the following:

1sudo ./LM_Studio-0.3.2.AppImage 
2[sudo] password for bazbill: 
3[0902/164840.305756:FATAL:electron_main_delegate.cc(294)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.
4Trace/breakpoint trap

Oh, ok, there’s a hint - the AppImage didn’t specify the –no-sandbox switch. Well, rather than trying to run as root with that switch, let’s go back and attempt to just run as our local user with that switch:

  1./LM_Studio-0.3.2.AppImage --no-sandbox
  216:49:36.435 › App starting...
  316:49:37.200 › Error while surveying hardware with backend 'llama.cpp-linux-x86_64-nvidia-cuda-avx2', version '1.1.7': LMSCore load lib failed - child process with PID 89308 exited with code 1
  4[CachedFileDataProvider] Watching file at /home/bazbill/.cache/lm-studio/.internal/backend-preferences-v1.json
  516:49:37.405 › Creating config map file at /home/bazbill/.cache/lm-studio/config-presets/config.map.json
  6[CachedFileDataProvider] Watching file at /home/bazbill/.config/LM Studio/settings.json
  7[HttpServerProvider][SettingsFile] Initializing FileData
  8[HttpServerProvider][SettingsFile] File does not exist, writing default data
  9[FileData] Initializing FileData
 10[FileData] File does not exist, writing default data
 11[SystemResourcesProvider] Hardware survey successfully achieved through bundled 'vulkan' liblmstudio.
 12[CachedFileDataProvider] Watching file at /home/bazbill/.cache/lm-studio/.internal/model-data.json
 13[LLMExternalAPIProvider] Creating HTTP server extender
 14[LLMExternalAPIProvider] Registering IPC server
 15[EmbeddingExternalAPIProvider] Creating HTTP server extender
 16[EmbeddingExternalAPIProvider] Registering IPC server
 17[PlatformExternalAPIProvider] Creating HTTP server extender
 18[PlatformExternalAPIProvider] Registering IPC server
 19[SystemExternalAPIProvider] Creating HTTP server extender
 20[SystemExternalAPIProvider] Registering IPC server
 21[DiagnosticsExternalAPIProvider] Creating HTTP server extender
 22[DiagnosticsExternalAPIProvider] Registering IPC server
 23[LMSInternal][Client=LM Studio] Client created.
 24Client with id 'LM Studio' registered.
 25[ConversationsProvider][Indexer] Creating index for path /home/bazbill/.cache/lm-studio/conversations
 26[ConversationsProvider][ConfigFile] Initializing FileData
 27[ConversationsProvider][ConfigFile] File does not exist, writing default data
 2816:49:37.747 › [AppUpdater] Checking for updates... (current state: idle)
 2916:49:37.748 › AppUpdater state changed to checking-for-updates-periodic
 3016:49:37.748 › [AppUpdater] Fetching version info from https://versions-prod.lmstudio.ai/linux/x86/0.3.2
 3116:49:37.905 › [AppUpdater] Version fetch url: https://versions-prod.lmstudio.ai/linux/x86/0.3.2
 3216:49:37.906 › [AppUpdater] Version info response: {
 33  os: 'linux',
 34  arch: 'x86',
 35  version: '0.3.0',
 36  releaseNotes: 'No release notes found.'
 37}
 3816:49:37.907 › [AppUpdater] Current version: 0.3.2, latest version: 0.3.0
 3916:49:37.907 › No update available: 0.3.0 <= 0.3.2
 4016:49:37.907 › AppUpdater state changed to idle
 41[NotepadMinusMinusExternalAPIProvider] Registering IPC server
 42[DeepLinkHandlingExternalAPIProvider] Registering IPC server
 43[AppSettingsInternalAPIProvider] Registering IPC server
 44[ModelIndexInternalAPIProvider] Registering IPC server
 45[ContextMenuInternalAPIProvider] Registering IPC server
 46[ConversationsInternalAPIProvider] Registering IPC server
 47[HttpServerInternalAPIProvider] Registering IPC server
 48[SearchInternalAPIProvider] Registering IPC server
 49[ModelLoadingInternalAPIProvider] Registering IPC server
 50[LLMInstanceStateInternalAPIProvider] Registering IPC server
 51[TransientStorageInternalAPIProvider] Registering IPC server
 52[RuntimeIndexInternalAPIProvider] Registering IPC server
 53[DownloadsAPIProvider] Registering IPC server
 54[UserFilesInternalAPIProvider] Registering IPC server
 55[SystemResourcesInternalAPIProvider] Registering IPC server
 56[SoftwareUpdateInternalAPIProvider] Registering IPC server
 57[BackendDownloadInternalAPIProvider] Registering IPC server
 58[PredictionProcessInternalAPIProvider] Registering IPC server
 59[UserModelDefaultConfigInternalAPIProvider] Registering IPC server
 60[VirtualModelInternalAPIProvider] Registering IPC server
 61[PathOpenerInternalAPIProvider] Registering IPC server
 62[ModelDataInternalAPIProvider] Registering IPC server
 63[FileWatchingProvider] Start syncing file watching provider... Changes may be missed during this process.
 64[FileWatchingProvider][Watcher-0] Sync: Subscribing to /home/bazbill/.cache/lm-studio/.internal
 65[FileWatchingProvider][Watcher-1] Sync: Subscribing to /home/bazbill/.config/LM Studio
 66[FileWatchingProvider][Watcher-2] Sync: Subscribing to /home/bazbill/.cache/lm-studio/extensions/backends
 67[FileWatchingProvider][Watcher-3] Sync: Subscribing to /home/bazbill/.cache/lm-studio/user-files
 68[FileWatchingProvider][Watcher-4] Sync: Subscribing to /home/bazbill/.cache/lm-studio/conversations
 69[FileWatchingProvider] Sync completed.
 70D [LMSExternal] [Client=LM Studio] Client created.
 71[CachedFileDataProvider] Watching file at /home/bazbill/.cache/lm-studio/conversations
 72[CachedFileDataProvider] Error reading file at /home/bazbill/.cache/lm-studio/conversations [Error: EISDIR: illegal operation on a directory, read] {
 73  errno: -21,
 74  code: 'EISDIR',
 75  syscall: 'read'
 76}
 77[CachedFileDataProvider] Watching file at /home/bazbill/.cache/lm-studio/conversations/1725310178474.conversation.json
 78[CachedFileDataProvider] Watching file at /home/bazbill/.cache/lm-studio/.internal/user-concrete-model-default-config/.json
 79[CachedFileDataProvider] File deleted, reading data. Path: /home/bazbill/.cache/lm-studio/conversations
 80[CachedFileDataProvider] File deleted, reading data. Path: /home/bazbill/.cache/lm-studio/conversations/1725310178474.conversation.json
 81[ConversationsProvider][Indexer] Creating index for path /home/bazbill/.cache/lm-studio/conversations/1725310178474.conversation.json
 82[CachedFileDataProvider] Error reading file at /home/bazbill/.cache/lm-studio/conversations [Error: EISDIR: illegal operation on a directory, read] {
 83  errno: -21,
 84  code: 'EISDIR',
 85  syscall: 'read'
 86}
 87[DelayedInitProvider] Running delayed init: ModelIndexProvider
 88[ModelIndexProvider] Directory added: /home/bazbill/.cache/lm-studio/models
 8916:49:38.916 › Checking if LM Studio dev tools exist on the system...
 90[ModelIndexProvider][Op-1] Requested to index directory: /home/bazbill/.cache/lm-studio/models
 91[ModelIndexProvider][Op-1] Starting indexing operation on directory: /home/bazbill/.cache/lm-studio/models
 92[ModelIndexProvider] Directory added: /tmp/.mount_LM_StuFlxTCz/resources/app/.webpack/main/bundled-models
 93[ModelIndexProvider][Op-1] Finished indexing operation on directory: /home/bazbill/.cache/lm-studio/models
 94[ModelIndexProvider][Op-2] Requested to index directory: /tmp/.mount_LM_StuFlxTCz/resources/app/.webpack/main/bundled-models
 95[ModelIndexProvider][Op-2] Starting indexing operation on directory: /tmp/.mount_LM_StuFlxTCz/resources/app/.webpack/main/bundled-models
 96[FileWatchingProvider] Start syncing file watching provider... Changes may be missed during this process.
 97[FileWatchingProvider][Watcher-0] Sync: Unsubscribing from /home/bazbill/.cache/lm-studio/.internal
 9816:49:38.927 › LM Studio dev tools are not present, copying them over to .cache/lm-studio/bin...
 99[FileWatchingProvider][Watcher-2] Sync: Unsubscribing from /home/bazbill/.cache/lm-studio/extensions/backends
100[FileWatchingProvider][Watcher-3] Sync: Unsubscribing from /home/bazbill/.cache/lm-studio/user-files
101[FileWatchingProvider][Watcher-4] Sync: Unsubscribing from /home/bazbill/.cache/lm-studio/conversations
102[FileWatchingProvider][Watcher-5] Sync: Subscribing to /home/bazbill/.cache/lm-studio
103[FileWatchingProvider][Watcher-6] Sync: Subscribing to /tmp/.mount_LM_StuFlxTCz/resources/app/.webpack/main/bundled-models
104[GGUFMetadataProvider] Reading GGUF metadata for /tmp/.mount_LM_StuFlxTCz/resources/app/.webpack/main/bundled-models/nomic-ai/nomic-embed-text-v1.5-GGUF/nomic-embed-text-v1.5.Q4_K_M.gguf took 41ms
105[ModelIndexProvider][Op-2] Finished indexing operation on directory: /tmp/.mount_LM_StuFlxTCz/resources/app/.webpack/main/bundled-models
106[FileWatchingProvider] Sync completed.
107[CachedFileDataProvider] Ignoring file change event due to recent write. Path: /home/bazbill/.cache/lm-studio/conversations/1725310178474.conversation.json
108[ConversationsProvider][Indexer] Creating index for path /home/bazbill/.cache/lm-studio/conversations/1725310178474.conversation.json
109[CachedFileDataProvider] Error reading file at /home/bazbill/.cache/lm-studio/conversations [Error: EISDIR: illegal operation on a directory, read] {
110  errno: -21,
111  code: 'EISDIR',
112  syscall: 'read'
113}

And the user interface launched!

LM Studio 0.3.2

Create .desktop file for LM Studio

That’s great! Now let’s create an icon in our menu that we can use to launch LM Studio.

  • Place the AppImage in a shared location
1sudo mkdir -p /opt/LMStudio
2# The following command copies the file into the /opt/LMstudio folder and makes it executable
3# Additionally, we rename it to remove the version from the filename
4# For future upgrades, perform just this command. Having a consistent
5# binary name for execution means we won't have to keep updateing our .desktop file
6sudo install ./LM_Studio-0.3.2.AppImage /opt/LMStudio/LM_Studio.AppImage
1# Download the icon and place it in a shared location /usr/share/icons for example:
2sudo wget https://lmstudio.ai/blog/img/icon512.png -O /usr/share/icons/lmstudio.png
  • create the .desktop file
 1# cat <<EOF >~/.local/share/applications/lmstudio.desktop
 2
 3cat > ~/.local/share/applications/lmstudio.desktop << "EOF"
 4[Desktop Entry]
 5Name=LM Studio
 6Comment=LM Studio Launcher
 7Exec=/opt/LMStudio/LM_Studio.AppImage --no-sandbox
 8Icon=/usr/share/icons/lmstudio.png
 9Terminal=false
10Type=Application
11Categories=Development;
12EOF

Verify it works

Now, check your menu under Development and try launching LM Studio from your new icon!

LM Studio in Menu

That’s it folks!

Well, that’s it for this article. After getting ROCm installed on my system, I was a bit disappointed that the very first thing I tried to download and run didn’t quite work as expected under Linux. The videos I found online at the time of this post were from early 0.2.x beta releases and they simply ran the .AppImage file without any switches… Hopefully this article helps others who run into a similar issue as I did.

My Gear

Please Note: As an Amazon Associate, I earn from qualifying purchases.

Workstation Build: