Installing Rider on External SSD

I'm trying to offload programs on my MacBook to my external SSD, due to the size of JetBrains products (Rider & PHPStorm) I would like to install it on my SSD which I use for my projects. When I move the installation folder in JetBrains Toolbox to my external SSD and reinstall Rider, it gave me a big big error on startup. It's very long, so I hope you don't mind scrolling. Can anyone help me make the software more portable?

com.intellij.diagnostic.PluginException: Fatal error initializing 'com.jetbrains.rider.rdctShared.ideaInterop.keymaps.RdctRiderSettingsUpdater' [Plugin: com.jetbrains.rider.rdct-shared]
    at com.intellij.serviceContainer.ComponentManagerImpl.registerComponents(ComponentManagerImpl.kt:392)
    at com.intellij.serviceContainer.ComponentManagerImpl.access$registerComponents(ComponentManagerImpl.kt:73)
    at com.intellij.serviceContainer.ComponentManagerImpl.registerComponents(ComponentManagerImpl.kt:258)
    at com.intellij.openapi.client.ClientAwareComponentManager.registerComponents(ClientAwareComponentManager.kt:48)
    at com.intellij.ide.bootstrap.AppPreInitKt$initServiceContainer$2.invokeSuspend(appPreInit.kt:41)
    at com.intellij.ide.bootstrap.AppPreInitKt$initServiceContainer$2.invoke(appPreInit.kt)
    at com.intellij.ide.bootstrap.AppPreInitKt$initServiceContainer$2.invoke(appPreInit.kt)
    at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
    at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:167)
    at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
    at com.intellij.diagnostic.TracerKt.subtask(tracer.kt:45)
    at com.intellij.diagnostic.TracerKt.subtask$default(tracer.kt:34)
    at com.intellij.ide.bootstrap.AppPreInitKt.initServiceContainer(appPreInit.kt:40)
    at com.intellij.ide.bootstrap.AppPreInitKt$initServiceContainer$1.invokeSuspend(appPreInit.kt)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.UndispatchedCoroutine.afterResume(CoroutineContext.kt:270)
    at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
Caused by: java.io.UncheckedIOException: java.io.IOException: /Volumes/VAULT/Applications/Rider.app/Contents/plugins/rider-rdct-shared/lib/._rider-rdct-shared.jar
    at com.intellij.util.lang.ZipResourceFile.<init>(ZipResourceFile.java:40)
    at com.intellij.util.lang.PathClassLoader.lambda$static$1(PathClassLoader.java:32)
    at com.intellij.util.lang.ClassPath.createLoader(ClassPath.java:395)
    at com.intellij.util.lang.ClassPath.getLoaderSlowPath(ClassPath.java:347)
    at com.intellij.util.lang.ClassPath.findClassWithoutCache(ClassPath.java:222)
    at com.intellij.util.lang.ClassPath.findClass(ClassPath.java:210)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.kt:326)
    at com.intellij.ide.plugins.cl.PluginClassLoader.tryLoadingClass(PluginClassLoader.kt:178)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.kt:151)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
    at java.base/java.lang.ClassLoader.defineClass2(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1108)
    at com.intellij.util.lang.UrlClassLoader.consumeClassData(UrlClassLoader.java:268)
    at com.intellij.util.lang.ZipResourceFile.findClass(ZipResourceFile.java:113)
    at com.intellij.util.lang.JarLoader.findClass(JarLoader.java:58)
    at com.intellij.util.lang.ClassPath.findClassInLoader(ClassPath.java:238)
    at com.intellij.util.lang.ClassPath.findClassWithoutCache(ClassPath.java:227)
    at com.intellij.util.lang.ClassPath.findClass(ClassPath.java:210)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.kt:326)
    at com.intellij.ide.plugins.cl.PluginClassLoader.tryLoadingClass(PluginClassLoader.kt:178)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.kt:151)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
    at com.intellij.serviceContainer.ComponentManagerImpl.registerComponent(ComponentManagerImpl.kt:513)
    at com.intellij.serviceContainer.ComponentManagerImpl.registerComponents(ComponentManagerImpl.kt:372)
    ... 22 more
Caused by: java.io.IOException: /Volumes/VAULT/Applications/Rider.app/Contents/plugins/rider-rdct-shared/lib/._rider-rdct-shared.jar
    at com.intellij.util.lang.ImmutableZipFile.load(ImmutableZipFile.java:79)
    at com.intellij.util.lang.ImmutableZipFile.load(ImmutableZipFile.java:49)
    at com.intellij.idea.ZipFilePoolImpl.loadZipFile(ZipFilePoolImpl.kt:31)
    at com.intellij.idea.ZipFilePoolImpl.loadZipFile(ZipFilePoolImpl.kt:17)
    at com.intellij.util.lang.ZipResourceFile.<init>(ZipResourceFile.java:35)
    ... 45 more
Caused by: java.util.zip.ZipException: Archive is not a ZIP archive
    at com.intellij.util.lang.ImmutableZipFile.populateFromCentralDirectory(ImmutableZipFile.java:204)
    at com.intellij.util.lang.ImmutableZipFile.load(ImmutableZipFile.java:76)
    ... 49 more
0
3 comments

Hello Tazio2003,

If you want to make your installation portable, you'll need to move your configuration and plugins to the external SSD and change your IDE properties to reflect this.

You will need to move at least two directories to the SSD: configuration (idea.config.path) and plugins (idea.plugins.path). You can find the default path to each directory in the Directories used by the IDE article.

Once you move both directories, you need to change your IDE properties to point idea.config.path and idea.plugins.path to new locations.

 

 

 

 

0

Hey Kirill Filin ,

Thanks for your reply! I appreciate your help. I've copied my Rider configuration + plugins to the external SSD. But i couldn't find the option to change the configuration & plugin path. Is there an macOS version of your given URL?

0

Tazio2003,

You can change the default IDE directories the same way across all operating systems. 

Essentially, you to add the idea.config.path and idea.plugins.path variables to idea.properties that will point to new config and plugins location.

One way to achieve this is to use environment variables. You can:  

  1. Create an environment variable RIDER_PROPERTIES, point it to some location where you would like to store your idea.properties file

  2. Create an empty idea.properties in location from previous step

  3. Add config and plugin variables to this file and point them to their new location. Your idea.properties might look something like this:

idea.config.path=/path-to-ssd-mount/rider/config
idea.plugins.path=/path-to-ssd-mount/rider/plugins

  4. Restart the IDE for this change to take effect

You can do the same with other IDEs (like PHPStorm) as well, but make sure you are using appropriate environment variable names. You can find all environment variable names in “Changing the location of idea.properties file” section of the article linked earlier.

Note that if in addition to the Rider installation itself, you also want to move temporary files (like caches and logs) to the external SSD, you can also set new idea.log.path and idea.system.path. In this case, you do not need to move any existing directories, just make sure that idea.log.path and idea.system.path point to new empty directories on your SSD. You can find a more detailed description for these directories and their default location in the Directories used by the IDE article.

0

Please sign in to leave a comment.