Como posso executar o msiexec do cygwin para descompactar um msi?

5

Preciso descompactar (não executar, descompactar) um msi em um makefile do cygwin.

Se eu chamar no prompt de comando do Windows, o seguinte

msiexec /a package.msi /qn TARGETDIR=C:\foo

O pacote foi implantado corretamente em C: \ foo. No entanto, se eu tentar executar exatamente a mesma operação no prompt do cygwin

msiexec /a package.msi /qn TARGETDIR=C:\\foobaz

Tudo o que recebo é a janela msiexec informando o uso. Eu posso resolver esse problema de duas maneiras, executando o msiexec com êxito, conforme descrito acima, ou iniciando um comando do windows no makefile, e solicitando que invoque essa operação.

Alguma ideia?

Stefano Borini
fonte
Você não precisa para extrair o msi de dentro cygwin para extrair o msi ....
Ramhound
@ Ramhound: Eu faço. O makefile precisa descompactar o msi de alguma forma.
Stefano Borini
TARGETDIR=/cygdrive/c/foomelhores resultados?
Der Hochstapler
@OliverSalzburg: não
Stefano Borini

Respostas:

2

Encontrei. Eu preciso invocar

run msiexec /a package.msi /qn TARGETDIR=C:\\foobaz

em cygwin. Não faço ideia do porquê, mas funciona.

Stefano Borini
fonte
0

Um msi pode ser descompactado com a maioria dos utilitários zip, como o 7-Zip. Ele conterá muitas coisas (como chaves de registro etc.) que são irrelevantes em um ambiente Linux, mas você poderá acessar qualquer texto, fonte ou exe.

jdh
fonte
Não pelo cygwin descompactar, e não vou pedir aos desenvolvedores para instalar um utilitário adicional e instalá-lo em todas as máquinas de teste.
Stefano Borini
0

Eu entrei no mesmo problema e, logo depois de ver isso, descobri por mim mesmo que as barras das duas opções (ou opções em termos de janelas) " /a" e " /qn" deveriam ser barras duplas " //" :

msiexec //a package.msi //qn TARGETDIR=C:\\foobaz

Isso deve funcionar, pelo menos na minha máquina.

Liuxy
fonte