Recent

Author Topic: [Solved] Creating an installer of linux applications  (Read 4889 times)

lainz

  • Hero Member
  • *****
  • Posts: 4460
    • https://lainz.github.io/
[Solved] Creating an installer of linux applications
« on: May 22, 2017, 03:57:34 pm »
Hi, I need to create an installer for specific linux applications for only Ubuntu, some applications are listed in the package manager (I use Synaptic) and some others doesn't, or only come as deb.

The installer should manage the dependencies and install them for each application. The applications should be checked in a list (like a list of checkbox) first and then if checked only gets installed.

Applications can be 32 or 64 bit, so if the distro is 32 bit run of course the 32 bit installer and list only the 32 bit capable ones. If it's 64 bit list all and also install the i386 architecture dependency.

The idea is to create a Lazarus executable that manages the list, and then a .sh or maybe inside the same lazarus the installer. How to handle permissions, or in other words how to ask for password to install as sudo?

I know the applications sometimes doesn't works if that was made for a specific Ubuntu version. So I need to check the OS version also, or made different bundles one for each OS.

I'm new to linux, for that I ask here for suggestions, and for that this question is also too generic.

If there's a better approach than a lazarus application is also welcome.

The idea is to create a package of game-emulators, and the user will choose what to install.

There's a package for Debian called games-emulator, and that package installed with Synaptic for example uses a lot of 'official' emulators and install all of them also the dependencies, and of course I can uncheck these I don't want.

An option is to help the ubuntu community to compile and submit more emulators to the official list, but is far beyond my knowledge and time.
« Last Edit: May 22, 2017, 11:09:59 pm by lainz »

lainz

  • Hero Member
  • *****
  • Posts: 4460
    • https://lainz.github.io/
Re: Creating an installer of linux applications
« Reply #1 on: May 22, 2017, 05:16:02 pm »
Well I've installed emulators all the morning and to find that sometimes is better to use Wine and run windows emulators that runs at near the same speed when possible. Due to lack of up-to-date packages for some emulators thar are a pain to install under linux. (Example: old deb only for old ubuntu distributions, and the same .exe runs fine with wine).

valdir.marcos

  • Hero Member
  • *****
  • Posts: 1106
Re: Creating an installer of linux applications
« Reply #2 on: May 22, 2017, 05:19:45 pm »
Hi, I need to create an installer for specific linux applications for only Ubuntu, some applications are listed in the package manager (I use Synaptic) and some others doesn't, or only come as deb.

The installer should manage the dependencies and install them for each application. The applications should be checked in a list (like a list of checkbox) first and then if checked only gets installed.

Applications can be 32 or 64 bit, so if the distro is 32 bit run of course the 32 bit installer and list only the 32 bit capable ones. If it's 64 bit list all and also install the i386 architecture dependency.

The idea is to create a Lazarus executable that manages the list, and then a .sh or maybe inside the same lazarus the installer. How to handle permissions, or in other words how to ask for password to install as sudo?

I know the applications sometimes doesn't works if that was made for a specific Ubuntu version. So I need to check the OS version also, or made different bundles one for each OS.

I'm new to linux, for that I ask here for suggestions, and for that this question is also too generic.

If there's a better approach than a lazarus application is also welcome.

The idea is to create a package of game-emulators, and the user will choose what to install.

There's a package for Debian called games-emulator, and that package installed with Synaptic for example uses a lot of 'official' emulators and install all of them also the dependencies, and of course I can uncheck these I don't want.

An option is to help the ubuntu community to compile and submit more emulators to the official list, but is far beyond my knowledge and time.

You need to learn how to become a Debian's Maintainer.
Creating your own packages on Debian Package System, they will naturally be migrated to all Debian derivatives such as Ubuntu.
More information on:
https://www.debian.org/doc/manuals/maint-guide/
https://www.debian.org/devel/
https://eriberto.pro.br/wiki/index.php?title=FAQ_empacotamento_Debian
http://eriberto.pro.br/wiki/index.php?title=Algumas_coisas_sobre_Debian...

molly

  • Hero Member
  • *****
  • Posts: 2330
Re: Creating an installer of linux applications
« Reply #3 on: May 22, 2017, 05:20:14 pm »
Most emulators that are actively developed aren't part of a 'normal' distro and instead require manual compilation from source.

Are you aware that for the purpose of emulating alone there are special distro's that take away that burden ? e.g. seems to me you are trying to re-invent the wheel ?
« Last Edit: May 22, 2017, 05:36:50 pm by molly »

lainz

  • Hero Member
  • *****
  • Posts: 4460
    • https://lainz.github.io/
Re: Creating an installer of linux applications
« Reply #4 on: May 22, 2017, 07:11:47 pm »
Hi, I need to create an installer for specific linux applications for only Ubuntu, some applications are listed in the package manager (I use Synaptic) and some others doesn't, or only come as deb.

The installer should manage the dependencies and install them for each application. The applications should be checked in a list (like a list of checkbox) first and then if checked only gets installed.

Applications can be 32 or 64 bit, so if the distro is 32 bit run of course the 32 bit installer and list only the 32 bit capable ones. If it's 64 bit list all and also install the i386 architecture dependency.

The idea is to create a Lazarus executable that manages the list, and then a .sh or maybe inside the same lazarus the installer. How to handle permissions, or in other words how to ask for password to install as sudo?

I know the applications sometimes doesn't works if that was made for a specific Ubuntu version. So I need to check the OS version also, or made different bundles one for each OS.

I'm new to linux, for that I ask here for suggestions, and for that this question is also too generic.

If there's a better approach than a lazarus application is also welcome.

The idea is to create a package of game-emulators, and the user will choose what to install.

There's a package for Debian called games-emulator, and that package installed with Synaptic for example uses a lot of 'official' emulators and install all of them also the dependencies, and of course I can uncheck these I don't want.

An option is to help the ubuntu community to compile and submit more emulators to the official list, but is far beyond my knowledge and time.

You need to learn how to become a Debian's Maintainer.
Creating your own packages on Debian Package System, they will naturally be migrated to all Debian derivatives such as Ubuntu.
More information on:
https://www.debian.org/doc/manuals/maint-guide/
https://www.debian.org/devel/
https://eriberto.pro.br/wiki/index.php?title=FAQ_empacotamento_Debian
http://eriberto.pro.br/wiki/index.php?title=Algumas_coisas_sobre_Debian...

I think that will worth the effort.

lainz

  • Hero Member
  • *****
  • Posts: 4460
    • https://lainz.github.io/
Re: Creating an installer of linux applications
« Reply #5 on: May 22, 2017, 07:15:50 pm »
Most emulators that are actively developed aren't part of a 'normal' distro and instead require manual compilation from source.

Are you aware that for the purpose of emulating alone there are special distro's that take away that burden ? e.g. seems to me you are trying to re-invent the wheel ?

I know there's a distro for arm but I'm not aware of a distro for i386 or amd64.

I mean you can't play Wii on one of these small computers really fast or 3DS..

I've downloaded ready to use Deb's that are not in the distribution but are served from a download on the developer website.

I don't want to reinvent the wheel but maybe you can point me to an already made solution.

molly

  • Hero Member
  • *****
  • Posts: 2330
Re: Creating an installer of linux applications
« Reply #6 on: May 22, 2017, 08:25:51 pm »
@lainz:
lakka for instance. Most use something like retroarch for backend and some sort of front-end such as emulationstation.

Was going to point to puppy arcade but, unfortunately that seems non-existent these days  :'(

Point was, that you are probably better of creating/using a specialized distro instead of trying to create something like you showed (or it must be for exercise/experience ofc.)

As far as i understood your post, you are more or less trying to create your own package manager front-end, but with/for a specific goal.

PS: also was able to locate this(*) from sparky, perhaps it is enough for your needs.
Code: [Select]
https://sparkylinux.org/wiki/doku.php/aptus_gamer?s[]=emulators
« Last Edit: May 22, 2017, 09:15:15 pm by molly »

lainz

  • Hero Member
  • *****
  • Posts: 4460
    • https://lainz.github.io/
Re: Creating an installer of linux applications
« Reply #7 on: May 22, 2017, 11:09:48 pm »
As always molly giving the solution  :)

I thing Lakka or Sparky APTus Gamer are the projects I need. These looks very well!

I've tried emulationstation alone and I don't like it too much, I like that the emulators get installed and not only the frontend. In fact I developed an open source frontend for Windows, and from there comes the interest on making this but for linux.

I mark it as solved. Many thanks to all for the replies, specially molly.
« Last Edit: May 22, 2017, 11:11:45 pm by lainz »

molly

  • Hero Member
  • *****
  • Posts: 2330
Re: [Solved] Creating an installer of linux applications
« Reply #8 on: May 22, 2017, 11:38:28 pm »
@lainz:
 :)

I am aware that my opted solution is not really an answer to your original question but, using a specialized distro might offer you some insight for alternative solutions.

My first thought was that you would perhaps be better of creating your own specialized emulator package for the distribution of your choice (in case such package not already exist) and try to work _with_ your package manager instead running the risk of going against it.

I am not that familiar with all package managers available but, afaik most offer the possiblity to download from alternative (unverified/untusted/whatever they are named) repositories (perhaps even your own ?) to get to those nitty gritty up-to-date sources for those emulators you wish to have up-to-date and create scripts (in case not present) to be able to compile them from source.

That way you are able to work with your distro's package-manager and let that package-manager handle the dependencies by providing a working emulation package(s) that matches your goals.

Of course, you could then always create/add a front-end to make things more fancy and provide a better user experience.

lainz

  • Hero Member
  • *****
  • Posts: 4460
    • https://lainz.github.io/
Re: [Solved] Creating an installer of linux applications
« Reply #9 on: May 23, 2017, 05:25:53 am »
Finally I used one of your last suggestions, let the package manager do their job.

The result is that I have the same launcher I did for Windows (with some internal changes of course) and only the emulators that are part of the distribution but also some PPA's.

I managed to add all these emulators in a simple .sh installer that also installs my frontend

dosbox
fs-uae
fs-uae-arcade
fs-uae-launcher
hatari
higan
mednafen (linea de comandos)
nestopia
pcsx
stella
virtualjaguar
vba (linea de comandos)
yabause
fceux
desmume
mupen64plus-qt
dolphin-emu

And finally an uninstaller also with a .sh that comes with the download.

It's only for Ubuntu 16.04 but works for me as starting point to improve it further.

 

TinyPortal © 2005-2018