How do I extract files from a self extracting exe file in Linux?

Trenix25

Well-Known Member
Joined
Aug 15, 2017
Messages
540
Reaction score
305
Credits
4,939
I am trying to find some free software for my neighbor. He uses an old laptop running 64 bit Windows 10, but doesn't want to install anything on it. I have set up an NFS server on my Debian Linux computer using a file to hold the vfat file system. I can only hope his computer has an NFS client built in, or all of this effort will be for nothing. I was able to connect to myself so I'm hoping it will work for him. I told nftables to open holes for rpc and nfs, but only for his laptop computer. He lives on the other side of the living room. I'm using NFS over TCP. Whenever I try to find a Windows 10 program it tends to be packaged as a self-extracting exe file, which I cannot run on my system. I can't get wine to run. It is installed, but exits with errors. It says wine32 is not installed, but I have already installed wine, hmmm. Running a 32 bit Windows program with wine32 will not help since I need a 64 bit Windows program. I need a Linux program, read ELF 64-bit LSB pie executable, x86-64, that can extract the files from a self-extracting 64 bit Windows 10 executable file without running the executable file. I searched, but didn't really find anything helpful. Does anyone have any helpful ideas that actually work? The vfat file system is mounted on /srv/ with noexec and NFS makes it available as a read-only file system so he can't screw anything up. He isn't exactly technically oriented.

Signed,

Matthew Campbell
 


Have you tried the following:

Code:
dpkg --add-architecture i386
apt update
apt install wine32
 
@Trenix25 :-

Perhaps this might be of some use, Matt?


The general consensus of opinion seems to be that 7-Zip is the way to go.....and I know for a fact that the 32-bit Windows 7-Zip package runs very well under WINE. Moreover, it will also unzip 64-bit .exes, too.....so long as you also have the Linux p7zip package installed as well.

You can also use p7zip from the Linux terminal by itself, but I have no idea of the commands required for that. You'd need to research those for yourself.

Worth a look, perhaps.....

~~~~~~~~~~~~~~~~~~~~​

I use the 'Continuous build (staging)' WINE AppImage from this Github page:-


.....by a guy who goes by the handle of mmtrt. These are super simple to use, and have all the 32-bit AND syswow64 stuff built-in; you put the AppImage somewhere external to the OS - but auto-mounted at boot - then all you do is to link the AppImage into /usr/bin twice; once as /usr/bin/wine, and again as /usr/bin/wine-server. Once you've done that, you can run

Code:
wine winecfg

.....in the terminal, and it'll set up the WINE 'prefix' in your /home/user/folder at /home/user/.wine-appimage-staging. Couldn't be easier. And it works well, too.

(No reason why you couldn't simply locate the AppImage directly in /usr/bin, and re-name it to just 'wine'.....then add a sym-link to it for 'wine-server'. This would work just as well, because a little-known fact about AppImages is that you can rename 'em to anything you want (even losing the '.AppImage' suffix.....and they will STILL work.

The 'AppImage' is simply a container'; clicking on it transfers the executable action to the one inside.....and it's THIS that actually unpacks and sets itself up in /tmp, & then launches...)


Symlinking is probably better, since this way the whole set-up is only temporary, and can be easily unlinked when no longer required. If you symlink the wine prefix in /home/user to an external location, too, the entire thing is external to your OS.....and won't interfere when not needed, nor will it need lots of complicated removal along with extraneous bits'n'bobs hanging around after you THINK it's gone!

This is, in essence, how I build the 'portable' WINE packages for Puppy.


Mike. ;)
 
Last edited:
I already have p7zip and I'll have to try using zip -J. Thank you for your assistance.

Signed,

Matthew Campbell
 
Have you tried the following:

Code:
dpkg --add-architecture i386
apt update
apt install wine32
That did not go well. It wanted to change everything. I was afraid to try.

Signed,

Matthew Campbell
 
I tried p7zip, gunzip, and zip -J, but nothing worked. I'm trying to extract VLC from vlc-3.0.21-win64.exe.

This was the output when I tried to run wine to run the executable file:

Code:
$ wine vlc-3.0.21-win64.exe 
it looks like wine32 is missing, you should install it.
multiarch needs to be enabled first.  as root, please
execute "dpkg --add-architecture i386 && apt-get update &&
apt-get install wine32"
wine: created the configuration directory '/user/trenix/.wine'
0012:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
0012:err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa}
0012:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0012:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
0012:err:ole:get_local_server_stream Failed: 80004002
0014:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
0014:err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa}
0014:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0014:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
0014:err:ole:get_local_server_stream Failed: 80004002
Could not find Wine Gecko. HTML rendering will be disabled.
it looks like wine32 is missing, you should install it.
multiarch needs to be enabled first.  as root, please
execute "dpkg --add-architecture i386 && apt-get update &&
apt-get install wine32"
Could not find Wine Gecko. HTML rendering will be disabled.
wine: configuration in L"/user/trenix/.wine" has been updated.
it looks like wine32 is missing, you should install it.
multiarch needs to be enabled first.  as root, please
execute "dpkg --add-architecture i386 && apt-get update &&
apt-get install wine32"
0037:err:module:__wine_process_init L"Z:\\tmp\\vlc\\vlc-3.0.21-win64.exe" not supported on this system

The problem is if I follow these instructions it will destroy my Linux system.

Signed,

Matthew Campbell
 
That did not go well. It wanted to change everything. I was afraid to try.

Signed,

Matthew Campbell

I'm no WINE expert, drinking habits aside, but it should just add the 32 bit libraries and enable you to run 32 bit Windows software. It shouldn't harm anything but it may result in more drive space being used.
 
I'm no WINE expert, drinking habits aside, but it should just add the 32 bit libraries and enable you to run 32 bit Windows software. It shouldn't harm anything but it may result in more drive space being used.
It wanted to upgrade like over five hundred packages. I really don't want it doing that.

How do I install just wine32 and related libraries without it grabbing everything else too?

Signed,

Matthew Campbell
 
It wanted to change everything. I was afraid to try.

That's what having Timeshift installed and a current snapshot can mitigate.

Cheers

Wizard
 
It wanted to upgrade like over five hundred packages. I really don't want it doing that.

Yeah, it'll do that. It adds the 32 bit libraries and not just for WINE.

Doing this after making a backup should go without saying, but Wiz did say it. It's prudent to listen to him before making giant changes like this.
 
Step-by-step with PeaZip - Wine was installed following these instructions

1) Downloaded VLC for Windows

1.png


2) Open vlc-3.0.21-win32.exe with PeaZip

2.png


3) Click the Extract button above now click the OK button below
3.png

4) Extracted files in same folder

4.png


5) Right click on vlc.exe and select Open with Wine
5.png

6) and presto it's open I did click the about tab so you can see the version
6.png


and yes the 64Bit version works the same way
 
Last edited:
I'm having a little trouble installing peazip.

Code:
4 /usr/local/peazip-10.1.0.pack/DEB # ls
peazip_10.1.0.LINUX.GTK2-1_amd64.tar  peazip_10.1.0.LINUX.Qt5-1_amd64.tar
4 /usr/local/peazip-10.1.0.pack/DEB # tar -xf peazip_10.1.0.LINUX.GTK2-1_amd64.tar 
tar: peazip_10.1.0.LINUX.GTK2-1_amd64/usr/lib/peazip/res/share: Cannot open: File exists
tar: Exiting with failure status due to previous errors
4 /usr/local/peazip-10.1.0.pack/DEB # cd peazip_10.1.0.LINUX.GTK2-1_amd64/usr/lib/peazip/res
4 /usr/local/peazip-10.1.0.pack/DEB/peazip_10.1.0.LINUX.GTK2-1_amd64/usr/lib/peazip/res # ls
bin  share
4 /usr/local/peazip-10.1.0.pack/DEB/peazip_10.1.0.LINUX.GTK2-1_amd64/usr/lib/peazip/res # cd share
4 /usr/local/peazip-10.1.0.pack/DEB/peazip_10.1.0.LINUX.GTK2-1_amd64/usr/lib/peazip/res/share # ls -al
total 1428
drwxr-xr-x 10 root  root     4096 Dec  1 06:45 .
drwxrwxr-x  4 users users    4096 Dec 13  2022 ..
drwxrwxr-x  7 users users    4096 Nov 10 08:49 batch
drwxrwxr-x  3 users users    4096 Dec  1 06:45 copying
drwxrwxr-x  2 users users    4096 Dec  1 06:45 icons
drwxrwxr-x  2 users users    4096 Dec  1 06:45 lang
drwx------  2 users users    4096 Dec  1 06:45 lang-wincontext
-rw-rw-r--  1 users users 1419170 Nov  7 12:29 peazip_help.pdf
drwxrwxr-x  3 users users    4096 Dec  1 06:45 presets
drwxrwxr-x  2 users users    4096 Dec  1 06:45 readme
drwxrwxr-x  4 users users    4096 Dec  1 06:45 themes
4 /usr/local/peazip-10.1.0.pack/DEB/peazip_10.1.0.LINUX.GTK2-1_amd64/usr/lib/peazip/res/share #

Both types are having this problem.

Signed,

Matthew Campbell
 
flatpak install flathub io.github.peazip.PeaZip

Or download the file from:
Extract and run peazip

Why widows VLC?
Use your distros package manager:
sudo apt install vlc

Or flatpak:
flatpak install flathub org.videolan.VLC
 
I'm having a little trouble installing peazip.

Code:
4 /usr/local/peazip-10.1.0.pack/DEB # ls
peazip_10.1.0.LINUX.GTK2-1_amd64.tar  peazip_10.1.0.LINUX.Qt5-1_amd64.tar
4 /usr/local/peazip-10.1.0.pack/DEB # tar -xf peazip_10.1.0.LINUX.GTK2-1_amd64.tar
tar: peazip_10.1.0.LINUX.GTK2-1_amd64/usr/lib/peazip/res/share: Cannot open: File exists
tar: Exiting with failure status due to previous errors
4 /usr/local/peazip-10.1.0.pack/DEB # cd peazip_10.1.0.LINUX.GTK2-1_amd64/usr/lib/peazip/res
4 /usr/local/peazip-10.1.0.pack/DEB/peazip_10.1.0.LINUX.GTK2-1_amd64/usr/lib/peazip/res # ls
bin  share
4 /usr/local/peazip-10.1.0.pack/DEB/peazip_10.1.0.LINUX.GTK2-1_amd64/usr/lib/peazip/res # cd share
4 /usr/local/peazip-10.1.0.pack/DEB/peazip_10.1.0.LINUX.GTK2-1_amd64/usr/lib/peazip/res/share # ls -al
total 1428
drwxr-xr-x 10 root  root     4096 Dec  1 06:45 .
drwxrwxr-x  4 users users    4096 Dec 13  2022 ..
drwxrwxr-x  7 users users    4096 Nov 10 08:49 batch
drwxrwxr-x  3 users users    4096 Dec  1 06:45 copying
drwxrwxr-x  2 users users    4096 Dec  1 06:45 icons
drwxrwxr-x  2 users users    4096 Dec  1 06:45 lang
drwx------  2 users users    4096 Dec  1 06:45 lang-wincontext
-rw-rw-r--  1 users users 1419170 Nov  7 12:29 peazip_help.pdf
drwxrwxr-x  3 users users    4096 Dec  1 06:45 presets
drwxrwxr-x  2 users users    4096 Dec  1 06:45 readme
drwxrwxr-x  4 users users    4096 Dec  1 06:45 themes
4 /usr/local/peazip-10.1.0.pack/DEB/peazip_10.1.0.LINUX.GTK2-1_amd64/usr/lib/peazip/res/share #

Both types are having this problem.

Signed,

Matthew Campbell
PeaZip deb file is here - https://peazip.github.io/peazip-linux.html - I use the DEB GTK2 version on my machine -(peazip_10.1.0.LINUX.GTK2-1_amd64.deb) - I do not use the .tar version - then use GDebi to install deb package - open GDebi then click on file then open navigate to where deb file you want to install usually the download folder and install it should also grab any dependencies as well it should ask for password as well to complete the installation
 
Last edited:
flatpak install flathub io.github.peazip.PeaZip

Or download the file from:
Extract and run peazip

Why widows VLC?
Use your distros package manager:
sudo apt install vlc

Or flatpak:
flatpak install flathub org.videolan.VLC
I don't have flatpak. I already have vlc for Linux and use it a lot. My neighbor uses windows 10 and I'm trying to set up vlc for windows on my NFS server on my Linux computer so he can access it.

Signed,

Matthew Campbell
 
PeaZip deb file is here - https://peazip.github.io/peazip-linux.html - I use the DEB GTK2 version on my machine -(peazip_10.1.0.LINUX.GTK2-1_amd64.deb) - I do not use the .tar version - then use GDebi to install deb package - open GDebi then click on file then open navigate to where deb file you want to install usually the download folder and install it should also grab any dependencies as well it should ask for password as well to complete the installation
Are you using the Ubuntu one on Debian? I've had trouble with other Debian packages designed for Ubuntu when trying to use them on Debian. Does this one work with Debian?

Signed,

Matthew Campbell
 

Members online


Top