I want to run ASITIC But it was developed upon an old architechture and g77 compliler as far i know and while i used this app on Ubuntu I had to add foreign architecture i386.
Due to some issues i have been facing i removed foreign architecture and uninstalled the software(ASITIC). I had planned to install it in Cygwin(in Windows 10) (as it was recommended back in 2004 (website mentioned)). I downloaded files (Intel Linux Pentium 4 (updated 1/6/04) & The common files (all platforms).) and then extracted it into a folder and moved there in Cygwin extracted and made the "asitic_linux" executable(using chmod +x asitic_linux) and then it executed giving me error
./asitic_linux: cannot execute binary file: Exec format error I tried to check file prerequisites using "file asitic_linux" command output was as follows
asitic_linux: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.2.5, stripped, too many notes (256) I know there are mainly 2 issues one is i have to install architecture and the other is required libraries.
Any idea how i can install foreign architecture to run the given application in Cygwin
I also found a new information that Cygwin does not support ELF executable binaries. Thats why on running ldd asitic_linux it gives following error.
ldd: asitic_linux: Exec format error I will try running the software in WLS(Windows Subsystem For Linux) and let know more.
2 Answers
If you read the documentation you will notice that the original autor is providing only binary versions that are 19 years old.
As he is NOT providing the source code there is NO way that you can install it in a current system: nor Cygwin neither Linux.
All systems evolved, shared libraries changed but as this program was never shared as source version, porting is not possible.
1Update: Just open my google drive link and read the document that i have written over there it's all mentioned there with clarity. Below is the answer that I have written in earlier and can be skipped entirely or to be read for the purpose of developing understand.
After a bit of effort, I've made it simple and possible you can use this software without installing even architecture i386 (multiarch) you can use ASITIC with just simply having required libraries and the problem that you'll face usually if you get successful in installing ASITIC i.e. broken dependency is also resolved.
In short You can download(right click and download) the following file (contains required libraries as well as asitic_linux executable file) from the following link.
extract the file and move the file named ASITIC in it into home directory then open terminal and give the following command
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/ASITIC/custom_libs/' >> ~/.bashrc
Long Answer(You dont need to do the following its just explanation)
I've installed ASITIC from website and it was not executable by default(it was simply a binary file which can not be executed) I changed it to executable file using
chmod +x asitic_linux
You can check if file is now executable or not using ls command and looking at the color of the file, if its "green" it is executable.
Then Installed i386 architecture to get some extra libraries using following command
dpkg --add-foreign-architecture i386 sudo apt update sudo apt upgrade
(Note: It was just to know what libraries are installed while i update after installing i386. Sometimes later after all of the processes were finished i removed the architecture and i feel it is not necessarily required to work on this software. If you got all the required libraries you can make it execute)
Then I listed the name of dynamic dependencies(list of libraries it depends to survive) using following command
ldd asitic_linux
then i downloaded them one by one from packages.debian.org since it works better for manually finding packages (.deb) files.
Then, I extracted them one by one using following command
dpkg-deb -xv name-of-debian-package.deb .
Note there is dot in last which is required to extract the package in the location where you currently are. Then I moved the required libraries out of the extracted files using mv command and bundled them up in a file which i named "custom_libs".
Now i had to set environment of that custom_libs file so i did use the following command
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/ASITIC/custom_libs/' >> ~/.bashrc
Above command should be tweaked as per need (since my file of custom_libs was inside ASITIC which itself i've kept inside home) Later i unistalled the foreign-architecture (i386 which i previously installed and my ASITIC worked fine without it)
sudo dpkg --remove-architecture i386