incapaz de encontrar um intérprete ao executar um executável do Windows

3

Eu desinstalei meu vinho e instalei uma versão superior do vinho compilando a fonte.

No entanto, quando eu executo um executável exe (cujo caminho é em $PATH ), ele não funciona como costumava:

$  PDFXCview.exe   

run-detectors: unable to find an interpreter for /home/tim/program_files/document/pdfxchange_portable/PDFXCview.exe

Não sei por que consegui executar este executável diretamente antes de desinstalar meu vinho antigo e instalar o novo. Como posso fazer $ PDFXCview.exe funcionar agora?

Nota:

$ wine /home/tim/program_files/document/pdfxchange_portable/PDFXCview.exe

funcionará.

$ wine PDFXCview.exe 

wine: cannot find L"C:\windows\system32\PDFXCview.exe"

não funciona. Observe que o caminho de PDFXCview.exe ainda está em $PATH

Obrigado.

    
por Tim 04.10.2014 / 02:51

3 respostas

5

O Linux possui um mecanismo que permite que plug-ins sejam registrados para que o kernel chame um programa de intérprete quando instruído a executar um arquivo: binfmt_misc . Veja Como o chroot o uso do qemu para ambientes de compilação cruzada funciona? para uma visão geral mais detalhada.

Seu pacote do Wine registrou /usr/bin/wine como um interpretador para executáveis do Windows como parte de seu script de instalação ou através de um script de inicialização contido no pacote. Você pode fazer o mesmo para o seu wine construído em casa. Algumas distribuições possuem um mecanismo onde os pacotes podem registrar intérpretes que serão então registrados no kernel no momento da inicialização, por exemplo update-binfmts no Debian e derivados. Alternativamente, um interpretador pode ser registrado no kernel durante a inicialização por escrevendo para /proc/sys/fs/binfmt_misc/register . Eu recomendo que você olhe para o pacote que você costumava ter e adapte o método que estava trabalhando antes.

    
por 04.10.2014 / 15:46
4
> I uninstalled my wine, and installed a higher version of wine by
> compiling source. However when I run an exe executable (whose path is
> in $PATH), it doesn't work as it used to.

Como você viu, obviamente, o seguinte funciona corretamente

$ wine file.exe

mas o seguinte não

for a file in the current directory               '
$ ./file.exe              

for a file that is included your path             
$ file.exe

Minha versão do vinho é v1.8.3 de debian / jessie-backports e
deve ser válido de volta para, pelo menos, v1.6.2 (que é o padrão no debian / jessie).

Você deve fazer o seguinte:

$ sudo apt-get install wine-binfmt $ sudo update-binfmts --import /usr/share/binfmts/wine

Agora você deve conseguir executar o arquivo binário como mostrado acima,
sem ter que chamá-lo usando vinho.

    
por 18.08.2016 / 08:43
-1

Ok, ouça atentamente. Isso é o que você faz.

Coloque isso em /usr/bin/pdfxcview.exe

#!/bin/bash
# Call up a command;
wine /home/tim/program_files/document/pdfxchange_portable/PDFXCview.exe

Em seguida, invoque a partir do Terminal:

$ chmod +x /usr/bin/pdfxcview.exe

^ Define o bit executável como ativado.

$ pdfxcview.exe

Diferencial do código fonte

A liberdade do software não é grande? Parece que há comentários sobre o caminho. Se você imprimir seu ambiente digitando "env", poderá ver o diretório de Arquivos de Programas.

O Launchpad Librarian é o local onde os desenvolvedores do Ubuntu mantêm a documentação sobre seu trabalho, mantendo seu sistema atualizado e seguro.

    
por 04.10.2014 / 03:18

Tags