-
-
Notifications
You must be signed in to change notification settings - Fork 348
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Offer an AppImage for Linux #2636
Comments
How would this differ from downloading and running ckan.exe? |
You wouldn't need to have a compatible Mono installation. |
So we would bundle Mono into our package? Wouldn't that be hundreds of MB? |
Hundreds? It's interesting how today's devs have completely lost all sense of space. |
I'm happy to admit when I'm wrong, but why be insulting about it? Remember that you're trying to convince someone to do something to help you here. :) Regarding "see for example OpenRA", can you be more specific? Apparently it's a Red Alert clone, but what about it is relevant here? They don't seem to explain their Mono deployment strategy on their home page. |
As for the actual size, it's not clear that mono-core is enough to run CKAN. The size of the actual downloads from mono-project.com are obscured by the debian repo folder structure (where are the actual .debs??), but for comparison the Windows download is 129 MB. |
What I meant to say is: OpenRA does not include Mono into their AppImage, so the user has to install it separately, is what I meant: "OpenRA is distributed as portable AppImages that run on most modern 64-bit Linux distributions. Mono 4.2 or later is required." Mono seems to be installed by default on most distributions anyway. |
But the problem with CKAN is, that we need a version of mono that is not installed by default on most distributions. |
DISCLAIMER: I have just hit #2664, so I may be biased against The two things we would get from appimages is this:
Also, I would like to add that even though they are a lot bigger, most computers now operate in the terrabyte relm, and if someone changed it over tonight whilst I was asleep, I would not notice one package going from ~1M to ~100M. |
Ok, so what mono components does ckan use exactly? I'm guessing more than just mono-core and mono-winforms. |
I just went with what OpenSUSE considers "mono-core", i.e. the #!/usr/bin/env bash
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
mv appimagetool*.AppImage appimagetool
chmod +x appimagetool
rm -rf ckan.AppDir
mkdir ckan.AppDir
wget https://github.com/KSP-CKAN/CKAN/releases/download/v1.25.4/ckan.exe
mkdir rpms
cd rpms
wget http://download.opensuse.org/repositories/openSUSE:/Factory/standard/x86_64/mono-core-5.16.0-1.1.x86_64.rpm
wget http://download.opensuse.org/repositories/openSUSE:/Factory/standard/x86_64/mono-extras-5.16.0-1.1.x86_64.rpm
wget http://download.opensuse.org/repositories/openSUSE:/Factory/standard/x86_64/mono-data-5.16.0-1.1.x86_64.rpm
wget http://download.opensuse.org/repositories/openSUSE:/Factory/standard/x86_64/mono-data-sqlite-5.16.0-1.1.x86_64.rpm
wget http://download.opensuse.org/repositories/openSUSE:/Factory/standard/x86_64/mono-mvc-5.16.0-1.1.x86_64.rpm
wget http://download.opensuse.org/repositories/openSUSE:/Factory/standard/x86_64/mono-wcf-5.16.0-1.1.x86_64.rpm
wget http://download.opensuse.org/repositories/openSUSE:/Factory/standard/x86_64/mono-web-5.16.0-1.1.x86_64.rpm
wget http://download.opensuse.org/repositories/openSUSE:/Factory/standard/x86_64/mono-winforms-5.16.0-1.1.x86_64.rpm
wget http://download.opensuse.org/repositories/openSUSE:/Factory/standard/x86_64/mono-winfxcore-5.16.0-1.1.x86_64.rpm
cd ../ckan.AppDir
rpm2cpio ../rpms/*.rpm | cpio -idmv
cp ../AppRun .
cp ../logo.png .
cp ../ckan.desktop .
cp ../ckan.exe usr/bin
cd ..
./appimagetool ckan.AppDir ckan.AppImage -u "gh-releases-zsync|KSP-CKAN|CKAN|latest|ckan.AppImage.zsync" I've seen that you're using Travis; it should be possible to integrate that I guess. Both |
@zilti When I get some time this evening, I will make a fork with a build script (unless someone else wants to have a go) |
Alright. I've put everything into this gist: https://gist.github.com/zilti/b5937ebd68fcbb02f8de6b5b7c9aa79b |
Mono's mkbundle appears to be similar to appimages in their functionality AFAIK. Does anyone have any reason why we shouldn't use them? |
Because it's chronically broken. |
I have tried using pkg2image, appimagetool and linuxdeployqt to no avail. I get, respectively, nothing, direct calling of mono, and segfaults. I do not believe I am able to complete this task. @zilti AppImage itself recommends it, so that may present an issue. |
Did you use my script I've put in the gist? I can execute my script on a machine without any installed mono and get a working AppImage. |
@zilti I compiled the binary on a computer with mono, and copied it to my ubuntu/bionic laptop, which I have removed all traces of mono from. On execution, I hit this error.
The mono mkbundle gives me :( |
Well, I think you didn't include |
Why not just debboostrap a folder, install the relevant debs and package that? |
Ok I'm using one of the precompiled mono runtimes now. I've updated the gist. I can confirm that what I posted before did not work. This now should. |
So did this work out? |
@zilti Sorry for the late response! I have been rather busy for a couple for days, and missed your response. You have indeed fixed the error, but unfortuantely a new one has come up:
|
Ah, I see. I had a not minimal enough test environment. Updated, and tested in a barebones environment now. |
@zilti I now get an error at build:
Why don't we continue this at your gist comment section, so that this issue is not spammed with back and forth about the implementation? |
Any update on this? |
This would jive well with #2771, since .NET Core has built-in support for generating self-contained Linux (and macOS and Windows) deployments with a bundled .NET runtime, at which point it's relatively straightforward to package it all up as an AppImage. |
It is up to them to finish this, I provided everything. Seems like they prefer maintaining three different packaging scripts over having an AppImage. |
It would be nice to have an AppImage for the Linux users. It's a self-contained executable packed a bit similar to a dmg on macOS and would faciliate a lot.
The text was updated successfully, but these errors were encountered: