Conflicts: .msi installation; directory requirement

Questions about Wine on Linux
Post Reply
idlerwheel
Newbie
Newbie
Posts: 2
Joined: Sat Jan 19, 2019 8:04 pm

Conflicts: .msi installation; directory requirement

Post by idlerwheel » Thu Jul 25, 2019 9:08 pm

I am an experienced computer user but relatively new to Linux. I can run simple sequences on the command line. But it's also a good way for me to get into trouble. I've discovered that in the Linux world, it is not easy to find trustworthy, reliable information. Searching for answers can be especially frustrating. That's why I'm asking directly here.

I have completed a new, clean installation of Wine 4.0 from my distro's repository. My Wine installation appears to be successful: all of Wine's own integrated utilities seem to be running properly and my printer controller is showing up in these Wine apps.


1. The application and running its Installer.

I want to run only a single Windows application in Linux Mint 19.1, xfce desktop. The application is a 2015 64-bit fork of an abandoned 32-bit program that ceased development in 1997. The 64-bit developer is deceased. My Windows app has an .msi installer. I've been reading through the FAQs here.

Winehq's Wiki says:

"3.1.1.3 Running .msi files

MSI files cannot be run directly; you need to use either Wine's msiexec program or wine start from a terminal:

wine msiexec /i whatever.msi

or:

wine start whatever.msi"

HOWEVER, I can click on my Mint launcher's confusingly-named "Uninstall Wine Software" menu entry, which opens Wine's "Add/Remove Programs" window. This Wine utility accepts and runs my .msi installation program. Not being certain about what would happen, I aborted the installation process.

Why is the menu entry for this function named "Uninstall..." when it also does installation? Why does
it run an .msi installer when Wine's own Wicki tells me that this execution won't work and outlines a different method?

I'm confused: which method should I use to successfully install this program?


2. The installation and application directory:

My installer must be located in the "C:/programname" directory. In 2015, the 64-bit developer instructed users to create this directory manually, in advance of running the installer. Therefore it is logical to assume that the installer will not create this directory, but that the installer will look for it exactly as specified.

I think that the application, the program files, and the data file, will also be placed in the same directory. I believe that you folks call this a "prefix" or a "bottle."

So, my quetions are:

Where should I create this directory?
How should I create this directory?


3. A definition:

I cannot find a glossary of essential Wine terminology anyplace. Can anyone tell me what "verb" means?

Thank you in advance.

Richard

User avatar
dimesio
Moderator
Moderator
Posts: 12681
Joined: Tue Mar 25, 2008 10:30 pm

Re: Conflicts: .msi installation; directory requirement

Post by dimesio » Fri Jul 26, 2019 7:55 am

idlerwheel wrote: Why is the menu entry for this function named "Uninstall..." when it also does installation?
Ask your distro package maintainer. Plain Wine does not add menu entries for any of its builtin programs; what you see was added by your distro.
I'm confused: which method should I use to successfully install this program?
Windows installers normally include an uninstall option that kicks in if the program detects it is already installed. Wine uninstall merely runs the app's own installer. As for which way to install your program, I recommend using the command line, as instructed in our wiki. If anything goes wrong, you will need the terminal output to troubleshoot the problem.
Where should I create this directory?
How should I create this directory?
Create the directory in drive_c in the wineprefix. Create it the same way you would create any other directory, either in your file manager or the command line.
I cannot find a glossary of essential Wine terminology anyplace. Can anyone tell me what "verb" means?
"Verb" is what winetricks calls its various selections for installing things. It is not "essential Wine terminology"; winetricks is a separate project.

jkfloris
Level 6
Level 6
Posts: 682
Joined: Thu Aug 14, 2014 10:10 am

Re: Conflicts: .msi installation; directory requirement

Post by jkfloris » Fri Jul 26, 2019 8:29 am

dimesio was a little bit quicker, but here is my answer anyway.

1. There are two different Wine packages. The packages from your distro and the packages from WineHQ.
One difference is your distro-wine-packages will make some nice menu entries. You should ask your distro why they make a menu entry with a confusing name.
The WineHQ Wiki only covers the options in the WineHQ packages.

2. A "prefix" is a "fake" Windows installation. You can create as many as prefixes as you like. Why would someone create an other prefix?
Because Wine isn't perfect. Sometimes you have to tweak your prefix to get your program running. Unfortunately, sometimes this will break your other programs.

The default Wine prefix is the hidden folder .wine in your home directory.
Here you will find the "fake" C: drive: drive_c
If you want to create "C:/programname", you should create /home/<username>/.wine/drive_c/programname
https://wiki.winehq.org/FAQ#Wineprefixes

3. There is a program to make some changes to your Wine prefix: winetricks
A "verb" installs an application or changes a setting.
For example:
winetricks winxp Will set your Windows version to Windows XP
winetricks arial Will download and install the Arial font
winetricks vcrun2015 Will download and install the Visual C++ 2015 libraries.
https://wiki.winehq.org/Winetricks

idlerwheel
Newbie
Newbie
Posts: 2
Joined: Sat Jan 19, 2019 8:04 pm

Re: Conflicts: .msi installation; directory requirement

Post by idlerwheel » Fri Jul 26, 2019 4:55 pm

Thank you both for your prompt replies.
I made an important mistake in my original request: In the required directory name I used a forward slash instead of a backslash. I wrote: "My installer must be located in the 'C:/programname' directory."
The correct directory designation is "C:\programname."


This is the instruction from the fork's late developer:

"Unzip the files on your local C-Drive to the default C:\programname
and not to the 'Download' folder. If not, create the installation
folder C:\programname and copy the unzipped files to that folder.
Start the 64-bit installation as Administrator by double-clicking the
'programname - installation.msi' which when properly unzipped has to
be in the 'C:\programname' folder. Do not delete the 'Install' folder!"
(I assume that by "'Install' folder," he meant "C:\programname.")

As to the location, dimesio, you wrote above:
"Create the directory in drive_c in the wineprefix. Create it the same way you would create any other directory, either in your file manager or the command line."

I am not clear about what you mean. Which, precisely, is the "wineprefix?"

Example: A directory string for a default Wine-installed application is:

"/home/myname/.wine/drive_c/Program Files/Internet Explorer/iexplore.exe"

These directory separators are all plain forward slashes. But my program's developer is showing a backslash:
"C:\programname." I assume that the installer is going to be looking for that particular string, and not something named "drive_c;" yes? Don't I need a "C: something" somewhere?

In my situation, would the correct string be:

"/home/myname/.wine/drive_c/C:\programname\programname - installation.msi?"

Am I correct? If not, what should my string be?

User avatar
dimesio
Moderator
Moderator
Posts: 12681
Joined: Tue Mar 25, 2008 10:30 pm

Re: Conflicts: .msi installation; directory requirement

Post by dimesio » Fri Jul 26, 2019 5:28 pm

idlerwheel wrote:I am not clear about what you mean. Which, precisely, is the "wineprefix?"

Example: A directory string for a default Wine-installed application is:

"/home/myname/.wine/drive_c/Program Files/Internet Explorer/iexplore.exe"
The wineprefix in that case is /home/myname/.wine.
In my situation, would the correct string be:

"/home/myname/.wine/drive_c/C:\programname\programname - installation.msi?"

Am I correct? If not, what should my string be?
No. The correct string is what jkfloris told you:
/home/<username>/.wine/drive_c/programname
If you take a look inside your wineprefix, you'll see a dosdevices subdirectory with fake drive letters that are merely symlinks to real directories, including a c: symlink to drive_c.

jkfloris
Level 6
Level 6
Posts: 682
Joined: Thu Aug 14, 2014 10:10 am

Re: Conflicts: .msi installation; directory requirement

Post by jkfloris » Fri Jul 26, 2019 5:34 pm

(Not again dimesio :lol: )

Windows uses backslashes, Linux use forward slashes. To run a Windows program on Linux, Wine translate the slashes from one to the other.
Which, precisely, is the "wineprefix?"
In your case, your prefix is: /home/myname/.wine
Don't I need a "C: something" somewhere?
No, you don't. The Windows programs will see the drive_c directory as C:\
In my situation, would the correct string be:
"/home/myname/.wine/drive_c/C:\programname\programname - installation.msi?"


If you combine the above answers you will get:

Code: Select all

/home/myname/.wine/drive_c/programname/programname - installation.msi

User avatar
Bob Wya
Level 12
Level 12
Posts: 2772
Joined: Sat Oct 16, 2010 7:40 pm
Location: Cambridge
Contact:

Re: Conflicts: .msi installation; directory requirement

Post by Bob Wya » Fri Jul 26, 2019 5:56 pm

idlerwheel wrote:...
In my situation, would the correct string be:

"/home/myname/.wine/drive_c/C:\programname\programname - installation.msi?"

Am I correct? If not, what should my string be?
@idlerwheel

Wine has a builtin utility , called winepath , which mangles file system paths between the Unix and Windows formats.

See: WineHQ Wiki: Winepath.

So:

Code: Select all

winepath --unix 'C:\programname\programname - installation.msi'

/home/myname/.wine/dosdevices/c:/programname/programname - installation.msi
Note: the use of quotes ' ' to "protect" the backslash / escape characters: \ (these quotes are required, because otherwise the Linux shell will treat these characters as special modifiers for the subsequent character)

Bob

Post Reply