Find the answer to your Linux question:
Page 1 of 2 1 2 LastLast
Results 1 to 10 of 12
Hi, Is there any tool to create GUI based installer for applications developed on linux platform using C language? Thanks, Priyanka...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    Sep 2012
    Posts
    4

    Installer options for linux applications - Urgent!!


    Hi,

    Is there any tool to create GUI based installer for applications developed on linux platform using C language?

    Thanks,
    Priyanka

  2. #2
    Trusted Penguin Irithori's Avatar
    Join Date
    May 2009
    Location
    Munich
    Posts
    3,346
    Hi and welcome

    Almost any linux distribution works with a package manager.
    A installer as you probably know it from the windows platform would circumvent this and introduce unmanaged files.

    So my suggestion would be to package your application for the target linux distribution (most probably either rpm or deb).
    You must always face the curtain with a bow.

  3. #3
    Just Joined!
    Join Date
    Sep 2012
    Posts
    4
    Hi,

    Thanks for the reply.
    As per my understanding, rpm or deb would result into a package that will be executed on the terminal only.
    My requirement is that the user should be able to run the installer with just a double click, like it's done in windows, with GUI feel (i.e. next button , previous button, select directory where to install the app, etc.)

    Hope, you understood my request.

    Thanks,
    Priyanka

  4. #4
    Trusted Penguin Irithori's Avatar
    Join Date
    May 2009
    Location
    Munich
    Posts
    3,346
    there are existing graphical packagemanagers. They also work with either rpm or deb.

    Remember: Linux is not Windows.
    There are different concepts for handling software installs.
    You must always face the curtain with a bow.

  5. #5
    Linux User Krendoshazin's Avatar
    Join Date
    Feb 2005
    Location
    London, England
    Posts
    471
    Actually, double clicking on an RPM or DEB package should bring up the package manager for that distro. I think you're expecting too much to lead the user through a series of installation GUIs; it's simply unnecessary. There have been several projects to replicate just such installers, but none of them have ever become very popular.

  6. #6
    Trusted Penguin Irithori's Avatar
    Join Date
    May 2009
    Location
    Munich
    Posts
    3,346
    Yes, and especially commercial apps are notorious for introducing an installer/installscript.

    To me as a sysadmin, this is a negative point against such a software.
    - It shows, that the creator hasnt spent effort to comply with the platform requirements and defaults.
    - As said earlier, an install script will copy files to <anywhere>.
    - Also, the usual tools to get the update status of a given machine and perform the update action will not work: Additonally to apt-get upgrade there is now a update script (if at all)
    - Using packages also helps in preventing bloat.
    For example: There can be a requirement for a jre in the deb files, instead of multiple, outdated jres in the 300MByte+ "installation zip".
    I am looking at you, Symantec NetBackup
    You must always face the curtain with a bow.

  7. #7
    Just Joined!
    Join Date
    Sep 2012
    Posts
    4
    The issue I am facing is as below:-

    1. Client does not want to run anything on terminal.
    2. I need to copy a couple of DLLs into a location which the user needs to provide.
    3. This installer should actually install a plugin in wireshark application and place the dll's in the required location.

    Since I have never done this ".deb" or RPM thing, so I am not sure if I can achieve my goal using them.

    Any help??

    Thanks,
    Priyanka

  8. #8
    Trusted Penguin Irithori's Avatar
    Join Date
    May 2009
    Location
    Munich
    Posts
    3,346
    Tbh, I am not entirely sure which steps are needed for wireshark to recognize additonal plugins, but fwiw:

    1) system wide install
    If it is enough to install a .so ( so == shared object. There are no DLLs in linux ) in the correct location,
    and the plugin shall be available systemwide (aka: for all users)
    then your deb should
    - depend on the package wireshark. This way you can be sure that the directory structure is already in place.
    - install the .so to the systemwide plugin path of wireshark. On a debian squeeze (6.0.5) the appropiate directory is /usr/lib/wireshark/plugins/

    Here is documentation on how to build deb packages HowToPackageForDebian - Debian Wiki

    2) user specific install
    The appropiate place for wireshark plugins for a single user is ~/.wireshark/plugins/

    However, together with your requirement for a graphical install this is a problem.
    Debs are a way to handle system installs, and this they do very well.
    To my knowledge, there is no way to have user specific deb packages.

    At least not for interactive users, because
    a) the usernames are not known beforehand.
    b) there would be need for one package per user, which of course is ridiculous.

    Usually you would only copy/create a binary or libary in your $HOME, if you develop or test something.
    Otherwise, system-wide install is prefered.


    Actually I am a bit stumped.
    The user is proficient enough to use wireshark,
    but cannot or will not use the console?
    You must always face the curtain with a bow.

  9. #9
    Just Joined!
    Join Date
    Dec 2009
    Location
    California
    Posts
    98
    I work for a large software company and we use installshield for all our products. It has all the features you have mentioned.
    1) graphical installer by default
    2) terminal installer if required (-i CONSOLE)
    3) response files if you want to do a completely unattended install
    4) ability to install files to a user-specified location
    5) uninstall scripts are generated/installed to completely remove the application if needed.

    They have a free demo you can try.

  10. #10
    Just Joined!
    Join Date
    Jan 2009
    Posts
    11
    Hi,

    I believe there is a little misconception in the question concerning "running in a terminal". Priyanka states:

    1. Client does not want to run anything on terminal.
    2. I need to copy a couple of DLLs into a location which the user needs to provide.
    3. This installer should actually install a plugin in wireshark application and place the dll's in the required location.

    To answer your concerns I offer the following (with respect to Debian ".deb" package management; RedHat ".rpm" package management is somewhat similar).

    1: There is no need to run anything in a terminal (or it can be hiddden). Package management systems install ALL kinds of software including GUI software like Wireshark. The package management tools used to install the software can also be GUI tools, like Synaptic for Debian based distributions. Most modern Linux distributions, like Ubuntu, come with pre-installed package management tools such as Muon Pakage Manager and Muon Software Center. They are GUI programs. They all use the underlying package management system to do the actual installs.

    2: You will need to define the DLL issue in more detail. The DLLs in Linux are called shared libraries and usually have a ".so" extension by convention. As previously stated, the shared libraries are usually installed in a globally shared system directory, not a user specified one. However, your package installation can direct the user to provide input during the install process. This is usually a pre-install script of some kind that gets the input and uses it during the installation. The script "can" display a popup GUI to get the input. You will need to create that input dialog. It can also be further directed with a post-install script as well for clean up.

    3: As stated before, Wireshark and any other requirements should be set up as dependencies for your package so that they are also automatically selected for install if they are not already installed.

    The beauty of the package management system is that you publish your software package within the context of an archive repository (a web site that holds your packages). The user adds your repository to their system, refreshes their package manager, and your software appears in their list for installation. After installation, if you update your repository, the user can be automatically notified / updated to the latest release. No additional code is required for the software to check for updates. Updates are managed by the package manager.

    If you do not wish to setup a repository, you can just offer the software as a ".deb" and/or ".rpm" file that a user can download and install with a right-click->Open with->Ubuntu Software Center or similar.

    Here are some examples: (excuse the hacks on the following websites as I am not yet allowed to post links [?])

    A] The Wireshark Download page www wireshark.org/download html
    They don't have a "Linux" install package because Wireshark is provided as a "standard" package. See the far-right-bottom under "Third-Party Packages". Most say "Standard package".

    B] The VirtualBox Linux Downloads page https:// www virtualbox.org/wiki/Linux_Downloads
    This page lets the user download a ".deb" or ".rpm" file for their distribution for a manual install. The second part of the page explains how to add the VirtualBox repository to a system. Once setup, the software is installed like any other software from a package manager.

    C] The TOR project for Vidalia https:// www torproject.org/docs/debian-vidalia.html.en
    This page explains how to add the TOR Project repository to a system.

    The process to add repositories can be made very simple. See the "Adding PPAs" section of https:// help.ubuntu.com/ community/Repositories/Ubuntu
    The process is entirely GUI based. A PPA (Personal Package Archive) may be what you want.

Page 1 of 2 1 2 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •