# Shipping the interpreter

**URL:** <https://forum.crystal-lang.org/t/shipping-the-interpreter/4524>\
**Category:** Crystal Contrib\
**Created:** [March 26, 2022, 2:53pm UTC](https://forum.crystal-lang.org/t/shipping-the-interpreter/4524 "2022-03-26T14:53:55Z")\
**Posts on this page:** 1\
**Showing post:** 30

<div class="post-metadata">

**Author:** ![straight-shoota](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/straight-shoota/32/36_2.png) [@straight-shoota](https://forum.crystal-lang.org/u/straight-shoota)\
**Post date:** [October 22, 2024, 9:50pm UTC](https://forum.crystal-lang.org/t/shipping-the-interpreter/4524/30 "2024-10-22T21:50:38Z")

</div>

There’s a trick that allows fully-portable yet dynamically linked builds. This could allow us shipping portable builds with the interpreter.

> [@Portable, dynamically linked packages on Linux](https://forum.crystal-lang.org/t/portable-dynamically-linked-packages-on-linux/7201):
>
> This article presents a very clever mechanism for dynamically linked executables to be fully portable, just like a statically linked one would be. [https://brioche.dev/blog/portable-dynamically-linked-packages-on-linux/](https://brioche.dev/blog/portable-dynamically-linked-packages-on-linux/) TL;DR: The executable needs to ship with all dynamically linked libraries and the necessary ELF-interpreter (ld-linux.so). The magic happens in a tiny, statically linked bootstrap program which exec’s the ELF-interpreter as userspace exec for a correct /proc/self/exe and with li…

---

_[View the full topic](https://forum.crystal-lang.org/t/shipping-the-interpreter/4524)._
