AppImages I make with arch2appimage have same "no such file or directory" error

I’m trying to use this:

While the build process goes smoothly with no errors I keep getting the same similar error when trying to run the appimages I made. Here’s an example when I tried running a ocenaudio appimage i made:

/tmp/.mount_ocenauDkctBt/AppRun: line 14: /usr/bin/ocenaudio: No such file or directory

How do I edit this so that my appimage works?

I tried poking around the AppDir folder that arch2appimage makes during the building and it looks like the /usr/bin/ocenaudio is a link instead of the actual binary and binary is in a different folder. not sure if thats related… Sorry I’m a bit of a noob with some of this kind of stuff.

Hi,

what do you type exactly to run your appimages ?

You should download and install latest appimage thing when going through the process…

  1. So we go home ~/arch2appimage
  2. run python3 arch2appimage
  3. Input the name ocenaudio-bin and watch the funky colourful download progress bars…
  4. Select icon (AppDir/usr/share/icons/hicolor/128x… ocenaudio.png)
  5. Agree to pkg list (nothing to be added)
  6. Watch more funky progress bars.
  7. Download latest libunionpreload to be safe (default - enter)
  8. Build the Appimage (default - Enter)
  9. Download latest AppImageTool (default - Enter)
  10. That’s now finished. No need to rebuild…
  11. Remove the AppDir/
  12. Quit terminal.

Now open browser, go to ~/arch2appimage/out/

This is where the image currently resides. DoubleClick that and it runs with the integrator - select ‘Run Once’ to test it. Next time you can select to ‘Integrate and Run’.

Wow. Before I tried this, I installed ocenaudio-bin from AUR/Chaotic (both the same binary package) and so the appimage seems to work.

But when purging ocenaudio-bin, then the appimage doesn’t work any more… so it’s not building with internal paths. I got the same error:

/tmp/.mount_ocenaudsMJqZ/AppRun: line 14: /usr/bin/ocenaudio: No such file or directory

So I guess it’s time to file a bug - that’s just frustrating.

However, it did work for me with Guayadeque-git.

I deleted Guayadeque, and the appimage worked fine…

to run it i’ve tried 2 ways (and I use appimages regularly with no problem):
I’ve used the easy right-click execute thing, and also with appimagelauncher tool
and I’ve used ./appimage.appimage (with appropriate app image name)

Yeah, those are exaclt the same steps I did but didn’t work either, and I also tried it with Gedit (following the exact example from a site) and that one didn’t work either). So is there a way to fix those paths somehow manually for our end?

I don’t know, I might have another go next week.
I posted and got an answer though:

this error comes from the .desktop file. In the Exec section of the desktop file you will notice it uses full path. To fix this simply remove the /usr/bin/ from the .desktop file Exec section. Then re build the AppImage. This is why the script asks the user to check AppDir before building the AppImage.
You can either go trough the whole process again and make the change in the desktop file when the script asks you to check the AppDir and then build the AppImage. Or if you already have the AppDir ready you can just make the change and run the appimagetool manually.

Edit: Upon further looking i realized that the oceanaudio file in AppDir/usr/bin is a broken link. You will have to fix this link so that its a link to the correct file which should be AppDir/opt/oceanaudio/bin/oceanaudio. This also needs to be done before building the AppImage.

So editing ocenaudio.desktop

Exec=/opt/ocenaudio/bin/ocenaudio %F

Could be the ticket :wink:
Otherwise maybe AppDir/opt/ocenaudio/bin/ocenaudio could be right.

Haha, no - it needs the FULL path.
/home/ben/arch2appimage/out/AppDir/opt/ocenaudio/bin/ocenaudio: is not right… (it starts where the appimage launches).

So hmmm not exactly ‘self contained’ as such - leaving the arch2appimage folder intact and launching from the /out folder now works.

But you’ll have to copy the path and adjust it to your needs…

Exec=/home/ben/arch2appimage/AppDir/opt/ocenaudio/bin/ocenaudio %F

You can actually look at properties of the desktop file and browse in the Appdir to find the binary.

So it works!!! but my appimage won’t work on your computer I think…

Now if I unpack this appimage, I get paths starting with squashfs-root…
So I’m wondering if that’s what we should put in the Desktop file to make it work wherever it’s launched to reference the internal binary - rather than the one in the build directory.

Any ideas?