Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Related: How to extract files from MSI package?

To extract the contents of a MSI installer using Linux, I can either use msiexec with wine or use 7zip.

However, the latter does not preserve directories and file names only in part. Is there any way to properly extract MSI files without having to use wine?


edit: to illustrate the issue with Microsoft's Infer.NET, here is a list of files that 7zip produces and here one that msiexec produces (where the latter is what I want)

share|improve this question
    
You can use this article for Ubuntu hope it will help you. And also try Jsmsix.exe. –  avirk May 27 '12 at 2:55
    
Thanks, I already read the article and it does not resolve the 7zip issues (neither in combination with e.g. cabextract). Jsmsix would still require wine because you can't run Windows executables natively. –  user69175 May 28 '12 at 12:33
    
What issue you are facing with 7zip can you explain? –  avirk May 29 '12 at 1:30
    
added an example –  user69175 May 29 '12 at 12:13
2  
What I'd like to do is create a buildscript for Archlinux, for which a set up wine is quite a bulky dependency just to be able to install something that should depend solely on mono. –  user69175 May 30 '12 at 19:12

3 Answers 3

up vote 3 down vote accepted
+50

While it won't help you immediately, lessmsi is working on a native Linux version. It preserves directory structure like you want, so it's worth checking up on if this is going to be a long-term issue for you. Unfortunately, .msi support on Linux seems pretty sparse, so lessmsi or msiexec through wine might be your only immediate option, even if (as you said) wine is a pretty heavy dependency for extracting archives.

share|improve this answer
    
That indeed seems to be the best solution, using wine and waiting for lessmsi for Linux. –  user69175 Jun 3 '12 at 17:27
2  
FYI: In the latest release of lessmsi I managed to move the cab extraction code over to libmspack which is a portable library that should run on linux too. So we did take a concrete step towards linux support recently. Soon I hope to use a portable msi lib, which will make everything portable. –  activescott Feb 5 '13 at 18:40

You can try software called cabextract - atleast Ubuntu has packages for it, I would expect it to be found from other popular distros as well.

share|improve this answer
    
Thanks for the hint, but cabextract does not even partially conserve filenames and directories (so it performs worse than 7zip). –  user69175 May 28 '12 at 12:30

Give msiextract a try, https://live.gnome.org/msitools

And open bugs!

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.