How to make a simple Wine-based installer for Windows application - linux

My Windows application runs under Wine, but the installation is a bit of a headache for laymen, and the wrappers I've seen online (PlayOnLinux, Wine Doors) require even more packages to be installed. Is there a way to make a package that will install Wine if the user needs it to be installed, install the application and shortcuts, all with minimal user hassle?

I don't believe there's any pre-made way to do this, but you could probably make a Debian package pretty easily that would depend on Wine, copy an MSI onto the machine, then run Wine's msiexec /i /q as the post-install script
Edit: Make sure to think about the uninstall case too! I.e. in the pre-uninstall script, run msiexec again as well.

You can bundle Wine -- that's what Picasa does -- or you can just make your package list Wine as a dependency; then the user's package manager will automatically install Wine for the user when they install your package.
Ideally your Linux package wouldn't run the Windows installer, but rather have all the files already unpacked.
The trick is to arrange for the files your package installs in /usr to show up in each user's .wine directory. You can look at how Picasa does this, but really the Wine community needs to document how to do this much better.
As always, ask at winehq.org if you need more info.

If you'd like to target the Mac OS, you can use WineBottler:
http://winebottler.kronenberg.org/
This project exists just for bundling Wine into a native Mac .app bundle in a way that's fairly hidden from the user.

Answer is simple:
Create Elf installer.
Pack Elf installer onto Exe installer resources.
Exe installer should unpack Elf installer on startup.
Exe installer must tries to run Elf installer after unpack (system call or some think).
If operation fail, we do normal install.
If operation didn't fail, we close Exe installer.

Related

How to install Weechat?

I must admit i'm not much of a coder or computer scientist, but in the past a friend installed Weechat on my windows computer using Cygwin (via the Cygwin terminal of course). I have a new computer now thats running windows 8.1 and have installed Cygwin with all of the necessary packages, and downloaded the latest stable version of Weechat (1.2). I am stuck from there though and don't really know which direction to move in, the only thing I have done with Cygwin so far is moved the home terminal folder to a more easier accessible location. Would it be possible to get a step by step walkthrough of how the installation progresses after downloading both the Cygwin component and the Weechat files and scripts?
Before we you can start using WeeChat, there are a few other pieces of software you need to install with CygWin. WeeChat relies on them for its functionality, which is why they are called dependencies.
You can find a detailed list of dependencies and further instructions on this link:
Weechat on Windows
Feel free to ask for further help if the above guide wouldn't suffice.
EDIT
WeeChat is currently available via the CygWin native repositories.
Simply search for weechat in the CygWin package manager.
I already have CygWin installed, what now?
No worries, simply rerun the setup-x86-64.exe* you've downloaded. This process won't remove any of your previously installed packages. At the end of the installation process you'll be able to look for and install WeeChat.
* (on 32-bit systems, the installer would be named setup-x86.exe)

Install Haskell packages using cabal without internet connection

I have a machine that doesn't have internet access at all.
I installed the Haskell Platform on it using the installer which I got from another machine through a pendrive.
Now I want to install the package repa on my home machine which has no internet access. How should I do that?
My home machine is running Linux (Debian) and my office machine is Windows 7.
From a machine you can access the internet you can either:
Run cabal get pkg-name where pkg-name is the package you want.
Go to the package's page on Hackage and on the Downloads section there's a .tar.gz file you can download.
After you get it, transfer it to your other machine, extract it anywhere you'd like (a sandbox if you want it just in a sandbox). Then from that directory (where there's a .cabal file) run cabal install.
Package managers, such as cabal, work internally to get a package from a remote repository. I doubt there exist an easy workaround to make cabal install a package in offline mode.
Probably the easiest way is to find a compressed version of package, find a way to get them on the offline computer (local sharing, thumb drive, etc.) and install a package manually.

Installing a .bundle file in Fedora linux

So I am using Ozone OS which is basically just fedora with a cool theme, and a lot less crap installed. I tried installing VMWare Horizon view client from here: https://my.vmware.com/web/vmware/details?downloadGroup=VIEWCLIENTS_LINUX_32&productId=421&rPId=7320
and then i renamed the file to vmware.bundle, when i make it runnable with:
chmod +x vmware.bundle
i ran the file using:
./vmware.bundle
this is what happens in my terminal
VMWare Horizon Client is an x86 application but you are trying to install it to an x64 Linux.
To run this installation, you may need to install 32-bit runtime libraries. Do you want to proceed? (yes/no)yes
Extracting VMware Installer...done.
but when i try going to the application menu, I can find VMware anywhere
There is really no such thing as ".bundle" files on Fedora. The only format for installable software on Fedora are RPM files.
All that this ".bundle" file appears to be, is the vendor's custom installation script, that's all. It's not any kind of a standard packaging format, of any kind.
You will be able to find a newly-installed application on your application menu only if the application correctly installed a .desktop file in the right location. If this installation script did not do so, you won't get anything in the application menu.
It is the application script's responsibility to install a .desktop file in order for the application to appear in the application menu.
try running /bin/vmware
that is the default install location

What is the best approach to distribute a project in both windows and linux?

So there is this particular jython project that needs a couple of dependencies, such as Jenkins, some kind of subversion, and this needs to be done on windows.
Would it be sane of me to consider using pip to help install all of these items, or should I look elsewhere, such as NSIS?
Update:
I really should've rephrase this - my fault for asking the question late at night.
There's an automated testing project that has the following dependencies:
Java JDK
Jython
Ant
Robot Framework
subversion
Jenkins
I personally prefer to run on Linux, but people that need to use this are typically Windows users. I'm confident enough to write a script to install all of this on Linux, but what I want is to have a script / installer that would install the relevent tools.
I would prefer to have a single script to do all of this - it's easy on Ubuntu with apt-get; but on windows, this quickly becomes non-trivial.
What is the best way to try and do this? Should I create separate installers for separate OS
pip is the acronym for pip install packages, python packages, and it only install Python packages.
Since Jenkins and Subversion are not Python packages, as far as I know, you can't install them, and it is not "sane".
Unfortunately there is no single established tool to install everything in every platform.
Use pip to install all your python packages, and prefer to use virtualenv to create isolated Python environments to manage your projects.
Since pip only installs python packages and Jenkins isn't a python package (it's written in Java), you cannot use it to install those packages.
You should totally take a look to virtualenv, but if you need to do a "double click" installer for your project in Windows i think that NSIS is the way to go.
I am successfully using install4j to create an executable installer for Windows, Linux and OSX. The application is Java and it bundles JRE. Install4j creates installer for each specified platform using respective JRE. So far it worked great on Windows and it somewhat works on Linux and OSX (e.g. in new version of install4j, JRE for Java 1.8 is not bundled properly for linu, so the JRE is preinstalled, but it could be automated). It also allows you to run non-interactive installer.

File-based installation of Node.js

I'm temporarily stuck on a Windows machine on which I have no administrator privileges. I would like to get node.js "installed" in a directory without using an installer, which requires elevation. On the node.js site, I don't see this distribution option.
Is anyone aware of a file-based (zip, self-extracting exe, etc) download that I can use to run node.js without using an installer on a Windows machine? Is there a way to run the installer without administrator elevation?
OK, it turns out that the EXE download for Windows is all that node.js needs to run. I had thought that that was an exe for doing an installation. Just running the downloaded .exe works.

Resources