Ultimaker-Cura (slicer pour imprimante 3D) et Debian Trixie

Décompresser une appimage et la remettre avec la bonne librairie

Article mis en ligne le 18 décembre 2025

par Rémi

Aujourd’hui, j’ai voulu tester Ultimaker-Cura , qui n’est disponible qu’en appimage, créé avec une librairie incompatible avec Debian Trixie.
J’ai trouvé comment modifier l’appimage sur un site allemand. Voici mes commandes pour que cela fonctionne correctement.

1/ Les messages d’erreurs avant modification :

$ bin/UltiMaker-Cura-5.11.0-linux-X64.AppImage UM/Settings/SettingFunction.py:244: DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead  def visit_Str(self, node: ast.Str) -> None: Gtk-Message: 18:40:16.845: Failed to load module "canberra-gtk-module" Gtk-Message: 18:40:16.845: Failed to load module "canberra-gtk-module" qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 4.1, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::CoreProfile) qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 4.1, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::CoreProfile) Could not initialize GLX Abandon

2/ Récupération de AppimageTool

3/ Préparation des éléments :

$ cd bin $ mkdir ultimaker-cura $ mv UltiMaker-Cura-5.11.0-linux-X64.AppImage ultimaker-cura/ $ mv ~/Téléchargements/appimagetool-x86_64.AppImage ./ $ chmod +x appimagetool-x86_64.AppImage $ ./appimagetool-x86_64.AppImage -h Utilisation*:  appimagetool [OPTION*] SOURCE [DESTINATION] - Generate AppImages from existing AppDirs Options de l*aide*:  -h, --help                  Affiche les options de l*aide Options de l*application*:  -l, --list                  List files in SOURCE AppImage  -u, --updateinformation     Embed update information STRING; if zsyncmake is installed, generate zsync file  -g, --guess                 Guess update information based on GitHub or GitLab environment variables  --version                   Show version number  -v, --verbose               Produce verbose output  -s, --sign                  Sign with gpg[2]  --comp                      Squashfs compression (default: zstd  --mksquashfs-opt            Argument to pass through to mksquashfs; can be specified multiple times  -n, --no-appstream          Do not check AppStream metadata  --exclude-file              Uses given file as exclude file for mksquashfs, in addition to .appimageignore.  --runtime-file              Runtime file to use  --sign-key                  Key ID to use for gpg[2] signatures  --file-url                  URL of the AppImage file, can be relative to zsync, or absolute/full $ ./appimagetool-x86_64.AppImage -l ./ultimaker-cura/UltiMaker-Cura-5.11.0-linux-X64.AppImage appimagetool, continuous build (git version 8c8c91f), build 295 built on 2025-12-04 17:56:36 UTC ./ultimaker-cura/UltiMaker-Cura-5.11.0-linux-X64.AppImage is a file, assuming it is an AppImage and should be unpacked To be implemented
Nous avons donc un Ultimaker-Cura de 2025-12-04

4/ Décompactage de l’appimage :

$ AppImage=./UltiMaker-Cura-5.11.0-linux-X64.AppImage $ ./${AppImage} --appimage-extract
L’opération nous a créé un répertoire squasfs-root avec tous les éléments nécessaires (normalement) pour faire fonctionner le logiciel.
Ôtons la libstd incriminée :
$ mv squashfs-root/libstdc++.so.6 squashfs-root/libstdc++.so.6.removed

ici, j’ai un erreur, il m’a donc fallut trouver l’emplacement de la libstd :

$ find -name "libstd*" -print ./squashfs-root/runtime/compat/libstdc++.so.6 $ ls -l ./squashfs-root/runtime/compat/libstdc++.so.6 -rwxr-xr-x 1 remi remi 2522584 23 oct.  11:59 ./squashfs-root/runtime/compat/libstdc++.so.6

Une fois la libstd trouvée, il faut la renommer :

$ mv ./squashfs-root/runtime/compat/libstdc++.so.6 ./squashfs-root/runtime/compat/libstdc++.so.6.removed

5/ Reconstitution de l’appimage :

$ ../appimagetool-x86_64.AppImage squashfs-root appimagetool, continuous build (git version 8c8c91f), build 295 built on 2025-12-04 17:56:36 UTC /home/remi/bin/ultimaker-cura/squashfs-root/com.ultimaker.cura.desktop: error: (will be fatal in the future): value "cura-icon.png" for key "Icon" in group "Desktop Entry" is an icon name with an extension, but there should be no extension as described in the Icon Theme Specification if the value is not an absolute path Using architecture x86_64 /home/remi/bin/ultimaker-cura/squashfs-root should be packaged as UltiMaker_Cura-x86_64.AppImage cura-icon.png{.png,.svg,.xpm} defined in desktop file but not found For example, you could put a 256x256 pixel png into /home/remi/bin/ultimaker-cura/squashfs-root/cura-icon.png.png

L’erreur vient du fait que dans le fichier desktop, le chemin n’est pas spécifié pour le fichier icone.
J’ai cherché l’image et copié le chemin dans le fichier desktop. Attention : ne pas mettre l’extension ’.png’ pour le nom de l’image, sinon, ça plante le compactage.

$ find -name "cura.png" -print ./squashfs-root/share/cura/resources/images/cura.png $ vi squashfs-root/com.ultimaker.cura.desktop

6/ Relance de la compression :

$ ../appimagetool-x86_64.AppImage squashfs-root appimagetool, continuous build (git version 8c8c91f), build 295 built on 2025-12-04 17:56:36 UTC Using architecture x86_64 /home/remi/bin/ultimaker-cura/squashfs-root should be packaged as UltiMaker_Cura-x86_64.AppImage WARNING: AppStream upstream metadata is missing, please consider creating it         in usr/share/metainfo/com.ultimaker.cura.appdata.xml         Please see https://www.freedesktop.org/software/appstream/docs/chap-Quickstart.html#sect-Quickstart-DesktopApps         for more information or use the generator at         https://docs.appimage.org/packaging-guide/optional/appstream.html#using-the-appstream-generator Generating squashfs... Downloading runtime file from https://github.com/AppImage/type2-runtime/releases/download/continuous/runtime-x86_64 Downloaded runtime binary of size 944632 Parallel mksquashfs: Using 20 processors Creating 4.0 filesystem on UltiMaker_Cura-x86_64.AppImage, block size 131072. [========================================================================================================================================================================================================================|] 34448/34448 100% Exportable Squashfs 4.0 filesystem, zstd compressed, data block size 131072         compressed data, compressed metadata, compressed fragments,         compressed xattrs, compressed ids         duplicates are removed Filesystem size 293705.66 Kbytes (286.82 Mbytes)         31.27% of uncompressed filesystem size (939356.86 Kbytes) Inode table size 242494 bytes (236.81 Kbytes)         22.95% of uncompressed inode table size (1056591 bytes) Directory table size 289377 bytes (282.59 Kbytes)         28.25% of uncompressed directory table size (1024434 bytes) Number of duplicate files found 2188 Number of inodes 31922 Number of files 28545 Number of fragments 1106 Number of symbolic links 458 Number of device nodes 0 Number of fifo nodes 0 Number of socket nodes 0 Number of directories 2919 Number of hard-links 2 Number of ids (unique uids + gids) 1 Number of uids 1         root (0) Number of gids 1         root (0) Embedding ELF... Marking the AppImage as executable... Embedding MD5 digest Success Please consider submitting your AppImage to AppImageHub, the crowd-sourced central directory of available AppImages, by opening a pull request at https://github.com/AppImage/appimage.github.io

Nous copions notre nouvelle image et nous testons.

Et voila !!