# Issue while using PackageCompiler -

**URL:** <https://discourse.julialang.org/t/issue-while-using-packagecompiler/123384>\
**Category:** General Usage\
**Tags:** question\
**Created:** [December 3, 2024, 4:58am UTC](https://discourse.julialang.org/t/issue-while-using-packagecompiler/123384 "2024-12-03T04:58:56Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sholai](https://avatars.discourse-cdn.com/v4/letter/s/77aa72/32.png) [@Sholai](https://discourse.julialang.org/u/Sholai)\
**Post date:** [December 3, 2024, 4:58am UTC](https://discourse.julialang.org/t/issue-while-using-packagecompiler/123384/1 "2024-12-03T04:58:56Z")

</div>

Hi Guys,  
I am trying to use PackageCompiler to create sys image of certain packages, so that the compile time is saved everytime I enter the project. the creation and usage of .so is successful as long as I am using the .so in my machine.  
Problem arises if I port it to some other user.

Problem statement:  
Its a complex framework we have developed with Julia.  
And the Base.active\_project() - contains the Project.toml path which is part of a git repo.  
- each user needs to extract this repo under their user name.  
- so the repo path contains “username” in it.  
ex: /repo/user1/framework/julia/  
I am unable to change the active project path as if I change it, the dependencies would lose its path.

Now, when I create the sysimage - all the dependent libraries path is having a reference to my user name.  
If I want to port this .so to someother user, it cribs, because in their user repo path, its still looking for my username.

Could you please share some light on how to make it portable - to avoid dependencies with the pathname in the .so

---

<div class="post-metadata">

**Author:** ![Sholai](https://avatars.discourse-cdn.com/v4/letter/s/77aa72/32.png) [@Sholai](https://discourse.julialang.org/u/Sholai)\
**Post date:** [December 3, 2024, 5:55am UTC](https://discourse.julialang.org/t/issue-while-using-packagecompiler/123384/3 "2024-12-03T05:55:01Z")

</div>

Hello James,

Thanks for the response.  
as of now, in my framework, the ENV[“JULIA\_DEPOT\_PATH”] - this is the git repo path which will have the username for each user who clones the git repo

and the Base.active\_project() - This has the Project.toml file path - this as well contains the similar git repo path.

Both of these paths are not modifiable as it tightly coupled with lot of dependent project files.

The framework is setup in a such way.  
could you please be bit more specific is there any way I can try something different?

---

<div class="post-metadata">

**Author:** ![Sholai](https://avatars.discourse-cdn.com/v4/letter/s/77aa72/32.png) [@Sholai](https://discourse.julialang.org/u/Sholai)\
**Post date:** [December 3, 2024, 2:08pm UTC](https://discourse.julialang.org/t/issue-while-using-packagecompiler/123384/5 "2024-12-03T14:08:04Z")

</div>

> <https://github.com/JuliaLang/julia/issues/42296>
>
> It is starting to get quite common to create custom sysimages using PackageCompi…ler as a way of distributing Julia code to other parties. Reasons for this can be to have improved latency over the default packages but also to not have to ship the raw source code of potentially proprietary code. 
> 
> A slight annoyance that comes with sysimages is that even if you get a sysimage that is filled with nice packages, you still need to have a project active that contains the packages in the sysimage to load them. For example, even if you put Plots in a sysimage and sent it to someone, \`using Plots\` in the REPL will error until that other person either does an \`pkg\> add Plots\` (to add Plots to the project) or gets sent a custom Project.toml. The reason for this is that the first step in package loading, Julia maps the package name to a UUID but this fails unless it finds a package with the name in a project in the environment stack.
> 
> A possible remedy to this would be to extend \`LOAD\_PATH\` to also be able to have a \`@sysimage\` entry by default.
> The semantics of that would be that if a package is not identified from any of the other entries, we look in the sysimage for packages with a certain name and identify it to that UUID.
> 
> Another option is to have a toggle in package loading that enables packages being loaded from the sysimage as described above (so not change to \`LOAD\_PATH\`). PackageCompiler could toggle that for custom sysimages and in the example above, you could immediately load Plots just by loading Julia with the sysimage.

In this forum similar issue has been discussed! Not sure if a solution is available though.
