Linux kullanarak msi dosyalarını çıkarma


23

İlgili: MSI paketinden dosyaları nasıl çıkartılır?

Bir MSI yükleyicisinin içeriğini Linux kullanarak çıkarmak için ya msiexecşarapla kullanabilir ya da kullanabilirim 7zip.

Ancak, ikincisi dizinleri ve dosya adlarını yalnızca kısmen korumaz. MSI dosyalarını kullanmak zorunda kalmadan düzgün bir şekilde ayıklamak için herhangi bir yolu var mı wine?


düzenleme: Microsoft'un Infer.NET ile sorunu göstermek için, burada bir 7zip ürettiğini dosyaların listesi ve olduğu burada (ikincisi ne istiyorum olduğu) msiexec ürettiğini biri


Bu makaleyi, Ubuntu'nun size yardımcı olacağını umarak kullanabilirsiniz. Ve ayrıca Jsmsix.exe'yi deneyin .
avirk

Teşekkürler, makaleyi zaten okudum ve 7zip sorunlarını çözmedi (örneğin, cabextract ile birlikte). Jsmsix hala gerekli wineçünkü yerel olarak Windows çalıştırılabilir dosyalarını çalıştıramıyorsunuz.
Michael Schubert

Karşılaştığınız sorunu 7zipaçıklayabilir misiniz?
avirk

bir örnek ekledi
Michael Schubert

2
Yapmak istediğim şey, sadece bir tekine bağlı olması gereken bir şeyi kurabilmek için kurulmuş bir şarabın oldukça büyük bir bağımlılık olduğu Archlinux için bir derleme oluşturmak.
Michael Schubert,

Yanıtlar:


9

Size hemen yardımcı olmayacak olsa da, lessmsi yerel bir Linux sürümünde çalışıyor. İstediğiniz gibi dizin yapısını korur, bu yüzden bu sizin için uzun vadeli bir sorun olacak olup olmadığını kontrol etmeye değer. Ne yazık ki, Linux'ta .msi desteği oldukça seyrek gözüküyor, bu nedenle şaraptan daha az miktarda veya msiexec, şarapların arşivlerini çıkarmak için oldukça ağır bir bağımlılık olmasına rağmen, sizin derhal tek seçeneğiniz olabilir.


Bu gerçekten de en iyi çözüm gibi görünüyor, şarap kullanıyor ve Linux için lessmsi bekliyor.
Michael Schubert

4
Bilginize: Lessmsi'nin en son sürümünde, kabin ayıklama kodunu, Linux'ta da çalışması gereken taşınabilir bir kütüphane olan libmspack'e taşımayı başardım. Bu yüzden son zamanlarda linux desteğine somut bir adım attık. Yakında her şeyi taşınabilir kılan taşınabilir bir msi lib kullanacağımı umuyorum.
Scott Willeke

-1. Linux versiyonu uzun yıllar sonra hala mevcut değil ve soru MSI dosyalarını şarap kullanmak zorunda kalmadan düzgün bir şekilde ayıklamanın bir yolu olduğundan, cevap bu değil. Bunun yerine msitools paketindeki msiextract ( sudo apt install msitoolsUbuntu'da) user2834 tarafından yanıt olarak önerildiği gibi kullandım.
Lissanro Rayen

19

Msiextract'ı deneyin, https://live.gnome.org/msitools

Ve böcekleri aç!


14.04 için paket bulunamadı ve bunun için de birçok araç / kütüphane ve beceri gerekiyor. Vazgeçmek
harry

1
debian'da ve ubuntu willy'de: launchpad.net/ubuntu/+source/msitools . Daha sonra basitçe "msiextract file.msi" i çağırabilirsiniz ve bu kadar yeter, daha fazla beceri gerektirmez.
user2834

Burada çalışır ve dosya adlarını ve yollarını korur. Teşekkürler.
Simon A. Eugster

1

Cabextract adlı yazılımı deneyebilirsiniz - en azından Ubuntu'nun paketleri var, diğer popüler dağıtımlardan da bulunmasını bekliyorum.


4
İpucu için teşekkürler, ancak cabextract dosya adlarını ve dizinleri kısmen korumaz (bu nedenle 7zip'ten daha kötü performans gösterir).
Michael Schubert

MSI formatı çoklu katmanlardır: en üst seviyede, bir veri bloğu. Disk görüntüsünün kodunu çözerseniz, bir .cab dosyası ve veritabanı dosyaları dahil olmak üzere birkaç dosya içerir. cabextract, .msi görüntüsünün içindeki CAB dosya başlıklarını bulur, ancak tam .cab dosyası bitişik olmadığı için dosyayı çıkaramaz. 7zip, disk görüntüsünü ve ardından CAB dosyasını ayıklayabilir , ancak CAB dosya girişlerini lessmsi gibi gerçek yükleme yollarıyla eşleyen veritabanı dosyalarını nasıl okuyacağını bilmez.
Stuart Caie
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.