I guess that every single *nix user, at least once, has run across files with the *.run
or *.bin
extensions. These scripts are usually software installers and are widely used to distribute, but not limited to, proprietary software to the Unix world. Examples are the popular NVidia or ATI display drivers for Linux and other operating systems, the Sun Java Runtime Environment etc. Recently, I encountered some issues when trying to use such installers.
But first, some information about these scripts (installers). These are created with the makeself shell script, which actually creates self-extractable tar.gz
archives. When launched, the installer does an archive integrity check and then extracts the included software to the desired location and performs all the programmed actions in order to make the installed software functional within the operating system.
Recently, I had to install the SecureFTP ftp client for linux, but the script errored out with some strange messages like not being able to uncompress the archive or about not being able to verify the archive’s checksum or about wrong command line parameters used in some command calls internally. This had happened in the past too, when I wanted to install the good old game Unreal Tournament (1999) so to revive some good memories. ;-)
Here are some of the weird error messages:
tail: cannot open `+187' for reading: No such file or directory gunzip: stdin: not in gzip format Verifying archive integrity...tail: cannot open `+6' for reading: No such file or directory Error in check sums 1237260170 2341625838
As stated at the makeself website, archives created with Makeself older than v2.1.2 were using an old syntax for the head
and tail
Unix commands and there are problems uncompressing the included software.
In order to resolve this issue and make the installer “assume” that you use an old GNU/Linux version, you should export the following environment variable before using the installer:
export _POSIX2_VERSION=199209
After you finish installing the software, delete that ENV variable:
unset _POSIX2_VERSION
It took me a significant amount of time to learn about this workaround and, basically, I discovered it while searching for the software that creates these self-installing archives.
Hope this tip helps someone out there.
Error when using old run/bin installers under Linux by George Notaras is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Copyright © 2007 - Some Rights Reserved
Thanks so much for this info. I was banging my head against the wall trying to apply the patches to the old railroad tycoon II game from loki. What was really killing me was I remembered that I had done it in the past. Thanks again.
James, I’m glad you found this information useful. I recall me banging my head as well while trying to install a game, Unreal Tournament, under Linux using the Loki installer.
Thanks George, this fixed the issue i was having extracting the Modem driver for an old ibm t23 with CrunchBang.
I have probably the same problem (extraction failed) but this didn’t help help.