how to make perl script into installer exe or msi - windows

I am creating the perl script/programming's and converting into *.EXE by Perlapp perl development kit (PDK) application however I want to know whether the same application can use to make the *EXE as an Installer or MSI. Or else we have any other applications to use the perl script to make the same.
I would appreciate if someone guide me on this one.

I want to know whether the same application can use to make the *EXE as an Installer or MSI
No. It can't
This is a foolish question
Making an executable out of a Perl source file is mostly a matter of combining a copy of the perl executable with the Perl code and all of its dependencies
Creating an installer requires at least a number of checks to make sure that the target system can support the installed software, a design to choose where on the target system each element of the installation should be placed, and some code to tidy the system after the installation is done
It is also necessary to write and install an uninstaller program that will safely and securely undo every change that the installer has made
It isn't sensible to expect any utility that creates an executable file of any sort to be able to also take all of this into consideration and to create something that will run correctly on a completely alien system

Related

Looking for the simplest way to wrap a provided Setup.exe installer with a config.dat and a silent installation CLI execution

I am not familiar with Windows installer builder tools, other than having a conceptual understanding of them. I have a hopefully simple installer-file-wrapping-problem to solve where i would need some advice from people who know this field better than myself:
I have a vendor provided vanilla Setup.exe installer along with a custom config.dat file.
I can run the installer with "Setup.exe /S" which picks up the config.dat file in the same directory for a silent install just as I need it.
I now want to wrap both files into a single file self executable installer "CustomSetup.exe" that if launched with "Run as Administrator" silently unpacks the two files into the same directory, runs the silent install command line "Setup.exe /S" and deletes the previously unpacked files and directory afterwards. Effectively giving me a single-file one-click silent installer with custom settings from the vendor provided vanilla installer.
What is the simplest, most straight forward and elegant way of getting this done?
Most InstallShield/WIX/Windows Installer Tools tutorial- and documentation-pages i could find want to take me to an elaborate installer-project-building-academy first, something that is certainly useful for developers needing to learn how to build complex installer projects, but feels like overkill for just getting this seemingly simple thing done. Is there a lean way to do this? Many thanks in advance for your help.
For the record, I have found the answer to my own question.
Running the Windows on-board IExpress (as Administrator) easily produced exactly what I was after. Just type "Iexpress" into the command search box, run as Administraor and fidlle with it. Alternatively, this is someones Video explaining it https://www.youtube.com/watch?v=vXZyq0cMuKI

How to compile .lua into Windows .exe?

Question related to Windows platform only.
I can't find documentation on how to approach this.
There are dozens of posts about this, yet most provide answers for mac/linux, most windows specific parts lead to dead links or README's that have no useful information.
How do I, for example, make an .exe of the code below? The intent being to share it with another windows user, so that when they click it...it automatically runs the program in command prompt or wherever .exe are supposed to run without them needing to have lua/luac installed on their system.
Or perhaps I'm missing the point here and you need lua/luac installed, otherwise you would need to convert to a program language that's already installed on everyones' windows systems like C...? Regardless I need something that works for the purpose described. Could I make a folder with lua.exe and luac.exe and input.lua and make an .exe that loads command prompt and runs the command to compile input.lua? new_folder: lua.exe, luac.exe, input.lua, run.exe
> --input.lua
print("type ur name")
name=io.read()
print(#name)
print("your name is " name)
I'm not aware of anything in wxlua that can compile a lua file into an executable. There is wxLuaFreeze executable that allows to concatenate a lua script to it to generate a new executable that will run that script when executed. See the documentation for details: http://wxlua.sourceforge.net/docs/wxlua.html#C7.3.

Not everyone has the libraries needed for my program to run

So I made this executable program that uses the Windows library and some others (string, ctime, lmcons...) in C++. When it runs on my computer it works great but when I transfer the executable to a computer that does not have some of those libraries on it the program does not run. How do I "add" those libraries in with my code?
1 - You need to identify libraries that need to exist on the system in order to execute your application.
2 - you need to create a package that contain these libraries. It could be an installation or a zip file. Depending on the libraries, sometimes they need to be registered on the system, sometimes just dropped in. If you use install packaging software, you can set up registration [if needed]. If you distribute zip or ftp folder, you may need to supply script file. Sometimes libraries are part of some Microsoft package and this package can be prerequisite to run your application. You may pack it into your installation and have it installed silently. There are many ways as you see.
3 - this is up to you how you want to distribute your application and supporting libraries. But best is when user doesn't have to jump the hoops trying to install your stuff. User should click and forget.

Make, install, executing a program

I have been a CS student for a while and it seems like I (or many of my friends) never understood what's happening behind the scene when it terms to make, install etc.
Correct me but is make a way to compile a set of files?
what is it mean by "installing a program to a computer" like on windows because when I am coding in different languages such as java or perl, we dont install what we wrote. we would compile (if not, interpret language) and just run it. So, why are programs such as Skype needs to be "installed"?
Can anyone clarify this? I feel like this is something i need to know as a programmer.
Make is a build system
Make is a build system which is simply a way to script the steps needed to compile a program. Make specifically can be used with anything, but is usually used to compile C or C++ programs. It simplifies and creates a standard way for programmers to script the preparation of their program, so that it can be built and installed with ease
Why a build system
You see, if your program is a simple one source file program, then using make might be an overkill, as compiling the simplest c program is as simple as
gcc simpleprogram.c -o simpleprogram.out
However, as the size of the software grows, the complexity of it grows, and the complexity of how it needs to be built grows. For example, you may want to determine which version of each library is installed in the computer which you are compiling in, you may want to run some tests after compiling your program to determine it is working correctly, or you may want to automatically download some dependencies your program has.
Most software built need a mixture of these tasks eventually. So, instead of reinventing the wheel, they use a build system which allow scripting this. If you are familiar with Java (which you mentioned) a build system comparable to make, but used in the java world is Apache Ant.
Why install
Well, lets assume that you used the "make" command but not "make install". The "make" command is usually used to just to prepare the program for compilation, and the compile it. However, once your program is compiled, all you have is an executable in the directory in which you compiled the program in. The program, its documentation, and it's configuration files haven't been put in the appropriate directories needed for all users to use it. That's what "make install" is for. Make install takes all the files associated with the program you just compiled, and puts said files in the appropriate directories, so that it becomes available to everyone, and so that each component is in the expected directory according to your operating system.
make is a bit of software that reduces the amount of code that needs to be compiled - it compares modification times of the source code with the target. If the code has changed a compile is done to construct the target otherwise you can skip that step.
Installing software is placing the executables/configuration files into the right places - perhaps constructing some files along the way. E.g. usernames in your skype example

Providing my Ruby program as an all-in-one installer

I have written a short program in a ruby file that runs correctly on my PC. However I need to find a way to give this to my colleagues to use. They have no knowledge of ruby. The program requires various non standard gems. What is the best way to provide them with a one click installer for my program, including all the gems and ruby itself.
Try OCRA - it packages everything into a single executable (no installation required).
When you run the executable, it extracts everything into a temporary directory (including the ruby interpreter) and runs your script from this directory.
I havn't use it (so I don't know if it works), but you can try to use RubyScript2Exe

Resources