[10757] signal 11 (1): Segmentation fault

I mean, they clearly are if you’re getting a segfault, no?

I don’t think that’s the issue because we use the FreeBSD 14.2 SDK for building the official libraries, that’s not too much different from what you have. But the libraries may have been built with slightly different options, leading to different expectations between julia’s libraries and your system’s libraries, which leads to the errors you’re observing.

As a general remark, when you have libraries coming from different sources, just keep them separate and live happy, if you decide to mix them up you must be ready to deal with the breakage yourself.

2 Likes

I don’t know I’m the one asking, do you know ?

I don’t understand, those libraries were build to be exactly were they are right now. why should i deal with it myself ? if you don’t want to help just don’t no one is forcing you… but don’t expect me to just say OK or not asking question. I want to understand so this way I will not comeback for the same error. It benefit everyone when support is given thoroughly and that the user seek understanding. I mean it’s the mentality of the free and open sources community. If you know where I should look point me there, but don’t say do it be happy or other wise shut up.

may have been … but we not sure so I return to my previous question, how to we know for sure.

Thank you for your support much appreciated

1 Like

Because this isn’t a supported install pattern. Full stop. I can’t imagine it working out well for any non-trivial program.

There are so many ways this can (and regularly does!) go sideways, it’s not particularly interesting or generally useful to debug it further.

2 Likes

Those file are meant to go where they are so yes it is supported pattern. You and other don’t want to give support for this because for you :

Your choice. like I said I’m not forcing no one.
Thanks for you support always appreciated.

The Julia archive is not meant to be merged into the global filesystem hierarchy, even if its internal structure largely mirrors the filesystem hierarchy standard. This is similar to several of the more recent approaches to distributing packages on Unix-like systems, such as Flatpak, Snap, and AppImage. The shared global directories are mainly used by the OS-native package manager, but it takes a lot of coordination between versions and build options to make it work, which is one reason why packages that are distributed in a more direct, less top-down curated way tend to be self-contained and isolated.

Perhaps this paradigm is not yet as widespread in the FreeBSD world as on Linux, so I can sympathize if this feels unusual. However, this is how the Julia archive is intended to be used.

8 Likes

No, they’re not. In the Julia installation they’re in $prefix/lib/julia instead of $prefix/lib precisely not to mess up with other libraries. If you decide to move them elsewhere you then must deal with the consequences of your decision

3 Likes

This folder is supposed to go in /usr/local/lib/julia. Its suppose to be a package for FreeBSD. So normally that package should be in port or in bin. that’s why it has the same structure than the system it goes in.

And if you assert that its not you have to prove it and explain it so I can understand unless your are not capable of it because you’re limited, I can understand that.

but it’s NOT why the folder structure is the way it is, as stated before:

1 Like

Again, if its not than don’t just say its not give explanation or don’t answer at all. til then I will take for granted that nobody know what he is talking about. Again it’s a tar.gz expressly dedicated to FreeBSD so it must be compatible other wise it make no sense.

I am not an expert in any of this myself, but maybe this can be an advantage here…

  1. The people that took their time to answer you do know what they are talking about. So this is not an issue of whether what they say is true or not but an issue of you understanding why.

  2. My (maybe incomplete or even wrong) understanding of this is the following:

  • Any kind of non-trivial software depends on other libraries and usually all of them come in a myriad of different versions / compiled with different flags etc.
  • Often more than one program depends on the same library, but in 99 % of the cases it’s not exactly the same version or way it was compiled.
  • If these mostly the same but not really equal libraries end up in the same directory this causes issues like you witness here.
  • To avoid that, common package managers have to do a lot of orchestration to make it work.
  • A different approach to make it work is simply to not put all these libraries in the same place so that each program has a separate set of dependencies that does not interfere with another program’s deps.

Could it - in theory - be made to work for julia according to first way?? Probably.

But the easier and increasingly common method is the second way - keeping dependencies separate.

I hope this helps…

4 Likes

It may be a fun exercise to re-iterate that it’s a “supported pattern” even when the people most involved with packaging binaries for Julia tell you the opposite.

It comes across quite like insisting that the mini-fridge you bought can be used as a microwave, and then not accepting the manufacturer’s explanation that the fridge actually isn’t intended to be used as a microwave because they don’t give a more detailed answer to “why exactly, it is microwave-shaped, isn’t it?”

I do get your desire to get to the bottom of this and I’m not a big fan of “argument by authority”, but please be aware that if someone well known in the Julia community for in-depth knowledge about how Julia packages it’s binaries tells you that it’s not supposed to work, the reply “you don’t know what you’re talking about” isn’t very constructive and doesn’t put you in the best light :wink:

11 Likes

Hi, first I don’t know who I’m talking too, I don’t know who you are and who the previous person before you are neither except that I know that a moderator of the forum has participated in this thread which tell absolutely nothing about is expertise on the topic and his capability to assist the issue correctly. The "spotlight "can be on me, meaning, you can have the opinion you want about me, it’s irrelevant and I don’t care. The problem is that for sure all the people that answered this request for support t’ill now seemingly don’t know what they are talking about, even you because they can only give authoritative direction an adhominen argument. As for you example it is totally exaggerated, out of context and insulting. comment like yours only participate to deviate from the main issue and doesn’t help. I still don’t have any satisfying explanation to my question and no solution has been found because of that. I’m not the one who is in fault for that. A Message for you and everyone: Please refrain for adding more personal comment or opinion on that thread. If you absolutely feel the urgency to tell me your opinion go through the appropriate Chanel that is the private message. I will now only answer support message that address the issue. Thank you for your understanding.

The instructions for manual install is in Platform Specific Instructions for Official Binaries

It states that you untar the tar ball and get a directory, it then goes on to state:

Note that it says that Julia installs all its files in a single directory. And there’s nothing about moving files around. It might be possible, but then you may have to mess around with ldconfig or LD_LIBRARY_PATH, LD_PRELOAD or similar things to get things to work.

7 Likes

Julia is generally not compatible with other libraries because it uses custom patches for some of them. I am not deeply involved so I can’t tell you everything that is customized but most notably LLVM is customized. This why most of the times when people use their distro’s package manager to install Julia, Julia crashes as soon as the compiler is invoked.Yours seems to crash later, so you probably load the correct LLVM but something else is off.

To circumvent all of these library versioning/patching issues, Julia comes with all libraries it needs in the correct version in a single archive. Julia also looks for its libraries in that folder. So if you rip it apart and place the files elsewhere then Julia likely falls back to searching for libraries in generic places and loads whatever it finds. If you had another version of LLVM installed, then you would not have gotten so far as to install Pluto.jl at all.

So to fix your issues, just extract the archive and don’t make any changes to the structure. Use a symlink to link the binary to whereever it needs to be for your system to find it and then be happy.

5 Likes

I see, thanks for that. Did not read it correctly the first time, what got me wrong is that in the example for Linux the path where the extraction is done is in root/bin. And I was reading the man hier page in FreeBSD and wasnt able to find were to put it in the system file cause the only place were it seemed logic to put them according to my interpretation of the information provided by the manual page was /usr/loca/and so on. Even if it specified that this path is for package from pkg and port. I forgot that I have also a bin directory in my ~/ dir for outsider package. so I deleted the the files and folders I previously wrongly put in the /usr/local dir and moved the julia folder in ~/home/user/bin and added the /home/user/bin/julia.1.11.6/bin to the $PATH.

Thank you, that is exactly what I wanted to know, very appreciated. Thanks a lot. This answer with the one before you from @sgaure fixed the issue.

~ $ julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.11.6 (2025-07-09)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

(@v1.11) pkg> add Pluto
  Installing known registries into `~/.julia`
       Added `General` registry to ~/.julia/registries
    Updating registry at `~/.julia/registries/General.toml`
   Resolving package versions...
   Installed LoggingExtras ─────────────── v1.1.0
   Installed RegistryInstances ─────────── v0.1.0
   Installed LRUCache ──────────────────── v1.6.2
   Installed TableTraits ───────────────── v1.0.1
   Installed Tricks ────────────────────── v0.1.11
   Installed Scratch ───────────────────── v1.3.0
   Installed Preferences ───────────────── v1.4.3
   Installed GracefulPkg ───────────────── v2.2.1
   Installed OpenSSL_jll ───────────────── v3.5.1+0
   Installed BitFlags ──────────────────── v0.1.9
   Installed DataAPI ───────────────────── v1.16.0
   Installed SimpleBufferStream ────────── v1.2.0
   Installed Tables ────────────────────── v1.12.1
   Installed PlutoDependencyExplorer ───── v1.2.1
   Installed PrecompileSignatures ──────── v3.0.3
   Installed RelocatableFolders ────────── v1.0.1
   Installed IteratorInterfaceExtensions ─ v1.0.0
   Installed ConcurrentUtilities ───────── v2.5.0
   Installed Malt ──────────────────────── v1.2.0
   Installed JLLWrappers ───────────────── v1.7.1
   Installed URIs ──────────────────────── v1.6.1
   Installed MsgPack ───────────────────── v1.2.1
   Installed PrecompileTools ───────────── v1.2.1
   Installed ExproniconLite ────────────── v0.10.14
   Installed DataValueInterfaces ───────── v1.0.0
   Installed OrderedCollections ────────── v1.8.1
   Installed OpenSSL ───────────────────── v1.5.0
   Installed MbedTLS ───────────────────── v1.1.9
   Installed MIMEs ─────────────────────── v1.1.0
   Installed TranscodingStreams ────────── v0.11.3
   Installed HTTP ──────────────────────── v1.10.17
   Installed LazilyInitializedFields ───── v1.3.0
   Installed Compat ────────────────────── v4.18.0
   Installed CodecZlib ─────────────────── v0.7.8
   Installed ExceptionUnwrapping ───────── v0.1.11
   Installed ExpressionExplorer ────────── v1.1.3
   Installed Configurations ────────────── v0.17.6
   Installed HypertextLiteral ──────────── v0.9.5
   Installed Pluto ─────────────────────── v0.20.13
  Downloaded artifact: OpenSSL
    Updating `~/.julia/environments/v1.11/Project.toml`
  [c3e4b0f8] + Pluto v0.20.13
    Updating `~/.julia/environments/v1.11/Manifest.toml`
  [d1d4a3ce] + BitFlags v0.1.9
  [944b1d66] + CodecZlib v0.7.8
  [34da2185] + Compat v4.18.0
  [f0e56b4a] + ConcurrentUtilities v2.5.0
  [5218b696] + Configurations v0.17.6
  [9a962f9c] + DataAPI v1.16.0
  [e2d170a0] + DataValueInterfaces v1.0.0
  [460bff9d] + ExceptionUnwrapping v0.1.11
  [21656369] + ExpressionExplorer v1.1.3
  [55351af7] + ExproniconLite v0.10.14
  [828d9ff0] + GracefulPkg v2.2.1
  [cd3eb016] + HTTP v1.10.17
  [ac1192a8] + HypertextLiteral v0.9.5
  [82899510] + IteratorInterfaceExtensions v1.0.0
  [692b3bcd] + JLLWrappers v1.7.1
  [8ac3fa9e] + LRUCache v1.6.2
  [0e77f7df] + LazilyInitializedFields v1.3.0
  [e6f89c97] + LoggingExtras v1.1.0
  [6c6e2e6c] + MIMEs v1.1.0
  [36869731] + Malt v1.2.0
  [739be429] + MbedTLS v1.1.9
  [99f44e22] + MsgPack v1.2.1
  [4d8831e6] + OpenSSL v1.5.0
  [bac558e1] + OrderedCollections v1.8.1
  [c3e4b0f8] + Pluto v0.20.13
  [72656b73] + PlutoDependencyExplorer v1.2.1
  [91cefc8d] + PrecompileSignatures v3.0.3
⌅ [aea7be01] + PrecompileTools v1.2.1
  [21216c6a] + Preferences v1.4.3
  [2792f1a3] + RegistryInstances v0.1.0
  [05181044] + RelocatableFolders v1.0.1
  [6c6a2e73] + Scratch v1.3.0
  [777ac1f9] + SimpleBufferStream v1.2.0
  [3783bdb8] + TableTraits v1.0.1
  [bd369af6] + Tables v1.12.1
  [3bb67fe8] + TranscodingStreams v0.11.3
  [410a4b4d] + Tricks v0.1.11
  [5c2747f8] + URIs v1.6.1
  [458c3c95] + OpenSSL_jll v3.5.1+0
  [0dad84c5] + ArgTools v1.1.2
  [56f22d72] + Artifacts v1.11.0
  [2a0f44e3] + Base64 v1.11.0
  [ade2ca70] + Dates v1.11.0
  [8ba89e20] + Distributed v1.11.0
  [f43a241f] + Downloads v1.6.0
  [7b1f6079] + FileWatching v1.11.0
  [b77e0a4c] + InteractiveUtils v1.11.0
  [b27032c2] + LibCURL v0.6.4
  [76f85450] + LibGit2 v1.11.0
  [8f399da3] + Libdl v1.11.0
  [56ddb016] + Logging v1.11.0
  [d6f4376e] + Markdown v1.11.0
  [ca575930] + NetworkOptions v1.2.0
  [44cfe95a] + Pkg v1.11.0
  [de0858da] + Printf v1.11.0
  [3fa0cd96] + REPL v1.11.0
  [9a3f8284] + Random v1.11.0
  [ea8e919c] + SHA v0.7.0
  [9e88b42a] + Serialization v1.11.0
  [6462fe0b] + Sockets v1.11.0
  [f489334b] + StyledStrings v1.11.0
  [fa267f1f] + TOML v1.0.3
  [a4e569a6] + Tar v1.10.0
  [8dfed614] + Test v1.11.0
  [cf7118a7] + UUIDs v1.11.0
  [4ec0a83e] + Unicode v1.11.0
  [deac9b47] + LibCURL_jll v8.6.0+0
  [e37daf67] + LibGit2_jll v1.7.2+0
  [29816b5a] + LibSSH2_jll v1.11.0+1
  [c8ffd9c3] + MbedTLS_jll v2.28.6+0
  [14a3606d] + MozillaCACerts_jll v2023.12.12
  [83775a58] + Zlib_jll v1.2.13+1
  [8e850ede] + nghttp2_jll v1.59.0+0
  [3f19e933] + p7zip_jll v17.4.0+2
        Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`
Precompiling project...
  40 dependencies successfully precompiled in 227 seconds. 30 already precompiled.

Since the issue is properly fixed now, I will proceed and install juliaup according to this source: GitHub - JuliaLang/juliaup: Julia installer and version multiplexer I thank you for your insight. I will come back later on to give feedback.

2 Likes

To finish the follow-up on the installation of juliaup following the instruction on the GitHub page and installing the default setting did the job, but one have to read the prompt carefully to be sure that the default correspond to is setting, which was my case the proposed addition in .profile is not needed for me. The only thing I had to do is adding juliaup’s bin dir to the PATH.

Also one thing that might be confusing is that juliaup is an independent program in its self so it runs independently of julia, not inside.

Great job!, thank you very much !!!

Its an happy ending :wink:

:sun:

5 Likes